Linux

在目錄中監禁使用者

  • February 25, 2011

樹

我有一個執行 debian OS 的 vps,並想在其上創建使用者帳戶。

我想要它,這樣當使用者使用 sftp 登錄時,var 中的所有內容似乎都是他們的主目錄,他們無法 cd 出來。

例如,當 user3 登錄時,他們可以訪問 var 中的所有內容(讀、寫、執行),但不能查看 (cd) user1 或 user2 的個人資料。

我該怎麼做呢?

我想我必須這樣做chroot,但我不知道這將如何工作。

謝謝

人們使用 chrooted SFTP 遇到的第一個問題是 OpenSSH 預設情況下要求 root 擁有給定使用者的 chroot 目錄的整個路徑。換句話說,如果你想將某人chroot到/home/someone,/必須由root擁有並且權限不超過0755,/home必須由root擁有並且權限不超過0755,也許最令人驚訝的是, /home/someone 必須由 root 擁有並且權限不超過 0755。在您的情況下,您希望將人 chroot 到 /var (我什至不會問),因此您可以避免此權限問題,但在其他情況下在不可避免的情況下,您可能需要調查mount --bind.

至於實際的 chrooting,您有兩種選擇:按組或按使用者。無論哪種情況,您都將編輯 sshd_config 文件。對於整個組,它看起來像:

Match group sftponly
ForceCommand internal-sftp
ChrootDirectory /var
AllowTcpForwarding no

對於每個使用者的配置,它只是:

Match user sftpdude
ForceCommand internal-sftp
ChrootDirectory /var
AllowTcpForwarding no

請注意,直到 OpenSSH 版本 5 左右才支持 internal-sftp,因此如果您無權訪問 v5 包,則可能必須編譯 OpenSSH 的自定義副本。

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