Así que estoy tratando de entender cómo funciona el espacio de nombres de montaje de Linux. Entonces, hice un pequeño experimento, abrí dos terminales y ejecuté lo siguiente:
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
¿Cómo es que el montaje es visible en la Terminal 2? Como no es parte del espacio de nombres de montaje, esperaba que el directorio apareciera vacío aquí. También intenté pasar -o shared=no
y usar --make-private
opciones con mount
, pero obtuve el mismo resultado.
¿Qué me estoy perdiendo y cómo puedo hacer que sea realmente privado?
--make-private
no es lo que quiero. Pero, ¿no es ese el objetivo de los espacios de nombres de montaje (que no son de todo el sistema)?
man mount
.