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

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

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

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

为了复制和设置“FTP”服务器,我只需创建一个名为的目录/lab/data/并将所有数据复制到其中。然后我只是复制了符号链接文件夹结构。

然后我设置了 vsftpd。创建一个带有假 bin 的本地用户,并将该用户的主目录设置为/lab我遇到的问题是,当我chroot_local_user=YES在配置文件中启用时,用户无法获取服务器提供的文件,550 Failed to open file.为什么会这样。符号链接指向他们主目录中的文件。但是当我有时,chroot_local_use=NO用户可以无缝下载文件。有没有办法让用户在被 chroot 监禁时通过他们主目录中的符号链接获取文件?

我一直在为此绞尽脑汁。谢谢!

答案1

符号链接是指向“正确”文件的指针。但如果原始文件在 jail 之外,那么您就无法访问它。这就是 jail 的目的。否则,普通用户可以在 jail 中创建符号链接并/etc/passwd直接读取它。这是多么大的安全风险啊!

所以 jailed 就是 jailed。硬链接可能可以完成这项工作,因为这是一个“不重复使用大小的复制”。对于 FTP 服务器来说,它就像一个普通文件(带有所有问题)。

答案2

您可以使用 mount 的绑定选项重新挂载其他文件夹,以便 FTP 服务器将文件视为位于网站的根目录中。

您可以像这样/home/shared/files/安装。/home/website/files/

在中创建挂载点(目录)/home/website

mkdir /home/website/files/

在该挂载点下挂载其他目录:

mount --bind /home/shared/files /home/website/files/

现在看起来这些文件实际上位于下面/home/website/,因此即使您将用户限制在该网站根目录中,这些文件仍然可用......

摘自这里:

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

答案3

你应该使用类似mount --bind

答案4

我遇到这个问题是因为我使用了链接目标的绝对路径。

我的命令是:

ln -s /var/www/vhost/myhost.com/typo3_src/typo3_src-8.7.6/ typo3_src

... typo3_src 没有出现在 FTP 客户端中

当我使用相对路径时它起作用了:

ln -s typo3_src/typo3_src-8.7.6/ typo3_src

相关内容