我在我的 Ubuntu 20.04 服务器上设置了 vsftpd。一切正常,我什至能够配置 TLS。现在,我不希望用户使用 SSH。我也因此禁用了 SFTP。我不想为这些用户禁用 SSH,因为我希望他们将其用于更改密码等一些基本工具。因此,我使用这些工具创建了一个自定义 shell。但是,当我为用户启用此 shell 时,他们无法登录 FTP。它只是显示“登录不正确”。
为什么 vsftpd 会这样做?
我在我的 Ubuntu 20.04 服务器上设置了 vsftpd。一切正常,我什至能够配置 TLS。现在,我不希望用户使用 SSH。我也因此禁用了 SFTP。我不想为这些用户禁用 SSH,因为我希望他们将其用于更改密码等一些基本工具。因此,我使用这些工具创建了一个自定义 shell。但是,当我为用户启用此 shell 时,他们无法登录 FTP。它只是显示“登录不正确”。
为什么 vsftpd 会这样做?
根据这篇文章,vsftpd 配置文件有一行:
这指向 vsftpd pam 服务,它只允许有效的 shell。
所以,如果你注释掉这一行:
/etc/pam.d/vsftpd
然后重启 vsftpd 服务(systemctl restart vsftpd
或) ,service vsftpd restart
用户就可以登录了。希望这可以帮助某人:)