CentOS 7 安装配置vsftpd

安装
yum install vsftpd -y

禁用SELinux
修改/etc/selinux/config,将SELINUX=设置为disabled,然后重启

用户配置
创建FTP用户
useradd ftpuser -d /home/ftpuser -s /sbin/nologin

设置密码
passwd ftpuser

更改FTP用户主目录
usermod -d /home/ftpuser ftpuser

修改配置
修改/etc/vsftpd/vsftpd.conf
增加以下内容

chroot_local_user=NO  #启用用户主目录限制黑名单
chroot_list_file=/etc/vsftpd/chroot_list  #用户主目录限制黑名单文件
allow_writeable_chroot=YES  ##跟上面的一起配置,否则报错“refusing to run with writable root inside chroot”
anon_root=/opt/aliDataD2D/xml  ##匿名用户主目录

可能遇到的问题
登录提示“530 Permission denied”
检查用户是否在/etc/vsftpd/user_list中,如果是,从里面删除

登录提示“530 Login incorrect”
1. 检查用户是否在/etc/vsftpd/ftpuser中,如果是,从里面删除
2. 如果不是上面的情况,修改/etc/pam.d/vsftpd,将auth required pam_shells.so修改为auth required pam_nologin.so

配置匿名用户主目录后匿名登录报错“refusing to run with writable root inside chroot”
重新配置匿名用户主目录权限chmod a-w /home/anonymous

启动服务

systemctl enable vsftpd
systemctl start vsftpd