chroot sftp 用户的帮助

chroot sftp 用户的帮助

我有 5 个网站,全部位于 /home/mainuser 下。我在 /home/user1 中创建了用户,目前 sftp 可以正常工作,并且用户被限制在其文件夹中。但是,我希望它能够访问 /home/mainuser 中的 2 个网站,并对 user1 隐藏其他 3 个网站。因此,我尝试创建符号链接。但是它不起作用。有人能帮我解决这个问题吗?

这是我当前的设置:

Subsystem sftp internal-sftp

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

答案1

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

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

去除:

umount /home/mainuser/site1

答案2

这实际上不是一个硬性的解决方案,但是如果您创建一个虚拟主目录,并在其中放置指向您希望他访问的目录的硬链接,会怎么样?

但要小心!目录的硬链接可能很危险!当您 rm -r one 时,您将首先清空内容,并且由于内容没有重复,您将删除数据。使用 unlink 删除硬链接目录。

(您可以使用‘stat’根据链接数检查文件/目录是否为硬链接)。

答案3

您可以将用户限制在 /home 中,然后使用权限和/或 ACL 屏蔽用户无权查看的目录(如果您的文件系统允许的话)。

这并不是最安全的解决方案,因为您必须重新检查正在创建的新目录的权限,但这可能不是问题。

相关内容