root 使用者的 SFTP 監獄?
因此,雖然我一直在尋找鎖定使用者並將他們鎖定在監獄中的方法。我遇到了一個有趣的問題,我在任何地方都沒有看到答案。
一個人如何擁有監禁 root 帳戶的權力?我目前正在嘗試以下操作:
Match user root ChrootDirectory /opt/somedirectory/anotherdirectory ForceCommand internal-sftp
但我在連接時一直斷開連接。- 對於這個案例,因為它是一個實驗室環境,我已經允許PasswordAuthentication和PermitRootLogin。我知道 Chroot 監獄使用超級使用者權限來將人們鎖定在他們自己的小環境中。但是有什麼東西可以入獄嗎?或者至少將他鎖定到一個特定的目錄,這樣他就不能 cd 回來?這是一個有趣的案例,我想探索和了解更多!感謝您花時間回答!
TL;DR:你如何 sftp 將 root 鎖定到特定目錄。
事實證明,只要絕對路徑上的每個目錄(例如 /var/log/www)都必須由 root 讀取,就可以正確管理所有內容。在 SSHD_Config 中,我們需要添加以下行:
Subsystem sftp internal-sftp Match user Root ChrootDirectory /var/log/www ForceCommand internal-sftp
然後,這將禁止 root 登錄 ssh,只允許他連接到給定 ChrootDirectory(即監獄)中的 sftp 系統。希望有一天這對某人有所幫助!
你不能。
Red Hat 有一篇關於此的文章(連結在這裡) - 如果您正在考慮使用
chroots
,我建議您閱讀整篇文章。以下是文章的摘錄,概述了為什麼這不起作用:chroot 和 root 使用者
chroot() 系統呼叫僅對 root 使用者可用。非 root 使用者無法執行 chroot() 呼叫。這是一件好事,因為如果你能夠呼叫 chroot(),你就可以擺脫它。這不是 chroot() 中的錯誤,而是它的工作原理。即使您想將此視為一個錯誤,您也必須記住 root 通常可以訪問系統和所有資源。沒有什麼可以阻止 root 直接修改程序記憶體以將 chroot() 位置更改回“/”。這裡要考慮的重要一點是,按照設計,chroot() 不會停止 root。這一點在本文後面很重要。
如果這是您所說的實驗室環境,只需添加一個普通使用者,只需一個簡單的密碼(甚至是用於無密碼登錄的 SSH 密鑰)