NSENTER

Section: User Commands (1)
Updated: June 2013
Index Return to Main Contents
 

名前

nsenter - 他のプロセスの名前空間でプログラムを実行する。  

書式

nsenter [options] [program [arguments]]  

説明

他の 1 つ以上のプロセスの名前空間に入って、指定された program を実行する。 program が指定されない場合、``${SHELL}'' が実行される (デフォルト: /bin:/sh)。

入ることができる名前空間は以下の通り:

マウント名前空間
ファイルシステムのマウントとアンマウントが、他のファイルシステムに 影響しない。 ただし、明示的に共有 (shared) とマークされているファイルシステムは除く (共有は mount --make-:shared で行われる; /proc:/self:/mountinfoshared フラグを参照すること)。 より詳細は、 mount_namespaces(7) と、 clone(2) の CLONE_NEWNS フラグの議論を参照すること。
UTS 名前空間
ホスト名とドメイン名の設定が、システムの他の部分に影響しない。 より詳細は、 namespaces(7) と clone(2) の CLONE_NEWUTS の議論を参照すること。
IPC 名前空間
POSIX メッセージキューと、System V メッセージキュー、 セマフォセット、共有メモリセグメントについて、プロセスは独立した 名前空間を持つ。 より詳細は、 namespaces(7) と clone(2) の CLONE_NEWIPC フラグの議論を参照すること。
ネットワーク名前空間
プロセスが独立した IPv4 と IPv6 スタック、IP ルーティングテーブル、 ファイアウォールルール、 /proc:/net/sys:/class:/net のディレクトリツリー、ソケットなどを持つ。 より詳細は、 namespaces(7) と clone(2) の CLONE_NEWNET フラグの議論を参照すること。
PID 名前空間
nsenter プロセスとは別に、子プロセスがプロセスマッピングをするための PID セットを持つ。 より詳細は、 pid_namespaces(7) と clone(2) の CLONE_NEWPID フラグを参照すること。 PID 名前空間を変更する場合、デフォルトでは nsenter は fork を行う。 そのため、新しいプログラムとその子プロセスは、同じ PID 名前空間を共有し、 お互いに見えるようになる。 --no-fork が使われた場合、新しいプログラムは fork なしで exec される。
ユーザー名前空間
プロセスが個別の UID、GID、ケーパビリティ (capabilities) のセットを持つ。 より詳細は、 user_namespaces(7) と clone(2) の CLONE_NEWUSER フラグの議論を参照すること。
コントロールグループ (cgroup) 名前空間
プロセスが /proc:/self:/cgroup の仮想化されたビューを持ち、 新しい cgroup マウントで名前空間の cgroup ルートがルートにされる。 より詳細は、 cgroup_namespaces(7) と clone(2) の CLONE_NEWCGROUP フラグの議論を参照すること。
フラグの正確な意味は、clone(2) を参照すること。
 

オプション

下記の名前空間に関連したいろいろなオプションが、オプションとして file 引き数をとる。 ファイルは namespaces(7) に記載されている /proc/[pid]/ns/* ファイルのうちの 1 つでなければならない。
-a, --all
対象プロセスの全ての名前空間を、デフォルトの /proc/[pid]/ns/* 名前空間パスに入れる。 対象プロセスの名前空間のデフォルトパスは、名前空間固有の オプションで上書きできる (例えば --all --mount=[path])。

呼び出し元の現在のユーザー名前空間と同じ場合、ユーザー名前空間は 無視される。 これは、ケーパビリティを削除した呼び出し元が、 setns() を呼び出して、そのケーパビリティを再取得することを防ぐ。 より詳細は setns(2) を参照すること。

-t, --target pid
コンテキストを取得する対象プロセスを指定する。 pid で指定されるコンテキストのパスは以下の通り:
/proc/pid/ns/mnt
マウント名前空間
/proc/pid/ns/uts
UTS 名前空間
/proc/pid/ns/ipc
IPC 名前空間
/proc/pid/ns/net
ネットワーク名前空間
/proc/pid/ns/pid
PID 名前空間
/proc/pid/ns/user
ユーザー名前空間
/proc/pid/ns/cgroup
cgroup 名前空間
/proc/pid/root
ルートディレクトリ
/proc/pid/cwd
ワーキングディレクトリ
-m, --mount[=file]
マウント名前空間に入れる。 file が指定されない場合、対象プロセスのマウント名前空間に入れる。 file が指定された場合、 file で指定されたマウント名前空間に入れる。
-u, --uts[=file]
UTS 名前空間に入れる。 file が指定されない場合、対象プロセスの UTS 名前空間に入れる。 file が指定された場合、 file で指定された UTS 名前空間に入れる。
-i, --ipc[=file]
IPC 名前空間に入れる。 file が指定されない場合、対象プロセスの IPC 名前空間に入れる。 file が指定された場合、 file で指定された IPC 名前空間に入れる。
-n, --net[=file]
ネットワーク名前空間に入れる。 file が指定されない場合、対象プロセスのネットワーク名前空間に入れる。 file が指定された場合、 file で指定されたネットワーク名前空間に入れる。
-p, --pid[=file]
PID 名前空間に入れる。 file が指定されない場合、対象プロセスの PID 名前空間に入れる。 file が指定された場合、 file で指定された PID 名前空間に入れる。
-U, --user[=file]
ユーザー名前空間に入れる。 file が指定されない場合、対象プロセスのユーザー名前空間に入れる。 file が指定された場合、 file で指定されたユーザー名前空間に入れる。 --setuid--setgid オプションも参照すること。
-C, --cgroup[=file]
cgroup 名前空間に入れる。 file が指定されない場合、対象プロセスの cgroup 名前空間に入れる。 file が指定された場合、 file で指定された cgroup 名前空間に入れる。
-G, --setgid gid
入った名前空間で使われるグループ ID を設定する。 補助 (supplementary) グループは落とされる。 nsenter(1) は常にユーザー名前空間で GID を設定し、デフォルトは 0 である。
-S, --setuid uid
入った名前空間で使われるユーザー ID を設定する。 nsenter(1) は常にユーザー名前空間で UID を設定し、デフォルトは 0 である。
--preserve-credentials
ユーザー名前空間に入ったときに、UID と GID を変更しない。 デフォルトでは、補助グループを落とし、GID と UID を 0 にする。
-r, --root[=directory]
ルートディレクトリを設定する。 ディレクトリが指定されない場合、ルートディレクトリは、 対象プロセスのルートディレクトリに設定される。 ディレクトリが指定された場合、ルートディレクトリは、指定された ルートディレクトリに設定される。
-w, --wd[=directory]
ワーキングディレクトリを設定する。 ディレクトリが指定されない場合、ワーキングディレクトリは、 対象プロセスのワーキングディレクトリに設定される。 ディレクトリが指定された場合、ワーキングディレクトリは、指定された ワーキングディレクトリに設定される。
-F, --no-fork
指定されたプログラムを exec する前に、fork しない。 デフォルトでは、PID 名前空間に入る際、 nsenterexec を呼ぶ前に fork を呼ぶので、 新しく入った PID 名前空間に子プロセスも入る。
-Z, --follow-context
--target PID で指定された既存の実行中プロセスに基づいて、 新しいプロセスを実行するのに使う SELinux セキュリティコンテキストを設定する。
 (util-linux が SELinux をサポートするようにコンパイルされている必要がある。 さもなければ、このオプションは利用できない。)
-V, --version
バージョン情報を表示して、終了する。
-h, --help
ヘルプを表示して、終了する。
 

関連項目

clone(2), setns(2), namespaces(7)  

著者

Eric Biederman
Karel Zak  

入手方法

nsenter コマンドは util-linux パッケージの一部であり、 Linux Kernel Archive から入手できる。


 

Index

名前
書式
説明
オプション
関連項目
著者
入手方法

This document was created by man2html, using the manual pages.
Time: 13:09:12 GMT, April 14, 2020