
我正在為 Raspberry Pi 開發嵌入式 Buildroot 作業系統。該系統將透過簡單地斷開電源來關閉(不會有關機定時器),因此它必須能夠處理斷電而不損壞 SD 卡。
目前系統正在使用唯讀的squashfs作為其根檔案系統,並且效果很好。但是,它缺乏靈活性,因為顯然該分區無法寫入。例如,安裝新軟體的唯一方法是在 Buildroot 中重建整個作業系統。所以我想更改此設定以使系統只讀幾乎所有時間但在某些特定情況下是可寫的。
利用使用者權限阻止所有寫入 SD 卡的最佳方法是什麼除非在某些受控情況下?我想我會簡單地chmod -R u-w /
對整個檔案系統執行 a 操作,防止使用者在任何地方寫入任何內容。然後,為了寫入內容,使用者必須使用 進行身份驗證sudo
。
這是一個可靠的方法嗎?
我可以預見的一個問題是作業系統在啟動時運行的進程將以 root 身份運行,因此具有寫入權限。我需要找到一種方法來禁止作業系統向根檔案系統寫入任何內容,除非使用者明確命令。
我可以調整系統的初始化腳本,以便它們作為非特權用戶運行 - 以前有人這樣做過嗎?是否可以以 root 以外的使用者身分啟動系統進程?