Linux
如何阻止使用者設置他的 PATH
我已使用有限命令設置受限使用者以使用 .profile 和 PATH 變數執行,但使用者可以使用以下命令設置他的路徑:
$ export PATH=$PATH:/bin:/sbin:/usr/bin
並且可以訪問其他命令。
反正有沒有限制使用者設置他的路徑?
您可以使用
readonly
Bash 內置變數來創建一個只讀變數。但這不太可能阻止那些決心改變他們的環境的人,因為他們可以簡單地啟動一個新的 shell 而不執行 RC 文件並設置他們自己的環境。此外,這絕不會妨礙某人執行不在PATH
. 該PATH
變數只是一個方便的功能,允許使用者編寫foo
而不是例如/usr/bin/foo
. 就是這樣。它與安全沒有任何關係。確保環境安全的關鍵是首先仔細研究您的威脅模型是什麼——您是否希望使用者嘗試讀取其他使用者的文件、破壞安裝、竊聽通信、發送垃圾郵件、獲取root 訪問權限,還是別的什麼?一旦你確定了這一點,你就可以開始計算哪些措施可以真正實現這一點。
您應該查看 bash“受限”模式(以
bash --restricted
or開頭bash -r
),它可以防止命令,例如cd
和 阻止通過完整路徑執行任何執行檔,因此它只允許執行$PATH
.此外,它還可以防止修改環境變數,例如
PATH
.您可以在此處找到 bash“受限”模式的概述。