Chroot
Ubuntu 11.10 SFTP chroot 監獄問題
我正在使用 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
,我在登錄機器時嘗試這樣做,而root
ftpuser 沒有獲得外殼訪問權限)。儘管此解決方案可能不好或不理想,但這是我能找到的唯一解決方法。