GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum ist mein Bind-Mount außerhalb seines Mount-Namespace sichtbar?

Wenn Sie eine systemd-basierte Distribution mit einem util-linux verwenden Version kleiner als 2.27, werden Sie dieses nicht intuitive Verhalten sehen. Das liegt daran, dass CLONE_NEWNS gibt Flags wie shared weiter abhängig von einer Einstellung im Kernel. Diese Einstellung ist normalerweise private , aber systemd ändert dies in shared . Ab util-linux 2.27 wurde ein Patch erstellt, der das Standardverhalten von unshare ändert Befehl zur Verwendung von private als das standardmäßige Ausbreitungsverhalten, um intuitiver zu sein.

Lösung

Wenn Sie sich auf einem systemd-System mit util-linux befinden vor Version 2.27 müssen Sie das Root-Dateisystem nach neu einhängen Ausführen von unshare Befehl:

# unshare --mount -- /bin/bash
# mount --make-private -o remount /

Wenn Sie sich auf einem systemd-System mit util-linux befinden Version 2.27 oder höher sollte es wie erwartet in dem Beispiel funktionieren, das Sie in Ihrer Frage wörtlich gegeben haben, ohne dass ein erneutes Mounten erforderlich ist. Wenn nicht, übergeben Sie --propagation private an die unshare Befehl, um die Weitergabe des Mount-Namensraums als privat zu erzwingen.


Linux
  1. Ein gebundenes Reittier?

  2. Nur Root kann mounten, warum?

  3. Binden Sie einen SFTP-Benutzer ein, nachdem Sie Chroot verwendet haben

  4. Mounts unter Linux binden

  5. Warum hat stdbuf keine Auswirkung auf Python?

Erstellen eines Containers von Hand unter Verwendung von Namespaces:Der Mount-Namespace

So mounten Sie eine Partition mit Leerzeichen im Pfad

Zwei unterschiedliche Mount-Punkte mit einem Gerät

ext4lazyinit zwingen, seine Sache zu beenden?

So zeigen Sie den Bindungs-Mount-Quellpfad für Mounts nach v2.25.2 an

Warum ist Linux Unix-ähnlich, wenn sein Kernel monolithisch ist?