Sshd

如何使用 SFTP 將多個組或使用者限製到特定文件夾?

  • March 6, 2016

我知道如何將組的使用者限制在他們的主文件夾中並刪除終端訪問,但我似乎無法讓它為多個組工作。

我有兩組:

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

當我嘗試使用 Cyber​​duck 通過 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/

引用自:https://unix.stackexchange.com/questions/267964