当 rootfs 是只读的时候,运行 一切都以 root 身份安全吗?

Is it secure to run everything as root when rootfs is read only?

对于我们的 IoT 测试设备,我遵循以下做法:我曾经禁用用户 root 的 ssh 登录,添加另一个用户并在该帐户上安装我需要的所有内容,其中具有细粒度的权限,其中 root 权限是必须的。

现在,我正在将所有内容移植到 yocto,为了简单起见,我在开发过程中 运行 将所有内容都放在 root 用户下,计划稍后切换到与上述相同的做法。但是,我计划使用只读 rootfs 部署映像,通过 ssh 证书进行 ssh 登录,或者甚至根本不使用。当 rootfs 是只读的时候,运行 作为 root 用户的所有内容是否安全?理论上,恶意软件可以以某种方式注入 RAM 但不会写入 rootfs。这是安全设置还是第二个非 root 用户遵循早期实践的要求?

备注:我不确定我违反了哪条 SO 规则,但因为这是一个非常关键的问题(而且我还没有看到需要澄清的原因,但是更改)我将保持原样并希望下面的答案(与社区讨论)也能帮助其他人避免他们的设置中的安全漏洞。

与往常一样,IRC channel 中提供了最快、最简洁的帮助。

总结调查结果:

它不是另存为以 root 用户身份操作设备软件,因为这样做相对容易 mount -o rw,remount,因此也可以绕过只读的 rootfs(除非制定了周密的安全措施)。此外,/tmp 文件夹可被视为漏洞。

因此,应尽可能使用非 root 用户 运行 设备软件。