Ubuntu

將 ChrootDirectory 更改為主目錄中的子目錄

  • October 7, 2017

我正在我的系統中創建使用者,這些使用者僅使用“/etc/ssh/sshd_config”被 chroot 囚禁到他們自己的主目錄中。它工作正常,但我想這樣做,所以ChrootDirectory將他們的主目錄設置為/home/%u/%uor /home/%u/public

我已經嘗試了這兩種方法,但這樣做似乎總是拒絕連接,並使用 FTP 客戶端作為 FlashFXP 或 FileZilla 進行連接(/home/%u有效)。

權限很好,因為當它設置為“ChrootDirectory /home/%u”時,我可以訪問子目錄。那我做錯了什麼?

man sshd_config:

ChrootDirectory

指定 chroot(2) 認證後的目錄路徑名。在會話啟動時,sshd(8) 會檢查路徑名的所有組件是否都是 root 擁有的目錄,任何其他使用者或組都不能寫入這些目錄。

如果您將使用者限制為 SFTP,則可以毫無技巧地使用主目錄(但不是子目錄):

在僅使用 sftp 而不是 ssh 或 scp 的特殊情況下,可以使用 ChrootDirectory %h 或 ChrootDirectory /some/path/%u。必須使用選項 nodev 和 nosuid 或 noexec 掛載包含此目錄的文件系統。目錄的所有者應該是使用者。路徑的其他組件的所有權必須滿足通常的條件。目錄中不需要存在其他文件。

對 SFTP 的限制是可能的ForceCommand internal-sftp

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