在 ubuntu 上设置 FTP 服务器,以便用户 XXXX 只能访问 /var/www/

在 ubuntu 上设置 FTP 服务器,以便用户 XXXX 只能访问 /var/www/

我尝试使用 vsftpd,但结果是我的用户可以访问整个文件系统。

我创建了一个组 www,将 /var/www 更改为属于该组,然后将新用户“ftpuser”添加到该组。

但是当我登录时,用户可以访问文件系统中的所有内容。

你们有推荐一款好用又简单的 Linux FTP 服务器吗?我需要能够轻松管理权限,比如哪个用户访问哪个目录。

谢谢,

—塞尔吉奥

答案1

您需要确保将 VSFTPd 配置为 chroot 该用户。查看 chroot_local_user 设置。这样他们就只能访问他们的文件夹。

答案2

您做错了。您最好在 Apache 中创建一个 vhost,而不是使用默认的 /var/www。这样,您可以在 /home/user/public_html 中创建 vhost 文件系统根目录。所有(大多数?)ftp 服务器在用户登录时默认为其主目录提供服务,因此您无需进行任何配置。

还要考虑 ftp 是否真的是最佳选择。FTP 不安全,因为它默认没有加密 - 考虑改用 scp/sftp。同样,您不需要进行任何额外的配置,因为默认情况下您将为用户的主目录提供服务。而且您可能已经有一个正在运行的 ssh 服务器,它将为您提供 scp。

适用于 Windows 的优秀 sftp/scp 客户端是 Winscp。

答案3

我不知道如何使用 VSFTPd 来做到这一点;事实上,我尝试过,但放弃了(我还有其他项目要做)。

但我确实遇到过类似的问题,我解决这个问题的方法是强制他们使用 SFTP。这可以通过仔细修改 OpenSSH 服务器配置 (/etc/ssh/sshd_config) 来实现。搜索 SFTP 和“ChrootDirectory”,您会找到几个教程。

一些陷阱:您的 chroot jail 目录的整个路径必须由 root 拥有,并且必须由您的 SFTP 用户只读。

如果您想让某些用户访问某些网站,但仍希望以系统管理员的身份在一个地方管理所有网站,请考虑创建一个单独的 SFTP jail(我将我的网站命名为 /var/www/ftp,而我的网站位于 /var/www/html),然后使用“mount --bind”将目录硬链接到新目录中。请注意,您必须首先创建单独的挂载目录,并且必须指定目标目录和挂载点目录的完整路径。

最后说明:我意识到这是一个老问题,但如果本周早些时候我查找的时候这个答案就在这里,它就可以节省我整整两天的研究时间。

答案4

我遇到了同样的问题,发现该主题标记为已解决, 希望能帮助到你 :)

附言这个看起来好多了。

相关内容