/system
當有人想要以讀寫模式重新掛載時,我想阻止掛載系統呼叫。這意味著我不想允許執行以下操作:mount -o remount,rw /system
。任何人都知道我需要在哪裡更改核心中的程式碼?我試圖查看/fs/namespace.c
與安裝相關的一些功能在哪裡,但我不太確定。
答案1
您可以使用 SELinux 或 之類的東西seccomp
,但考慮到完全 root 權限允許修改任何分割區,而無需安裝它們並做其他討厭的事情,甚至可能會載入核心模組來規避限制,這可能不是那麼簡單。至少您需要一個全面的規則集來堵住所有常見的漏洞。
修改mount
二進位檔案或 C 函式庫不是解決方案,因為直接呼叫系統呼叫相當簡單,無需通過現成的二進位檔案甚至函式庫。
SELinux 和常用的分割和強化手段首先會增加 root 權限的難度,這也可能出於其他原因而有用。
另外,還有一個問題是您在該安裝點上有什麼?如果它只與這個系統相關,那麼有人可以修改它有什麼關係嗎?如果他們獲得了電腦的完全管理存取權限,他們就可以搞亂其他一切,留下後門,並且可能至少會破壞有問題的分區。如果您不希望需要修改它,而只是想防止丟失內容,那麼將其放在唯讀儲存空間上會更容易。並進行備份。
如果該檔案系統被多個系統使用,則它可能是透過網路安裝的。在這種情況下,最好在伺服器端防止對其進行寫入,因此即使核心嘗試進行讀寫掛載也沒關係,它仍然無法運作。