安装的vsftpd, 配置文件是根据以前整理的一个vsftpd.conf, 使用系统的用户来登陆ftp, 配置文件中有
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/usr/local/etc/vsftpd.chroot_list
默认把不允许访问上级目录的ftp用户卸载vsftpd.chroot_list下, 然后配置完毕, 新建立的ftp用户也可以正常登陆, 但是自从重启了一次vsftpd之后就怎么也无法登陆了… 一直报”530 Login incorrect”错误, 我就郁闷, google,baidu了半天, 最后终于找到一点思路, 似乎和pam有关系, 最后终于在老外的一个站上发现了:
关键点一:
Your vsftpd.conf should look like this:-
#anonymous_enable=YES
local_enable=YES
write_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
Also check /etc/vsftpd/user_list and /etc/ftpusers
This will allow the local users to access their home directories via ftp
其实就是少了一行:
pam_service_name=vsftpd
关键点二
其他的解决思路:
1、被动模式的问题
2、有时候可能是主目录的问题,比如你的FTP主目录是/data/www,但是用户vsftpd的在/etc/passwd不是这个目录也会出问题,记住查看日志。(我的FTP报这个错是因为我把/etct/passwd下FTP用户的/sbin/nologin改成了/bin/bash,改回原来的禁止登录服务器就OK )
关键点三
在网上看到这问题还有一种原因是说服务器系统是64位的。
这种情况只需要把 /etc/pam.d/下面的vsftpd里面的/lib 修改为/lib64
cd /etc/pamd.d
vi vsftpd
然后保存退出
service vsftpd restart就ok
不过我的系统虽然是64位。但是却没有找到/lib这东西
再网上再找过一些资料后
发现
只需要把/etc/pam.d/vsftpd文件中的
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
这一句注释掉就OK了。前面加一个#好
重启vsftpd服务。
或者 把 auth required pam_shells.so 注释掉就好(本人将这两行注释后才能远程连接ftp服务器)
关键点四
官网维护服务器后,FTP登录出现如下提示:
Login failure: 530 Login incorrect
求助在线客服未解决问题。
查看secure日志文件:
tail -f /var/log/secure
passwd: pam_unix(passwd:chauthtok): password changed for esoft
Jun 19 00:32:48 ip-72-16-9-18 vsftpd: pam_listfile(vsftpd:auth): Couldn’t open /etc/vsftpd/ftpusers
Jun 19 00:32:48 ip-72-16-9-18 vsftpd: pam_shells(vsftpd:auth): /etc/shells is either world writable or not a normal file
于是在root下执行:
cp /etc/vsftpd.ftpusers /etc/vsftpd/ftpusers
chomd 644 /etc/shell