我知道如何限制组用户的主文件夹并删除终端访问权限,但我似乎无法让它适用于多个组。
我有两个组:
groupA
groupB
我的sshd_config
Match Group groupa
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Match Group groupb
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
当我尝试使用 Cyberduck 通过 SFTP 与 groupa 中的用户一起访问服务器时,它可以正常工作。但是,groupb 中的用户却无法访问。事实上,我甚至无法开始Match User userb
工作。
/home/userb(其主要组为groupb)的权限:drwx------
操作系统版本:Arch Linux
4.4.3-1-ARCH #1 SMP PREEMPT Fri Feb 26 15:09:29 CET 2016 x86_64 GNU/Linux
OpenSSH 版本
OpenSSH_7.2p1, OpenSSL 1.0.2g 1 Mar 2016
答案1
为了未来读者的利益,答案有两个:
用户文件夹的权限必须至少为 755(以便“其他”可以读取和执行/进入该目录 - 实际上,组权限应该是无关的)
drwxr-xr-x
产权归属不规范。这些文件夹(在我的例子中, /home/usera 和 home/userb 文件夹作为 sshd_config: 中的变量)必须由 user group%h
拥有。所有权root
root
4 drwxr-xr-x 5 root root 4096 27. Okt 15:07 usera/
4 drwxr-xr-x 2 root root 4096 13. Okt 13:35 userb/
这通过 chroot 环境中的符号链接破坏了 havic。到目前为止,我只能通过创建用户目录的子文件夹并使其由相应的用户(而不是 root)拥有来使绑定起作用。然后在 /etc/fstab 中创建绑定(到 chroot 环境之外的另一个目录)。
例如
/media/5TB/My-Share /home/usera/My-Share none defaults,bind 0 0
和 /home/usera/My-Share
4 drwxr-s--- 3 usera groupa 4096 5. Mär 15:59 My-Share/