Mount

為什麼我不能在使用者命名空間中綁定掛載“/”?

  • July 18, 2018

為什麼這不起作用?

$ unshare -rm mount --bind / /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /, missing codepage or helper program, or other error.

這些工作正常:

$ unshare -rm mount --bind /tmp /mnt
$ unshare -rm mount --bind /root /mnt
$

$ uname -r  # Linux kernel version
4.17.3-200.fc28.x86_64

不同之處在於/有子坐騎。在使用者命名空間內,不允許將繼承的掛載與其子掛載分開。一個更明顯的例子是你不被允許umount /proc。否則,它可能會突然授予您訪問隱藏在其他掛載下的文件的權限。Overmounts 有時被故意用作安全措施。

您可以創建一個遞歸綁定掛載,它會保留所有子掛載:

$ unshare -rm mount --rbind / /mnt

引用自:https://unix.stackexchange.com/questions/457100