Sshd
如何使用 SFTP 將多個組或使用者限製到特定文件夾?
我知道如何將組的使用者限制在他們的主文件夾中並刪除終端訪問,但我似乎無法讓它為多個組工作。
我有兩組:
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
為了未來讀者的利益,答案是雙重的:
使用者文件夾的權限必須至少為 755(以便“其他”可以讀取和執行/進入目錄——實際上,組權限應該無關緊要)
drwxr-xr-x
所有權不規範。文件夾(在我的例子中, /home/usera 和 home/userb 文件夾作為 sshd_config: 中的變數
%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 中創建一個綁定(到 chrooted 環境之外的另一個目錄)。
例如
/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/