帮助chroot sftp用户

我有5个站点都在/ home / mainuser下。 我在/ home / user1中创build了用户,目前sftp工作,用户被关进他的文件夹。 但是,我希望它有权访问/ home / mainuser中的2个站点,并从user1隐藏其他3个站点。 所以我试图创build一个符号链接。 但它不起作用。 任何人都可以帮我解决这个问题吗?

这是我目前的设置:

Subsystem sftp internal-sftp Match group SFTP-users ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 

在Linux上,您可以使用绑定挂载

 mkdir /home/user1/site1 mount --bind /home/mainuser/site1 /home/user1/site1 

去除:

 umount /home/mainuser/site1 

不是一个真正的快速解决scheme,但是如果你创build了一个虚拟的主目录,在这个目录中你可以把硬链接放到你希望他访问的目录上?

当心虽然! 到目录的硬链接可能是危险的! 当您使用rm -r之一时,您将首先清空内容,并且由于内容不重复,您将删除您的数据。 通过取消链接删除硬链接的目录。

(你可以使用'stat'来检查一个文件/目录是否是一个硬链接,按链接数量来计算)。

您可以将用户关在/ home,然后屏蔽用户不应该使用权限和/或ACL(如果您的文件系统将他们closures)看到的目录。

不是最安全的解决scheme,因为您将不得不重新检查正在创build的新目录的权限,但也许这不是问题。