我已经为我的系统编写了自己的init进程(pid 1),为了提高安全性,我决定在将hidepid=2安装到/proc位置时添加procfs (默认情况下不挂载procfs)。
在挂载procfs之后,我运行了mount命令来检查给定挂载选项下的所有挂载是否良好,我注意到hidepid=2没有在选项中列出。过了一段时间,我发现hidepid=2只能在remount之后添加列表。
我也使用命令行确认了这种行为,如下所示
/proc不是用procfs挂载的mount -t proc -o hidepid=2 proc /procmount,显示proc on /proc type proc (rw,relatime)mount -t proc -o remount,hidepid=2 proc /procmount,显示proc on /proc type proc (rw,relatime,hidepid=2)有人好心地解释我为什么不能一次性安装procfs和hidepid=2?
发布于 2020-05-06 11:01:57
Linux内核(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=69879c01a0c3f70e0887cfb4d9ff439814361e46)中有一个提交,它说:
此外,消除了内核挂载不必要的复杂性,修复了导致proc挂载选项被忽略的回归。既然proc的初始挂载来自用户空间,那么这些挂载选项将再次得到认可。这修复了Android对选项的使用。
因此,这似乎是Linux内核中的一个bug,目前(https://github.com/torvalds/linux/commit/69879c01a0c3f70e0887cfb4d9ff439814361e46)只在v5.7版本的发布候选标记(v5.7-rc4、v5.7-rc3、v5.7-rc2和v5.7-rc1)中修复。
https://unix.stackexchange.com/questions/584054
复制相似问题