如何使用只读权限来防止可写文件系统损坏?

如何使用只读权限来防止可写文件系统损坏?

我正在为 Raspberry Pi 开发嵌入式 Buildroot 操作系统。该系统将通过简单地断开电源来关闭(不会有关机计时器),因此它必须能够处理断电而不损坏 SD 卡。

目前系统正在使用只读的squashfs作为其根文件系统,并且效果很好。但是,它缺乏灵活性,因为显然该分区无法写入。例如,安装新软件的唯一方法是在 Buildroot 中重建整个操作系统。所以我想更改此设置以使系统只读几乎所有时间但在某些特定情况下是可写的。

利用用户权限阻止所有写入 SD 卡的最佳方法是什么除非在某些受控情况下?我想我会简单地chmod -R u-w /对整个文件系统执行 a 操作,防止用户在任何地方写入任何内容。然后,为了写入内容,用户必须使用 进行身份验证sudo

这是一个可靠的方法吗?

我可以预见的一个问题是操作系统在启动时运行的进程将以 root 身份运行,因此具有写入权限。我需要找到一种方法来禁止操作系统向根文件系统写入任何内容,除非用户明确命令。

我可以调整系统的初始化脚本,以便它们作为非特权用户运行 - 以前有人这样做过吗?是否可以以 root 以外的用户身份启动系统进程?

相关内容