Chroot

Ubuntu 11.10 SFTP chroot 監獄問題

  • December 12, 2011

我正在使用 Chroot Jail 創建一個 SFTP 伺服器。問題是使用者無法登錄主目錄。我需要將ChrootDirectory值保留在使用者主目錄上方的一個目錄(在本例中為 /home/jail/home)。我讀到該目錄需要由root擁有。在這種情況下,使用者除了登錄伺服器之外不能做任何事情。下面是我的 sshd_config 文件中特定於 sftp 的部分

Match User ftpuser
   ChrootDirectory /home/jail/home/ftpuser
   ForceCommand internal-sftp

的輸出$id ftpuser

uid=1001(ftpuser) gid=1002(ftpuser) groups=1002(ftpuser),0(root)

我故意將它添加到根組,以便 ftpuser 至少可以登錄。

的輸出$grep ftpuser /etc/passwd

ftpuser:x:1001:1002::/home/jail/home/ftpuser:/bin/false

/home/jail/home/ftpuser 的權限

rwx------+ 3 root root 4096 2011-12-12 12:49 /home/jail/home/ftpuser/

我該怎麼辦?

好吧,經過一番Google搜尋,我找到了解決方案。雖然這不是一個好的做法,但它確實幫助了我。

我將 chrooted 使用者的 UID 更改為 0,即 root 使用者的 UID,而不更改登錄 shell。結果,chroot 使用者可以按照我需要的方式訪問其主目錄。而且由於登錄外殼是/bin/false他無法像其他使用者一樣登錄系統(實際上su - ftpuser,我在登錄機器時嘗試這樣做,而rootftpuser 沒有獲得外殼訪問權限)。

儘管此解決方案可能不好或不理想,但這是我能找到的唯一解決方法。

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