我做到了useradd -s /bin/rbash -d /var/www/html/directory USRNAME
並且在使用 USRNAME(包括 ssh 密鑰)進行 ssh 登入時,它會轉到directory
並且 cd 不會返回。所以這有效...但是
如果他們使用nano /var/www/html/.env
(之前目錄)它會說
Unable to create directory /var/www/html/directory/.local/share/nano/: Permission denied
It is required for saving/loading search history or cursor positions.
Press Enter to continue
如果他們按下enter
它將允許他們閱讀任何使用 nano.. 檔案在系統中的任何位置!
任何幫助僅允許該用戶該特定目錄僅使用谷歌雲?
答案1
rbash 不是限制 shell 使用者的安全方法。它僅限制 shell 輸入,而不限制可執行檔案的檔案系統存取。在標準 Linux 系統上,$PATH 中有很多可存取的工具來解決這些限制,而不僅僅是 nano。
適當的限制存取是透過創建 chroot 環境或監獄來完成的,但這還需要提供所有需要的可執行文件,甚至可能是 /dev、/sys 或 /proc 硬連結。
您可以修改 $PATH 以僅包含安全性命令,但這是一個雷區,本質上也要求您建立單獨的可執行檔集合。
您看到的錯誤可能與不允許使用者寫入 /var/www/html/directory 有關,但與當前的實際問題無關。