我正在运行 Ubuntu 10.04 LTS 服务器,并且我想创建只能从 FTP 访问服务器的用户。
到目前为止我所做的是:
- 安装
vsftpd
- 创建新用户,默认登录 shell 设置为
/bin/false
服务器上的普通用户都可以通过 ftp 访问其主文件夹,但是通过将其设置为删除远程 shell 访问权限的用户/bin/false
也无法通过 ftp 登录。
我不明白 shell 访问如何影响服务器vsftpd
?如何在不重新启用 shell 的情况下启用 ftp 访问?
更新:
我发现了这个参考表明我应该使用/sbin/nologin
(似乎/usr/sbin/nologin
在 Ubuntu 中)并且它不应该影响 ftp 访问,但它在我的情况下不起作用。
答案1
我不知道回答我自己的问题是否是一个好习惯,但我找到了一个启用 ftp 登录的简单解决方案。
我需要添加一行
/usr/sbin/nologin
到文件 /etc/shells.在此修改之后,ftp 服务器开始接受 shell 设置为 /usr/sbin/nologin 的用户的登录。所以他们无法通过 ssh 登录,但它与 ftp 完全按照我想要的方式工作。
感谢您的有用评论。
答案2
将用户 shell 设置回/bin/false
(或其他一些无效的 shell),然后/bin/false
在/etc/shells
.
我看到一个主要的/usr/sbin/nologin
设置为 的安全问题/etc/shells
。您正在授予 FTP(或许还有其他)对所有守护进程和/usr/sbin/nologin
以 shell 为登录名的访问权限。