我希望在 11.10 中配置 vsftpd,以便当用户连接时,他会看到或重定向到特定文件夹。文件夹的名称与用户或主文件夹无关。它与 /var/www 中的文件夹相关。例如:
如果用户 cyrex 登录 ftp,他将被重定向到 /var/www/gamers,或者至少在他的主文件夹中显示一个 gamers 文件夹,该文件夹重定向到 /var/gamers。如果用户 camelot 登录 ftp,他将被重定向到 /var/www/food,或者至少在他的主文件夹中显示一个 food 文件夹,该文件夹重定向到 /var/food。...
他不应该离开他的主文件夹,并且只能访问主文件夹内重定向到其他部分的文件夹,例如 /var/www/FOLDERS。
更新:在一种配置方式中,用户应该看到他的主文件夹以及将他重定向到 /var/www/UserFolder 的文件夹。在另一种配置 VSFTPD 的方式中,用户应该被重定向到 /var/www/UserFolder,甚至看不到他的主文件夹,只有特定于他的 var/www。是否可以在一个答案中显示这两种方法,以便我可以测试这两种方法,看看哪种方法更好。
有什么更简单的方法可以做到这一点?
答案1
您只需修改 的启动调用vsftpd
。如果用户登录,该user_config_dir
参数将告诉服务器在目录中查找配置。与登录的任何其他用户类似。我猜如果未找到配置文件,服务器将恢复为默认配置文件。/etc/vsftpd_user_conf/luis
luis
无论如何,请快速阅读一下此手册页(您也可以使用 终端访问man vsftpd
):http://vsftpd.beasts.org/vsftpd_conf.html
以下其他指南可以帮助您为服务器使用自定义目录:http://gofedora.com/如何配置安全ftp服务器-vsftpd/
答案2
一些来源尚不清楚它是否适用于虚拟用户或普通(本地)用户。它也适用于本地用户。
我也不清楚我可以在用户特定文件中设置什么。
因此,您可以执行以下操作:
- 编辑配置文件:
sudo vim /etc/vsftpd.conf
- 添加以下行:
user_config_dir=/etc/vsftpd/user_config_dir/
- 退出编辑器并保存更改(如果是,
ESC
则使用上面使用的方法):wq
vim
- 编辑用户特定的文件,例如,如果
alice
用户sudo vim /etc/vsftpd/user_config_dir/alice
- 将用户特定的设置添加到文件中,例如
local_umask=0737
- 退出编辑器并保存更改(参见上文)
- 对每个想要指定任何用户特定设置的用户重复最后三个步骤。
- 重新启动 ftp 服务器:
sudo service vsftpd restart
注意:以上示例强制用户alice
使用权限字符串创建文件----r-----
。如果您的扫描器只将文件上传到服务器,则这很有用alice
。扫描器永远不会读取、更改或执行上传的文件,但同一组的其他用户可以读取这些文件,例如复制它们进行编辑。如果目录的权限设置正确,这些用户仍然可以删除上传的文件。
答案3
它可以与多个用户一起工作,但我找不到方法让它应用在指定范围内单独的用户配置文件中所做的设置user_config-dir
。
我在同一台服务器上仅使用 2 个 FTP 帐户就获得了结果,例如网站 @myserver.org 和[电子邮件保护],它忽略了在和文件夹中local_root
指定的位置,并且在这两种情况下都只是将 FTP 连接根植于用户的主目录。尽管已经尝试过 和 ,但仍然出现这种情况。website.conf
otherstuff.conf
user_config_dir
chroot_local_user=NO
chroot_local_user=YES
通过单个用户和仅需要配置的文件,只要我获得所有权、组和适当的权限,vsftpd.conf
我就可以毫无问题地 root FTP 帐户。/var/www/html/mysite.org
我没有放弃完全在 vsftpd 上,它是 YouTube 和在线教程中关于如何设置自己的服务器最广泛使用的 FTP 服务器。但我能做的很少,无法让它为多个用户工作——这是我必须因为我的服务器上托管多个域,并且每个域上都有一个网站,需要至少 1 个安全的 FTP 帐户。
令我如此怀疑的是,完全没有一个成熟的 SFTPD 用户论坛,让经验丰富的人可以帮助经验不足的人。
在 GitHub 上建立这样的论坛非常简单。您可能会认为,这样的论坛(实际上也是一个错误陷阱)对于持续的项目至关重要。
但 SFTPD 所有者似乎不这么认为。