Windows

將使用者組限製到 Win2016 伺服器中的特定文件夾

  • June 22, 2020

首先,我對這件事很陌生,所以我的技術詞彙可能與每個人都不相同。

我已經創建了一個 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.exeoder powershell.exe)的遠端會話 (SSH)不會遵守這一點。

要設置僅 sftp 的 chroot 伺服器,請設置ForceCommandinternal-sftp. 您還可以通過實現只允許 scp 和 sftp 的自定義 shell 來使用 chroot 設置 scp。

為了簡單起見:

  1. 創建一個包含所有 SFTP 使用者的 Windows 組
  2. 確保該組有權訪問您的目標目錄
  3. 添加subsystem sftp internal-sftp到您的 sshd_config (或更改它)
  4. 通過 in將新組限制在目錄ChrootDirectorysshd_config

像這樣,例如:

Match Group myfriendlyusergroup
   ChrootDirectory /myfriendlyusergroupshomedirectory
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

引用自:https://serverfault.com/questions/1022432