如何在 Linux 服务器上创建只能进行远程 ftp 访问的用户?

如何在 Linux 服务器上创建只能进行远程 ftp 访问的用户?

我正在运行 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 为登录名的访问权限。

相关内容