Se você estiver em uma distribuição baseada em systemd com uma versão util-linux
menor que 2.27, você verá esse comportamento não intuitivo. Isso ocorre porque CLONE_NEWNS
propaga sinalizadores como shared
dependendo de uma configuração no kernel. Essa configuração é normalmente private
, mas o systemd altera isso para shared
. A partir de util-linux
2.27, foi feito um patch que altera o comportamento padrão do comando unshare
usar private
como comportamento de propagação padrão para ser mais intuitivo.
Solução
Se você estiver em um sistema systemd com < 2,27 util-linux
, deverá remontar o sistema de arquivos raiz após executar o comando unshare
:
# unshare --mount -- /bin/bash
# mount --make-private -o remount /
Se você estiver em um sistema systemd com > = 2,27 util-linux
, ele deve funcionar como esperado no exemplo fornecido em sua pergunta, literalmente, sem a necessidade de remontar. Caso contrário: passe --propagation private
para o comando unshare
para forçar a propagação do namespace de montagem para ser privado.