Linux

如何阻止使用者設置他的 PATH

  • May 11, 2018

我已使用有限命令設置受限使用者以使用 .profile 和 PATH 變數執行,但使用者可以使用以下命令設置他的路徑:

$ export PATH=$PATH:/bin:/sbin:/usr/bin

並且可以訪問其他命令。

反正有沒有限制使用者設置他的路徑?

您可以使用readonlyBash 內置變數來創建一個只讀變數。但這不太可能阻止那些決心改變他們的環境的人,因為他們可以簡單地啟動一個新的 shell 而不執行 RC 文件並設置他們自己的環境。此外,這絕不會妨礙某人執行不在PATH.PATH變數只是一個方便的功能,允許使用者編寫foo而不是例如/usr/bin/foo. 就是這樣。它與安全沒有任何關係。


確保環境安全的關鍵是首先仔細研究您的威脅模型是什麼——您是否希望使用者嘗試讀取其他使用者的文件、破壞安裝、竊聽通信、發送垃圾郵件、獲取root 訪問權限,還是別的什麼?一旦你確定了這一點,你就可以開始計算哪些措施可以真正實現這一點。

您應該查看 bash“受限”模式(以bash --restrictedor開頭bash -r),它可以防止命令,例如cd和 阻止通過完整路徑執行任何執行檔,因此它只允許執行$PATH.

此外,它還可以防止修改環境變數,例如PATH.

您可以在此處找到 bash“受限”模式的概述。

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