Ubuntu
將 ChrootDirectory 更改為主目錄中的子目錄
我正在我的系統中創建使用者,這些使用者僅使用“/etc/ssh/sshd_config”被 chroot 囚禁到他們自己的主目錄中。它工作正常,但我想這樣做,所以
ChrootDirectory
將他們的主目錄設置為/home/%u/%u
or/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
。