vsftp登录失败_实体用户(/bin/nologin)登陆vsftp失败的问题【转】

在服务器上安装vsftp时遇到登录失败的问题。错误显示为Login incorrect。排查过程包括验证密码、检查用户shell。问题在于vsftpd在登录验证时会检查/etc/shells文件,而新添加用户的shell未在该文件中。解决方案是确保用户shell在/etc/shells列表中或禁用vsftpd的check_shell检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在服务器上安装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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值