Linuxでのマウントネームスペースの表示/操作

Linuxでのマウントネームスペースの表示/操作

任意のプロセスのマウントネームスペースを表示または操作する方法はありますか?

たとえば、実行中のDockerコンテナには、NFSサーバー用のローカルマウントがあります。コンテナの内部では見ることができますが、外部ではホストはこれについて何も知りません。ネットワーク名前空間の場合、これは機能します。例えば配管

ただし、マウントネームスペースの場合、これについては何も表示されません。これらのインストールを表示し、新しいインストールを操作または作成できる公開されたAPIまたはsysfsレイヤーはありますか?

ベストアンサー1

はい。あなたはそれを見たり、スイッチを/proc/$PID/mountinfo使用することができます。それについて話す内容は次のとおりです。findmnt -Nfindmnt --help

  • -N, --task <tid>
    • 代替名前空間(/proc/<tid>/mountinfoファイル)の使用

findmntPROPAGATIONまた、この情報を正確に報告するフィールドであるフラグも追跡されますmountinfo。これは、プロセスがどのインストールを共有するかを示します。

nsenterまた、正しい権限がある場合は、いつでも必要なすべての種類の名前空間を使用できます。

 nsenter --help
Usage:
 nsenter [options] <program> [args...]

Options:
 -t, --target <pid>     target process to get namespaces from
 -m, --mount [=<file>]  enter mount namespace
 -u, --uts   [=<file>]  enter UTS namespace (hostname etc)
 -i, --ipc   [=<file>]  enter System V IPC namespace
 -n, --net   [=<file>]  enter network namespace
 -p, --pid   [=<file>]  enter pid namespace
 -U, --user  [=<file>]  enter user namespace
 -S, --setuid <uid>     set uid in user namespace
 -G, --setgid <gid>     set gid in user namespace
 -r, --root  [=<dir>]   set the root directory
 -w, --wd    [=<dir>]   set the working directory
 -F, --no-fork          do not fork before exec'ing <program>

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see nsenter(1).

おすすめ記事