將使用者組限製到 Win2016 伺服器中的特定文件夾
首先,我對這件事很陌生,所以我的技術詞彙可能與每個人都不相同。
我已經創建了一個 Windows 2016 伺服器並成功安裝了 OpenSSH SFTP 伺服器。不幸的是,當我登錄到我的 SFTP 使用者時,我能夠訪問 C 盤中的所有文件夾。我用Google搜尋並理解這是因為沒有對該使用者設置任何限制。
我已經用Google搜尋了幾個小時,發現了很多文章,但我對此感到困惑。似乎 OpenSSH 沒有簡單的方法來控製文件夾限制以指定使用者,並且有幾種方法可以做到這一點 - 直接在 Windows 伺服器中設置使用者組策略(似乎找不到關於此的文章),下載 Cygwin,使用其他 SFTP 伺服器軟體,使用 OpenSSH 伺服器配置文件的解決方法。坦率地說,我在這裡不知所措。
我的最終結果是允許 1 個使用者對 FTP_Folder(根文件夾)下的文件夾有 1 次訪問權限。例如,User1 只能訪問 Site1 文件夾,而 User2 只能訪問 Site2 文件夾。Site1 和 Site2 文件夾都儲存在名為 FTP_Folder 的根文件夾中。
最好的方法是什麼?
您很可能在文件中搜尋
chroot
等價物。ChrootDirectory``%programdata%\ssh\sshd_config
此指令僅受 sftp 會話支持,在我看來這就是您要搜尋的內容。到伺服器 (
cmd.exe
oderpowershell.exe
)的遠端會話 (SSH)不會遵守這一點。要設置僅 sftp 的 chroot 伺服器,請設置
ForceCommand
為internal-sftp
. 您還可以通過實現只允許 scp 和 sftp 的自定義 shell 來使用 chroot 設置 scp。為了簡單起見:
- 創建一個包含所有 SFTP 使用者的 Windows 組
- 確保該組有權訪問您的目標目錄
- 添加
subsystem sftp internal-sftp
到您的 sshd_config (或更改它)- 通過 in將新組限制在目錄
ChrootDirectory
中sshd_config
像這樣,例如:
Match Group myfriendlyusergroup ChrootDirectory /myfriendlyusergroupshomedirectory AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp