Então, eu estou tentando entender como o namespace de montagem do Linux funciona. Então, fiz um pequeno experimento, abri dois terminais e executei o seguinte:
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
Como é que a montagem é visível no Terminal 2? Como ele não faz parte do espaço para nome da montagem, eu esperava que o diretório aparecesse vazio aqui. Também tentei passar -o shared=noe usar --make-privateopções com mount, mas obtive o mesmo resultado.
O que estou perdendo e como posso torná-lo realmente privado?
--make-privatenão é o que eu quero. Mas, esse não é o ponto de montagem dos namespaces (que eles não são de todo o sistema)?
man mount.