实体用户(/bin/nologin)登陆vsftp失败的问题


xuser

今天在服务器上安装vsftp以便给同志们开放一个ftp私有资源,居然也出了不少问题,这里作一些简单的记录吧。首先设置了chroot限制用户跨越目录和其他一些设置,然后写了下面几行来写入仅允许登陆的ftp用户
 

#user define
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_allow

看上去一切完好如此,没有发现什么问题,居然发现登录的时候失败。如下所示:
 

Connected to fsafe.org.
220-Welcome to FSAFE ftp server.
220-If you find any question, please send mail to ftp@fsafe.org.
220
User (fsafe.org:(none)): test
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> quit


验证了密码并排除该问题,几乎头都大了还是没有找个这个解决方法,无奈之下开始g搜下了吧,在chinaunix上一个论坛帖子这样写到关于此类问题的解释:
 

check_shell
    Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a valid user shell for local logins.

    Default: YES


也就是说vsftpd在登录验证的时候会检测shell是否在这个列表中,之前对新添加的用户shell是/bin/false,在/etc/shells中发现没有添加上,重新ftp登录成功,其实这个问题应该是linux的版本不同而导致用户shell不一样的,看来以后得留意了这方面更新。

###########后记############
vsftp文档中这样写到关于shell的验证问题,大家就取其一来解决这类问题吧。
check_shell=NO /////注意! 这个选项只对构建时加入 non-PAM 参数的 vsftpd 有效. 如果令其失效, vsftpd 将不会检查有效用户的用于本地登录的 /etc/shells.
 

相关内容

    暂无相关文章