我目前正在嵌入式Linux设备上工作,我试图使文件系统只读,这相当容易做到,但应用程序需要对文件/etc
夹中的文件(主要是passwd和shadow)进行读/写访问,而这些文件不能移出到持久分区并链接回/etc
.我想出了一个“解决方案”,不确定这是否是一件好事,这就是我在这里发帖的原因。
基本上我打算做的是使整个文件系统只读(包括/etc
),然后添加一个文件/etc/rw-files
,该文件将保存需要读/写权限才能使设备正常工作的文件的路径。每次启动时,我都会有一个脚本遍历该文件和文件夹列表,并使用如下内容将它们重新挂载为读/写:
mount --bind directory directory
mount -o remount,rw directory directory
我对此进行了测试,它正在工作,并且设备的行为符合预期,但我仍然不太确定它的质量。
答案1
你可以看看使用覆盖文件系统文件系统。在单个安装中,您可以/etc
在大型 readonly 之上叠加一个小型 readwrite /etc
,并提供一个合并的文件系统,其中任何更改都将保留在上层读写层目录中。它是完全自动的,因此您无需识别哪些文件需要读写。