Linux下vsftpd的配置问题
1、添加FTP用户william
sudo useradd -d /var/www -s /sbin/nologin william
2、设置用户密码
passwd william
如果出现passwd: authentication token manipulation error,错误时,执行sudo /usr/sbin/pwconv
3、编辑vsftpd.conf文件
vi /etc/vsftpd/vsftpd.conf
4、设置如下内容
anonymous_enable=NO #禁止匿名登录
local_enable=YES #本地用户登录
write_enable=YES #可写入
local_umask=022
dirmessage_enable=YES
chroot_local_user=YES #所有用户都被限制在其主目录下
chroot_list_enable=YES #chroot_list里的用户不受锁定目录限制
chroot_list_file=/etc/vsftpd.chroot_list #
listen=YES
pam_service_name=vsftpd
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
5、建立/etc/vsftpd.chroot_list
加入账户名,这里的账户可以将目录切换到其主目录的上层目录
6、建立 /etc/vsftpd.user_list
加入账户名,这里的账户允许登录,不在chroot_list里的账户无法切换到上层目录
7、vim /etc/ftpusers
这里的用户不允许连接FTP,确保你的FTP账户不在这里
8、vim /etc/shells
由于在这个文件(/etc/pam.d/vsftpd),配置了auth required pam_shells.so,意思就是仅允许用户的shell为 /etc/shells文件内的shell命令时,才能够成功
所以我们将/sbin/nologin加入到/etc/shells中,这样避免了530 Login Incorrect
第2中方法就是编辑/etc/pam.d/vsftpd,将auth required pam_shells.so修改为->auth required pam_nologin.so
9、在防火墙中加入21端口例外
10、启动重启服务
service vsftpd restart
11、连接FTP
vsftpd常见错误:
错误1:PASV failed, trying PORT
答:检查端口是否开启,或者port_enable是否开启
错误2:connection refuse
答:检查pasv_address是否正确
错误3:500 OOPS: cannot change directory
答:setsebool ftpd_disable_trans 1
错误4:532 OOPS
答:访问文件需要账户登录
问:如何修改FTP用户的目录
答:usermod -d /var/www/newfolder william
问:如何检查端口是否开启
答:netstat -an | grep 21
问:530 login incorrect
答:参见第8步
问:无法上传文件
答:修改目录权限sudo chown -R william /var/www

浙公网安备 33010602011771号