用户密码对 vsftpd 服务器不起作用

用户密码对 vsftpd 服务器不起作用

我创建了一个用户:

useradd -m -s /bin/false testuser

此外,我在 vsftpd.user_list 中添加了“testuser”,并使用 passwd 更改了密码。重新启动 vsftpd 服务后,我想登录服务器,但收到错误 530(登录不正确)。为什么我无法登录服务器?使用在服务器安装时创建的默认用户,它可以正常工作。为什么?

谢谢

答案1

我以前也遇到过类似的情况,对我来说,问题在于这/bin/false不是一个 shell。(抱歉,无法更好地解释,忘记了背景。我认为这与 PAM 有关。)

许多较旧的教程建议将/bin/false无登录用户的设置设为 shell,但更好的选择是/usr/sbin/nologin

尝试设置/usr/sbin/nologin为 FTP 用户的登录 shell:

usermod -s /usr/sbin/nologin USERNAME

然后尝试再次登录。

答案2

我通过重新安装 vsftpd 解决了这个问题。现在用户可以工作了。

答案3

@lxg 你真的差点就做到了。

我同意这/usr/sbin/nologin不是一个 shell,因为你没有将它添加到/etc/shells。因此,如果你将此行附加到 shells 文件中,则如下所示:

# /etc/shells:有效的登录 shell
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/sbin/nologin

问题就解决了。

当然,您必须使用命令以用户身份登录

usermod -s /usr/sbin/nologin 用户名

并匹配共享目录的权限。

要恢复登录可能性,只需使用:

usermod -s /bin/bash 用户名

顺便说一句。在 Ubuntu 16.04 上,只有这种方法对我有用。

相关内容