一:解决方案一
- 查看 /etc/vsftpd/vsftpd.conf 查到 pam_service_name=vsftpd ,可知认证pam 文件位于 /etc/pam.d/vsftpd
- 查看 /etc/pam.d/vsftpd 看到一行 auth required pam_shells.so ,因为创建ftp账户时候,禁止了ssh登陆 所以此处应该改为 pam_nologin.so
- 重启 systemctl vsftpd.service restart ,可以正常登陆
二:解决方案二
通过修改配置文件解决了。
总结了一下在搭建FTP服务器的时要注意的地方大概有下面这几点:
(1)首先==/etc/vsftpd/vsftpd.conf==的配置文件中匿名用户要打开
anonymous_enable=YES
1
(2)如果使用的是本地账号那么查看 /etc/vsftpd/ftpusers文件,该文件中所列出的用户名,都是不允许登录FTP服务器的,另外如果在 /etc/vsftpd/vsftpd.conf文件中开启了user_list即:
userlist_enable=YES
userlist_deny=YES
1
2
那么还要查看 /etc/vsftpd/user_list文件,在该文件中出现的用户名也是不可登录的
但是若:
userlist_enable=YES
userlist_deny=NO
则不是user_list 的问题
(3)如果是用ftp虚拟用户登录的时候出现该错误,那么原因一般有下面几个方面:
①检查自己的虚拟用户数据库内容是否有误
②可能是PAM模块有问题检查自己的 /etc/pam.d/vsftpd文件的内容
③虚拟用户验证FTP服务因为需要用到PAM模块,所以本地用户有可能被PAM模块限制而导致无法登陆
我所出现的问题就是第三种,我的PAM模块的vsftpd文件是这样写的
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
所以在PAM认证的时候只会识别我在虚拟用户数据库里面添加的虚拟用户,而本地用户不在数据库里面,所以当我用本地用户登录时,就一直报530这个错误了
三:方案三
今天遇到一个主机,RHEL6.6的系统,vsftp服务是运行的,但是用户输入正确的密码登录会报530的错误,无法登录成功。
使用FlashFXP报错如下
在本机使用ftp客户端登录报错如下:
问题分析:
一、先检查vsftpd的配置文件是否正常。检查了/etc/vsftpd目录,以及vsftpd.conf配置文件。查看后无异常
查看/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件中,也没有限制登录的帐号。
二、这时,想到可能是pam模块的问题。
于是,看了下/etc/vsftpd/vsftpd.conf文件中的相关配置,是启用pam的
然后查看/etc/pam.d下的vsftpd文件了,发现有两个文件
分别查看了下文件里的内容
问题来了,vsftpd里的内容是不对的,应该是vsftpd.bak里的内容才是正确的。
这样就很简单了,把/etc/pam.d/vsftpd的内容恢复。执行service vsftpd restart重启一下vsftp服务,再测试登录的时候,就正常了。
原文链接:https://blog.csdn.net/junjunjiao/article/details/50738009
原文链接:https://blog.csdn.net/yunhan0609/article/details/83055883