尝试了解vsftpd的符号链接行为

我最近把我的网站移到了一个CentOS 6 VPS(来自一个支持HyperVM的CentOS 5 VPS)。 我设置了vsftpd来处理我们的FTP需求。 我为每个需要使用FTP的人创build了一个本地用户。 对于我的用户Joe,他使用FileZillalogin并login到/home/joe 。 Joe可以使用该文件夹进行私人存储,但是我已经放置了一个符号链接,以便他可以在/var/www/html/storage访问公共/var/www/html/storage

所以在他的目录中,我做了根: ln -s /var/www/html/storage/ storage

出于某种原因,结尾是必要的,否则storage将显示为FileZilla中的文件而不是目录的快捷方式。

无论如何,在/home/joe ,当Joe导航到storage他的path突然变成/var/www/html/storage而不是/home/joe/storage 。 这使得很难将父文件夹导回到他的主目录。

有没有办法纠正这一点?

在我的服务器上禁用了chroot ,这很好。 我相信我的用户,但是通过符号链接将它们扔到文件系统中是不方便的。 如果我启用了chroot那么他们将无法进入/var/www

奇怪的是,这在我之前使用HyperVM的VPS上有效。 但是那个使用PureFTP而不是vsftp。 我认为它创造了虚拟用户,而不是真正的本地用户在机器上。 虚拟用户是否需要能够以我想要的方式进行符号链接?

我研究的另一个解决scheme是使用mount --bind ,但是我不确定这是否是最好的行动。 它会破坏我的文件系统有大量的挂载点吗? 当我们应该工作的时候,也只是觉得不合适。 如果我以Joe身份login服务器,我可以在bash shell中进入/home/joe/storage 。 那么为什么我不能在FTP上做呢?

作为一个侧面说明,这是否与FTP客户端中的LISTMLSD有关? 我有一个Mac用户无法看到符号链接作为符号链接,即使我把一个尾部/在链接。

我会做挂载 – 绑定选项..因为它至less会坚持filezilla中的path。

同样,如果你想在vsftp中启用chroot,所以用户看到/ home / user as /会增加更多的安全性,但是挂载–bind将允许用户仍然进入那个目录,而符号链接不会