如何在Linux服务器上创建仅具有远程ftp访问权限的用户?


11

我正在运行Ubuntu 10.04 LTS服务器,我想创建只能从FTP访问服务器的用户。

到目前为止,我所做的是:

  • 安装 vsftpd
  • 使用默认登录shell设置为来创建新用户 /bin/false

服务器上的普通用户都可以通过ftp访问其主文件夹,但是通过将远程shell访问设​​置为来删除远程shell访问的用户/bin/false也无法通过ftp登录。

我不了解外壳程序访问如何影响vsftpd服务器?如何在不重新启用外壳的情况下启用ftp访问?

更新:
我发现此引用指出我应该使用/sbin/nologin(似乎/usr/sbin/nologin在Ubuntu中),并且它不应影响ftp访问,但在我的情况下不起作用。


可以尝试将其设置为/ bin / true
balki 2011年

我从未使用过vsftpd,但是我找到了可以满足您需求的解决方案。我不知道这是否是最好的解决方案(我认为它应该可以工作,但是也许有更好的解决方案)。
pbm 2011年

刚刚尝试过/ bin / true,它不起作用。
jmbouffard 2011年

感谢@pbm,但这并不是我想要的,因为我更喜欢使用真实用户。
jmbouffard 2011年

Answers:


12

我不知道回答我自己的问题是否是一个好习惯,但是我找到了一个启用ftp登录的简单解决方案。

我需要添加线

/ usr / sbin / nologin

到文件/ etc / shells。进行此修改后,ftp服务器立即开始接受外壳程序设置为/ usr / sbin / nologin的用户的登录。因此,他们无法通过ssh登录,但可以完全按照我的要求与ftp一起使用。

感谢您的宝贵意见。


我几天前在某处读到,这打开了安全漏洞。那里的任何专家都可以为我澄清这一点。
Navneil'7

0

将用户外壳设置回/bin/false(或其他无效的外壳),然后设置/bin/false/etc/shells

我看主要有设置安全问题/usr/sbin/nologin/etc/shells。您为FTP(可能还有其他)提供了对所有/usr/sbin/nologin作为其shell的守护程序和登录名的访问。


1
到底如何 存在nologin来允许nologin-带有可选的自定义消息,/etc/nologin.txt以便ftp用户可以知道它仅是ftp或类似的ftp。
Dani_l '16

vsftpd是通过拥有自己的访问列表来防止未经授权的访问的方法。
Dani_l '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.