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.