Permissions
將 noexec/nosuid 掛載中的某些二進製文件和腳本列入白名單?
就像問題一樣。是否可以將 noexec 掛載的 FS 中的某些執行檔列入白名單?
例如,我的看起來像這樣:
/dev/vg/lv on /tmp type ext4 (rw,noexec,nosuid)
不,安裝選項勝過一切。這就是它們的目的:確保不會直接從該文件系統執行任何操作。
為了應對
noexec
,您可以通過呼叫它們的啟動器來間接執行大多數程序:
- 如果程序是腳本(以shebang開頭),則呼叫解釋器並將腳本作為第一個參數傳遞給它。
- 如果程序是動態連結的執行檔,則呼叫動態載入程序(例如
/lib/ld-linux.so.2
or/lib64/ld-linux-x86-64.so.2
)並將二進製文件作為其第一個參數傳遞給它。如果您有一個使用 掛載的文件系統
noexec
,您可以查看一個目錄,其中所有文件都可以使用bindfs執行。但是,Bindfs 不允許在每個文件的基礎上設置權限。當然,您可以在其他地方複製該文件並使其可執行。
如果文件系統已掛載
nosuid
,則無法設置文件 setuid。那會破壞安全性。要製作 setuid 文件,您需要有權訪問擁有的使用者帳戶。製作副本並製作該 setuid,或在沒有nosuid
選項的情況下重新安裝,是唯一的解決方案。