使用 --mount-proc 取消共享会创建一个新的 mnt 命名空间

使用 --mount-proc 取消共享会创建一个新的 mnt 命名空间

我对与命令--mount-proc一起使用时的作用有点困惑。unshare

当我使用 时unshare -fp --mount-proc bash,我注意到它会产生一个新的 PID 命名空间和一个新的 MNT 命名空间。

鉴于我位于新的 MNT 命名空间中,我尝试卸载其中一个循环设备,并注意到这并未反映在父 MNT 中(当我df -h在父命名空间中运行时,挂载仍然显示)。

现在,我向前迈出了一步,在新的 MNT 命名空间中使用 创建了一个新的根pivot_root,并卸载了原始根。正如预期的那样,新的命名空间现在具有不同的根。父命名空间仍然具有原始根目录。

-m我的问题:如果我可以在不使用命令中的选项的情况下实现创建新的 MNT 命名空间unshare,并且还可以为新进程创建隔离的根目录,那么 MNT 命名空间有什么不同的用途?

我将不胜感激专家的任何指导。

编辑:我修改了原来的帖子,其中说更改新命名空间中的根也会更改父命名空间中的根。我无法再重现这个。但我关于仅使用该--mount-proc选项而不使用-mwith来创建新的 MNT 命名空间的问题unshare仍然存在。

答案1

man unshare--mount-proc提及的描述

它还意味着创建一个新的挂载命名空间,因为/proc否则挂载会弄乱系统上的现有程序。

因此实际上--mount-proc意味着-m,以及您所看到的所有后果。这没什么不同,它是一个新的、私有的挂载命名空间。

-m选项本身仍然有用,因为新的挂载命名空间在没有/proc.

相关内容