概述:

vsftpd是 Linux 下比较著名的 FTP 服务器,搭建 FTP 服务器当然首选这个。本文介绍了在 CentOS 6.4 下安装vsftpd、配置虚拟用户登录 FTP 的过程。

安装 vsftpd

查看是否已经安装 vsftpd

1
rpm -qa | grep vsftpd

如果没有,就安装,并设置开机启动

1
2
yum -y install vsftpd
chkconfig vsftpd on

修改配置文件

1
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO // 设定不允许匿名访问
local_enable=YES // 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为 NO 的情况下所有虚拟用户将无法访问
chroot_list_enable=YES // 使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES // 设定支持 ASCII 模式的上传和下载功能
pam_service_name=vsftpd //PAM 认证文件名。PAM 将根据 /etc/pam.d/vsftpd 进行认证

添加 ftp 用户

下面是添加 ftpuser 用户,设置根目录为 /home/wwwroot/ftpuser, 禁止此用户登录 SSH 的权限,并限制其访问其它目录。

同样打开 vsftpd 的配置文件

1
2
3
#chroot_list_enable=YES
#(default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

修改为

1
2
3
chroot_list_enable=YES
#(default follows)
chroot_list_file=/etc/vsftpd/chroot_list

增加用户ftpuser,指向目录 /home/wwwroot/ftpuser, 禁止登录 SSH 权限。

1
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

设置用户口令

1
passwd ftpuser

编辑文件 chroot_list

1
2
vi /etc/vsftpd/chroot_list
`

内容为 ftp 用户名, 每个用户占一行, 如:
peter
john

重新启动 vsftpd

1
service vsftpd restart
出现的错误
1、500 OOPS: cannot change directory

解决方法:

在终端输入命令:

1
2
setsebool -P ftpd_disable_trans 1
service vsftpd restart

原因:这是因为服务器开启了 selinux,这限制了 FTP 的登录。

本文地址 https://shaoshilei.com/2016-05/centos-installation-vsftd.html