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

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

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

但是当我login的用户有权访问文件系统中的所有内容。

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

谢谢,

-Sergio

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

你这样做是错的。 在Apache中创build一个虚拟主机比使用默认的/ var / www要好得多。 这样你就可以在/ home / user / public_html中创build虚拟主机文件系统根目录。 所有(大多数?)ftp服务器在login时将默认为用户的主目录提供服务,因此您不需要再进行任何configuration。

还要考虑一下ftp是否真的是最好的select。 FTP是不安全的,因为它默认没有encryption – 请考虑使用scp / sftp。 同样,您不需要进行任何额外的configuration,因为您将默认提供用户的主目录。 而且你可能已经有了一个运行ssh的服务器,它将为你提供scp。

用于Windows的一个好的sftp / scp客户端是Winscp。

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

但是我也遇到了类似的问题,我解决这个问题的方法是迫使他们使用SFTP。 这可以通过对OpenSSH Serverconfiguration(/ etc / ssh / sshd_config)进行一些仔细的修改来configuration。 searchSFTP和“ChrootDirectory”,你会发现几个教程。

几个小问题:您的chroot jail目录的整个path必须由root拥有,并且必须是您的SFTP用户只读的。

如果你想让某些用户访问特定的站点,但是你仍然想把它们全部作为系统pipe理员来pipe理,可以考虑创build一个单独的SFTP监狱(我称为mine / var / www / ftp,而我的站点在/ var / www / html),然后通过“mount –bind”将目录硬连接到新目录中。 请注意,您必须先创build单个装载目录,并且必须指定目标目录和装载点目录的完整path。

最后说明:我意识到这是一个古老的问题,但是如果这个答案在本周早些时候出现在这里,那么这将为我节省两天的时间。

我遇到了同样的问题,发现这个线程标记为已解决 ,希望它有助于:)

PS 这一个似乎更好。