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


22

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

我尝试将符号链接(ln -s)链接到所需目录,但按预期的那样,它不起作用。我尝试(cp -rl)访问要授予访问权限的文件,该文件可以正常工作-他们可以编辑目录中的文件,并更改存储在jail之外的文件。但是他们无法创建新文件(可以但不能在监狱外更新)。我知道我可能没有按照“正确的方式”进行操作,但是我该怎么做才能做自己想做的事情?

Answers:


40

符号链接纯粹是符号性的:它们仅包含路径,因此,当您打开符号链接时,操作系统将读取该路径并改为使用该路径。在chroot环境中,链接(尤其是具有绝对路径的链接)通常不会指向它们在正常环境中指向的相同位置。

如果服务器操作系统是Linux,则最好的选择是将整个目录绑定安装在chroot目录中的某个位置。使用此功能时,请记住,这不是目录的副本,重要的是要记住,此处删除的所有内容都将从其他目录中删除(如果用户可以mv归档或,则很重要rm -rf)。去做这个:

mount --bind /some/directory /somewhere/else

目录中的文件应为真实文件。首先,这里的符号链接可能会遇到与尝试链接到文件相同的问题。


感谢您的回答。您能否说明或指导我有关如何使它工作的教程?我为访客禁用了ssh,因此他们仅具有sftp访问权限。我该命令放在哪个文件中?
dukevin

尽管不建议这样做,但您也可以创建目录硬链接,这会更简单,但前提是所有文件都在同一设备上。
Falcon Momot 2012年

这样做的命令是什么
dukevin 2012年

@KevinDuke这不是用户可以自己做的事情,只有root可以使用mount这种方式。有可能是在其指定的方式/etc/fstab,所以它在启动时自动完成的,但我不知道如何
DerfK

1
谢谢。我阅读了一些教程,并弄清楚了。您的回答确实帮助我指明了正确的方向。谢谢!对于那些谁想要知道,这些帮助:aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/... redbottledesign.com/...
dukevin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.