vsftp登录报530 Login incorrect无法登录问题解决

1 背景分析:
参照其他网上教程的配置后,在账号、密码、主目录都是正确的情况下,可能会遇到账号登录提示 530 Login incorrect 的问题。

网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam.d/ftp文件不存在,等于是绕过了PAM。

2 vsftpd pam文件分析:
/etc/pam.d/vsftpd 默认如下:

可能导致530错误的有
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth required pam_shells.so

2.1 /etc/ftpusers

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。

2.2 pam_shells.so

auth required pam_shells.so 配置项的含义是:仅允许用户的登录shell为 /etc/shells文件内的shell命令时,才能登录。

而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了。

3 解决方案:
1、查看/etc/ftpusers ,确保账号没有在这个文件内。
2、修改/etc/pam.d/vsftpd
将auth required pam_shells.so修改为->auth required pam_nologin.so 或者将auth required pam_shells.so注释
3、重启vsftpd

猜你喜欢

转载自blog.csdn.net/weixin_42272246/article/details/123631435#comments_28402247