Warum kann ich "/" nicht in einen Benutzernamensraum einbinden?


13

Warum funktioniert das nicht?

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

Diese funktionieren ok:

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

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

Antworten:


16

Der Unterschied ist, dass /es Kindermontagen gibt. Innerhalb eines Benutzernamensraums dürfen Sie geerbte Reittiere nicht von ihren untergeordneten Reittieren trennen. Ein offensichtlicheres Beispiel ist, dass Sie das nicht dürfen umount /proc. Andernfalls können Sie plötzlich auf Dateien zugreifen, die unter anderen Mounts verborgen sind. Überhänge werden manchmal bewusst als Sicherheitsmaßnahme eingesetzt.

Sie können stattdessen ein rekursives Bindungs-Mount erstellen, in dem alle Sub-Mounts erhalten bleiben:

$ unshare -rm mount --rbind / /mnt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.