ユーザー名前空間内で「/」をバインドマウントできないのはなぜですか?


13

なぜこれが機能しないのですか?

$ 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

回答:


16

違いは、/子マウントがあることです。ユーザー名前空間内では、継承されたマウントを子マウントから分離することはできません。より明白な例は、あなたが許可されていないことumount /procです。そうしないと、他のマウントの下に隠れていたファイルへのアクセスが突然許可される可能性があります。オーバーマウントは、セキュリティ対策として意図的に使用される場合があります。

代わりに、すべてのサブマウントを保持する再帰的なバインドマウントを作成できます。

$ unshare -rm mount --rbind / /mnt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.