Daher versuche ich herauszufinden, wie der Mount-Namespace von Linux funktioniert. Also habe ich ein kleines Experiment durchgeführt, zwei Terminals geöffnet und folgendes ausgeführt:
Terminal 1
root@goliath:~# mkdir a b
root@goliath:~# touch a/foo.txt
root@goliath:~# unshare --mount -- /bin/bash
root@goliath:~# mount --bind a b
root@goliath:~# ls b
foo.txt
Terminal 2
root@goliath:~# ls b
foo.txt
Wie kommt es, dass die Montierung in Terminal 2 sichtbar ist? Da es nicht Teil des Mount-Namespace ist, habe ich erwartet, dass das Verzeichnis hier leer ist. Ich habe auch versucht -o shared=no
, --make-private
Optionen mit zu übergeben und zu verwenden mount
, aber ich habe das gleiche Ergebnis erzielt.
Was fehlt mir und wie kann ich es eigentlich privat machen?
--make-private
ist nicht das, was ich will. Aber ist das nicht der Punkt, an dem Namespaces gemountet werden (dh sie sind nicht systemweit)?
man mount
.