需要访问同一父文件夹下多个目录的 Chroot SFTP 用户

Gre*_*hal 5 linux chroot sftp acl access-control

我有一个带有 /Documents 目录的 RHEL 6 服务器,它有子目录 1 2 3 4 5.... 就在 /Documents 目录下。是否可以创建一个仅允许用户访问 1、2、7、9 而不能访问其他文件夹的 SFTP chroot jail?

我在 RHEL 6 中使用 NFSv3,因此在 ACL 选择方面受到了一定的限制。

slm*_*slm 0

不,我不认为你能做到这一点。你可以欺骗它,但这有点维护噩梦。在文件中,/etc/ssh/sshd_config您可以添加与事物匹配的部分,例如用户组或用户名。

sshd_配置

AllowGroups sftponly sftpadmin root

Match   Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no
    PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)

但这只允许您控制用户的入口点,即他们的ChrootDirectory. 所以你必须将它们放入适当的chroot.

您还可以通过自动挂载这些目录来玩一些其他游戏。

例子

*       /               -fstype=cifs,ro,noperm,netbiosname=${HOST},file_mode=0444,dir_mode=0555,credentials=/etc/sftpuser_credentials.txt       ://server/sftpdata/& \
        /upload         -fstype=cifs,rw,noperm,netbiosname=${HOST},file_mode=0666,dir_mode=0777,credentials=/etc/sftpuser_credentials.txt       ://server/sftpdata/&/upload
Run Code Online (Sandbox Code Playgroud)

因此,您可以添加安装,这将允许他们对他们有权访问的内容进行读取访问,并对他们无权访问的内容进行非读取访问。

注意:上面的内容将授予用户对所有内容的读取权限,但仅对其/uploadchroot 目录中的子目录进行写入权限。

我可能会想到一种替代方法来实现你想要的,这可能很快就会变得丑陋,并且维护起来会很痛苦。