问题与FTP客户端中的符号链接

我最近遇到了一些问题,试图以某种方式设置FTP服务器。 我有一个客户谁拥有大量的数据放在一个文件夹。 客户端然后有数据组织的各种目录。 最后(“目录filter”)他们有一个符号链接,指向海量数据文件夹中的文件。 例如

/lab/directory1/type2/data/owner/lab/bla/bla/file---->/lab/data/filexyz 

为了复制和设置一个“FTP”服务器,我简单地创build了一个名为/lab/data/的目录,并将所有的数据复制到那里。 然后我复制了符号链接文件夹结构。

然后我设置vsftpd。 用false bin创build一个本地用户并将用户主目录设置为/lab我遇到的问题是,当我在configuration文件中启用了chroot_local_user=YES ,用户无法获取服务器给出的文件550 Failed to open file. 为什么是这样的情况。 符号链接指向位于其主目录中的文件。 但是,当我有chroot_local_use=NO用户能够无缝地下载文件。 有没有办法让用户通过符号链接来获取文件,而这些链接在chroot jailed的时候在他们的主目录中呢?

我一直在挠头。 谢谢!

符号链接是指向“正确”文件的指针。 但是,如果原始文件在监狱之外,那么你不能访问它。 这是监狱的目标。 否则,一个普通的用户可以在jail中创build一个符号链接到/etc/passwd并且只读取它。 多么安全的风险!

所以监狱被监禁。 可能是一个硬链接将完成这项工作,因为这是一个“复制没有重复使用的大小”。 而对于FTP服务器,它就像一个正常的文件(所有的问题)。

你应该使用像mount --bind这样的东西

您可以使用mount的bind选项重新挂载另一个文件夹,以便FTP服务器将文件视为在网站的根目录中。

…你可以挂载/ home / shared / files /在/ home / website / files /下。

在/ home / website中创build一个挂载点(一个目录)

mkdir / home / website / files /

将另一个目录挂载在此挂载点下

mount –bind / home / shared / files / home / website / files /

现在看来,这些文件实际上是在/ home / website /下,所以即使你将用户限制在这个网站的根目录也是可用的….

采取从这里:

设置用户可以通过FTP访问的符号链接