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=no
e usar --make-private
opções com mount
, mas obtive o mesmo resultado.
O que estou perdendo e como posso torná-lo realmente privado?
--make-private
nã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
.