NSENTER

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

名前

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

書式

nsenter [options] [program [arguments]]  

説明

nsenter コマンドは、 program を (下記で説明する) コマンドラインオプションで指定された名前空間で実行する。 program が指定されない場合、``${SHELL}'' が実行される (デフォルト: /bin:/sh)。

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

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

オプション

下記の名前空間に関連したいろいろなオプションが、オプションとして file 引き数をとる。 ファイルは namespaces(7) に記載されている /proc/[pid]/ns/* ファイルのうちの 1 つ、または、これらのファイルの上に作られた bind マウントのパス名でなければならない。
-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/ns/time
時間名前空間
/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 名前空間に入れる。
-T, --time[=file]
時間名前空間に入れる。 ファイルが指定されない場合、対象プロセスの時間名前空間に入れる。 file が指定された場合、 file で指定された時間名前空間に入れる。
-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
ヘルプを表示して、終了する。
 

著者

Eric Biederman
Karel Zak  

関連項目

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

入手方法

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


 

Index

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

This document was created by man2html, using the manual pages.
Time: 15:24:37 GMT, January 21, 2021