J'essaie donc de comprendre comment fonctionne l'espace de noms de montage de Linux. J'ai donc fait une petite expérience et ouvert deux terminaux et exécuté ce qui suit:
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
Comment se fait-il que la monture soit visible dans le terminal 2? Comme il ne fait pas partie de l'espace de noms de montage, je m'attendais à ce que le répertoire apparaisse vide ici. J'ai également essayé de passer -o shared=no
et d'utiliser des --make-private
options avec mount
, mais j'ai obtenu le même résultat.
Qu'est-ce qui me manque et comment puis-je le rendre réellement privé?
--make-private
n'est pas ce que je veux. Mais, n'est-ce pas le point de monter des espaces de noms (qu'ils ne sont pas à l'échelle du système)?
man mount
.