SFTP:监禁(chrooted)目录中的文件符号链接

duk*_*vin 26 cp jail chroot sftp symlink

我正在尝试设置 sftp,以便一些受信任的人可以访问/编辑/创建一些文件。我已将用户监禁到他们的主目录 (/home/name) 中,但遇到了问题。我希望他们也能够访问 VPS 的其他部分,因为它也是一个游戏服务器、网络主机等,我希望他们能够完全控制他们被监禁的目录之外的文件。

我尝试创建指向所需目录的符号链接 (ln -s),但没有按预期工作。我尝试 (cp -rl) 访问我想要访问的文件并且它起作用了 - 他们可以编辑其目录中的文件并更改存储在监狱外的文件。但是他们不能创建新文件(他们可以,但不会在监狱外更新)。我知道我可能没有以“正确的方式”这样做,但是我该怎么做才能做我想做的事?

Der*_*rfK 47

符号链接纯粹是象征性的:它们只包含一个路径,所以当你打开一个符号链接时,操作系统会读取路径并使用它。在 chroot 环境中,链接(尤其是具有绝对路径的链接)通常不会指向它们在正常环境中指向的相同位置。

如果服务器操作系统是 Linux,最好的办法是将整个目录绑定挂载到 chroot 目录内的某个位置。使用它时,重要的是要记住这不是目录的副本,此处删除的任何内容都将从其他目录中删除(如果用户可以使用mv文件或 ,则很重要rm -rf)。去做这个:

mount --bind /some/directory /somewhere/else
Run Code Online (Sandbox Code Playgroud)

目录中的文件应该是真实的文件。此处的符号链接可能会遇到与您首先尝试链接到文件时遇到的相同问题。