util-linux
の systemd ベースのディストリビューションを使用している場合 2.27 より前のバージョンでは、この非直感的な動作が見られます。これは CLONE_NEWNS
のためです shared
などのフラグを伝播します カーネルの設定に依存します。この設定は通常 private
です 、しかしsystemdはこれを shared
に変更します . util-linux
現在 2.27、unshare
のデフォルトの動作を変更するパッチが作成されました private
を使用するコマンド より直感的になるようにデフォルトの伝播動作として。
解決策
util-linux
の systemd システムを使用している場合 バージョン 2.27 より前の場合、後でルート ファイルシステムを再マウントする必要があります。 unshare
の実行 コマンド:
# unshare --mount -- /bin/bash
# mount --make-private -o remount /
util-linux
の systemd システムを使用している場合 バージョン 2.27 以降では、再マウントする必要なく、質問で指定した例で期待どおりに動作するはずです。そうでない場合は、--propagation private
を渡します unshare
に マウント名前空間の伝播を強制的に非公開にするコマンド。