为什么我可以在只读文件系统上编辑 /etc/resolv.conf?

为什么我可以在只读文件系统上编辑 /etc/resolv.conf?

我有一个嵌入式 Linux 环境,上面有一个只读根文件系统。我无法按预期在只读根文件系统中编辑文件并创建新目录。

但是,我发现我仍然可以更改文件的内容,/etc/resolv.conf 这怎么可能?这实际上对我有用。但我只是想知道为什么我能够编辑它?

编辑1:我什至可以创建一个写入/sys/class/pwm/$module_name/export 编辑2:所以我看到

resolv.conf -> /etc/resolv-conf.systemd

resolv-conf.systemd -> ../run/systemd/resolve/resolv.conf

答案1

但是,我发现我仍然可以更改文件 /etc/resolv.conf 的内容,这怎么可能?

/run它要么是指向安装在或中的 tmpfs 文件系统的符号链接,/var要么是您正在使用虚拟COW文件系统比如 UnionFS/aufs/overlayfs/等等。

答案2

您可能正在运行绑定安装。如果运行 RHEL/Fedora,您使用的软件包可以对和readonly-root中的任何目录/文件执行绑定挂载。默认情况下,包含在./etc/rwtab/etc/rwtab.d/etc/resolv.conf/etc/rwtab

您可以通过运行来检查此行为mount | grep resolv,它应该输出类似的内容

none on /etc/resolv.conf type tmpfs (rw,relatime,seclabel,inode64)

您还可以有一个分区来保存应保留的数据、查看/etc/statetab/etc/statetab.d文件夹。

相关内容