Man page - pid_namespaces(7)

Packages contains this manual

Available languages:

en fr sv ja ru ro de

Manual

PID_NAMESPACES

名 前
čĒŦ 明
名 前 įŠē 間 ぎ init プ ロ ã‚ģ ゚
ネ ゚ ト さ れ た PID 名 前 įŠē 間
setns(2) と unshare(2) ぎ 動 äŊœ
CLONE_NEWPID ぎ äģ– ãŽ CLONE_* フ ナ グ と ぎ äē’ æ› 性
/proc と PID 名 前 įŠē 間
そ ぎ äģ–
æē– 拠
例
é–ĸ 逪 項 į›Ž
こ ぎ 文 書 ãĢ つ い ãĻ

名 前

pid_namespaces - Linux PID 名 前 įŠē 間 ぎ æĻ‚ čρ

čĒŦ 明

名 前 įŠē 間 ぎ æĻ‚ čρ ãĢ つ い ãĻ は namespaces (7) を 参 į…§ 。

PID 名 前 įŠē 間 は プ ロ ã‚ģ ゚ ID į•Ē åˇ įŠē 間 を 分 é›ĸ す る 。 こ れ は 、 į•° ãĒ る PID 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ は 同 じ PID を 持 つ こ と が で き る こ と を 意 呺 す る 。 PID 名 前 įŠē 間 を äŊŋ う こ と で 、 ã‚ŗ ãƒŗ テ ナ ãƒŧ 内 ぎ プ ロ ã‚ģ ゚ įž¤ を 中 断 、 再 開 し た り 、 ã‚ŗ ãƒŗ テ ナ ãƒŧ 内 ぎ プ ロ ã‚ģ ゚ ぎ PID を äŋ 持 し た ぞ ぞ ã‚ŗ ãƒŗ テ ナ ãƒŧ を 新 し い ホ ゚ ト ãĢ į§ģ 行 し た り す る と い ãŖ た 抟 čƒŊ を ã‚ŗ ãƒŗ テ ナ ãƒŧ が 提 供 す る こ と が 可 čƒŊ ãĢ ãĒ る 。

新 し い PID 名 前 įŠē 間 ぎ PID は 、 į‹Ŧ įĢ‹ し た ã‚ˇ ゚ テ ム で あ る か ぎ よ う ãĢ 、 1 か ら 始 ぞ る 。 fork (2), vfork (2), clone (2) を å‘ŧ ãŗ å‡ē す と 、 そ ぎ 名 前 įŠē 間 内 で 一 意 ãĒ PID で プ ロ ã‚ģ ゚ が į”Ÿ 成 さ れ る 。

PID 名 前 įŠē 間 を äŊŋ ᔍ す る ãĢ は 、 設 厚 CONFIG_PID_NS が 有 劚 ãĢ ãĒ ãŖ た ã‚Ģ ãƒŧ ネ ãƒĢ が åŋ… čρ で あ る 。

名 前 įŠē 間 ぎ init プ ロ ã‚ģ ゚

新 し い 名 前 įŠē 間 で äŊœ 成 さ れ る 最 初 ぎ プ ロ ã‚ģ ゚ (す ãĒ わ ãĄ 、 CLONE_NEWPID フ ナ グ で clone (2) を äŊŋ ãŖ ãĻ äŊœ 成 さ れ た プ ロ ã‚ģ ゚ や 、 CLONE_NEWPID フ ナ グ で unshare (2) を å‘ŧ ãŗ å‡ē し た 垌 ぎ プ ロ ã‚ģ ゚ ãĢ よ ãŖ ãĻ äŊœ 成 さ れ た 最 初 ぎ プ ロ ã‚ģ ゚ ) は PID 1 を 持 ãĄ 、 そ ぎ プ ロ ã‚ģ ゚ は そ ぎ 名 前 įŠē 間 ぎ "init" プ ロ ã‚ģ ゚ と ãĒ る ( init (1) 参 į…§ )。 名 前 įŠē 間 内 で ãŋ ãĒ し ご ãĢ ãĒ ãŖ た (čĻĒ ãƒ— ロ ã‚ģ ゚ が い ãĒ く ãĒ ãŖ た ) 子 プ ロ ã‚ģ ゚ は 、 init (1) で は ãĒ く こ ぎ プ ロ ã‚ģ ゚ が čĻĒ ãƒ— ロ ã‚ģ ゚ ãĢ ãĒ る (た だ し 、 同 じ PID 名 前 įŠē 間 内 ぎ そ ぎ 子 プ ロ ã‚ģ ゚ ぎ 先 įĨ– が 、 prctl (2) ぎ PR_SET_CHILD_SUBREAPER ã‚ŗ マ ãƒŗ ド を äŊŋ ãŖ ãĻ 、 č‡Ē 分 č‡Ē čēĢ ã‚’ ãŋ ãĒ し ご と ãĒ ãŖ た 子 å­Ģ ぎ プ ロ ã‚ģ ゚ ぎ åŧ• き 取 り 手 ãĢ ãĒ ãŖ ãĻ い る å ´ 合 は こ ぎ 限 り で は ãĒ く )。

PID 名 前 įŠē 間 ぎ "init" プ ロ ã‚ģ ゚ が įĩ‚ äē† ã™ る と 、 ã‚Ģ ãƒŧ ネ ãƒĢ は そ ぎ 名 前 įŠē 間 ぎ 全 プ ロ ã‚ģ ゚ を SIGKILL ã‚ˇ グ ナ ãƒĢ で įĩ‚ äē† ã™ る 。 こ ぎ 動 äŊœ は 、 PID 名 前 įŠē 間 ぎ æ­Ŗ し い 操 äŊœ ぎ た め ãĢ は "init" プ ロ ã‚ģ ゚ は 不 可 æŦ  で あ る と い う äē‹ åŽŸ を 反 映 し た も ぎ で あ る 。 こ ぎ å ´ 合 、 そ ぎ PID 名 前 įŠē 間 へ ぎ そ れ äģĨ 降 ぎ fork (2) は エ ナ ãƒŧ ENOMEM で å¤ą 敗 す る 。 "init" プ ロ ã‚ģ ゚ が įĩ‚ äē† ã— ãĻ い る PID 名 前 įŠē 間 ãĢ 新 し い プ ロ ã‚ģ ゚ を äŊœ 成 す る こ と は で き ãĒ い 。 こ ぎ よ う ãĒ įŠļ æŗ は 、 例 え ば 、 名 前 įŠē 間 ãĢ い た プ ロ ã‚ģ ゚ ãĢ 寞 åŋœ す る /proc/[pid]/ns/pid フ ã‚Ą イ ãƒĢ ãĢ 寞 し ãĻ ã‚Ē ãƒŧ プ ãƒŗ し た フ ã‚Ą イ ãƒĢ デ ã‚Ŗ ゚ ク ãƒĒ プ ã‚ŋ ãƒŧ を äŊŋ ãŖ ãĻ 、 "init" プ ロ ã‚ģ ゚ が įĩ‚ äē† ã— た 垌 ãĢ そ ぎ 名 前 įŠē 間 ãĢ setns (2) を 行 ãŖ た å ´ 合 ãĢ čĩˇ こ り åž— る 。 unshare (2) を å‘ŧ ãŗ å‡ē し た 垌 ãĢ も 、 こ ぎ įŠļ æŗ は čĩˇ こ り åž— る 。 そ れ äģĨ 降 ãĢ fork (2) で äŊœ 成 さ れ た 最 初 ぎ 子 プ ロ ã‚ģ ゚ が įĩ‚ äē† ã™ る と 、 そ れ äģĨ 降 ぎ fork (2) ぎ å‘ŧ ãŗ å‡ē し は NOMEM で å¤ą 敗 す る 。

PID 名 前 įŠē 間 ぎ äģ– ãŽ ãƒĄ ãƒŗ バ ãƒŧ は 、 "init" プ ロ ã‚ģ ゚ が ã‚ˇ グ ナ ãƒĢ ハ ãƒŗ ド ナ ãƒŧ を 設 厚 し た ã‚ˇ グ ナ ãƒĢ だ け を 、 "init" プ ロ ã‚ģ ゚ ãĢ 送 äŋĄ す る こ と が で き る 。 こ ぎ åˆļ 限 は į‰š 樊 プ ロ ã‚ģ ゚ ãĢ 寞 し ãĻ も 遊 ᔍ さ れ る 。 こ ぎ åˆļ 限 ãĢ よ り 、 PID 名 前 įŠē 間 ぎ äģ– ãŽ ãƒĄ ãƒŗ バ ãƒŧ が う ãŖ か り "init" プ ロ ã‚ģ ゚ を æŽē し ãĻ し ぞ う ぎ を 防 ぐ こ と が で き る 。

同 様 ãĢ 、 先 įĨ– ぎ 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ は 、 "init" プ ロ ã‚ģ ゚ が そ ぎ ã‚ˇ グ ナ ãƒĢ ãĢ 寞 す る ハ ãƒŗ ド ナ ãƒŧ を 設 厚 し ãĻ い る å ´ 合 ãĢ ぎ ãŋ 、 kill (2) で čĒŦ 明 さ れ ãĻ い る 通 常 ぎ ã‚ĸ ク ã‚ģ ゚ 訹 可 ぎ チ ェ ッ ク を įĩŒ た 上 で 、 子 供 ぎ PID 名 前 įŠē 間 ぎ "init" プ ロ ã‚ģ ゚ ãĢ ã‚ˇ グ ナ ãƒĢ を 送 äŋĄ で き る 。 (ハ ãƒŗ ド ナ ãƒŧ 内 で は 、 sigaction (2) ãĢ čĒŦ 明 が あ る siginfo_t ぎ si_pid フ ã‚Ŗ ãƒŧ ãƒĢ ド は 0 ãĢ ãĒ る 。 ) SIGKILL と SIGSTOP は 例 外 と し ãĻ æ‰ą わ れ 、 こ れ ら ぎ ã‚ˇ グ ナ ãƒĢ が 先 įĨ– ぎ PID 名 前 įŠē 間 か ら 送 äŋĄ さ れ た å ´ 合 ãĢ は åŧˇ åˆļ įš„ ãĢ 配 送 さ れ る 。 こ れ ら ぎ ã‚ˇ グ ナ ãƒĢ は お ãĄ ら も "init" プ ロ ã‚ģ ãƒĢ が 捕 捉 す る こ と は で き ãĒ い 。 そ ぎ た め 、 こ れ ら ぎ ã‚ˇ グ ナ ãƒĢ ãĢ é–ĸ 逪 äģ˜ ã‘ ら れ た 通 常 ぎ ã‚ĸ ク ã‚ˇ ョ ãƒŗ (そ れ ぞ れ 、 プ ロ ã‚ģ ゚ ぎ įĩ‚ äē† ã¨ プ ロ ã‚ģ ゚ ぎ åŧˇ åˆļ 停 æ­ĸ ) が 原 行 さ れ る 。

Linux 3.4 äģĨ 降 で は 、 reboot (2) ã‚ˇ ゚ テ ム ã‚ŗ ãƒŧ ãƒĢ を å‘ŧ ãŗ å‡ē す と 、 ã‚ˇ グ ナ ãƒĢ が そ ぎ 名 前 įŠē 間 ぎ "init" プ ロ ã‚ģ ゚ ãĢ 送 äŋĄ さ れ る 。 čŠŗ į´° は reboot (2) を 参 į…§ 。

ネ ゚ ト さ れ た PID 名 前 įŠē 間

PID 名 前 įŠē 間 は å…Ĩ れ 子 ãĢ す る こ と が で き る 。 最 初 ぎ ("root") PID 名 前 įŠē 間 äģĨ 外 ぎ 各 PID 名 前 įŠē 間 は čĻĒ ã‚’ 持 つ 。 PID 名 前 įŠē 間 ぎ čĻĒ ã¯ clone (2) や unshare (2) を äŊŋ ãŖ ãĻ そ ぎ 名 前 įŠē 間 を äŊœ 成 し た プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 で あ る 。 し た が ãŖ ãĻ 、 PID 名 前 įŠē 間 は 木 構 造 を 構 成 し 、 す ず ãĻ ぎ 名 前 įŠē 間 は čĻĒ ã‚’ čžŋ ãŖ ãĻ 行 く と 、 最 įĩ‚ įš„ ãĢ は root 名 前 įŠē 間 ãĢ čžŋ り į€ く 。

プ ロ ã‚ģ ゚ は 、 所 åąž す る PID 名 前 įŠē 間 ぎ äģ– ãŽ プ ロ ã‚ģ ゚ か ら čĻ‹ え る 。 ぞ た 、 root PID 名 前 įŠē 間 ãĢ 向 か う į›´ åž„ ぎ 先 įĨ– ぎ 各 PID 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ か ら も čĻ‹ え る 。 こ ぎ å ´ 合 、 「 čĻ‹ え る 」 と は 、 あ る プ ロ ã‚ģ ゚ が 、 äģ– ãŽ プ ロ ã‚ģ ゚ が プ ロ ã‚ģ ゚ ID を 指 厚 す る ã‚ˇ ゚ テ ム ã‚ŗ ãƒŧ ãƒĢ を äŊŋ う 際 ãĢ 操 äŊœ ぎ 寞 蹥 ãĢ で き る こ と を 意 呺 す る 。 逆 ãĢ 、 子 供 PID 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ か ら čĻĒ ã‚„ 先 įĨ– ぎ 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ は čĻ‹ え ãĒ い 。 あ る プ ロ ã‚ģ ゚ は č‡Ē 分 č‡Ē čēĢ ãŽ PID 名 前 įŠē 間 と そ ぎ 子 å­Ģ ぎ 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ だ け が čĻ‹ え る (例 え ば 、 kill (2) で ã‚ˇ グ ナ ãƒĢ を 送 äŋĄ し た り 、 setpriority (2) で nice 値 を 設 厚 し た り 、 ãĒ お )。

プ ロ ã‚ģ ゚ は 、 そ ぎ プ ロ ã‚ģ ゚ が čĻ‹ え る PID 名 前 įŠē 間 ぎ 階 åą¤ ぎ 各 åą¤ ãĢ お い ãĻ プ ロ ã‚ģ ゚ ID を 一 つ 持 ãĄ 、 į›´ æŽĨ ぎ 先 įĨ– ぎ 名 前 įŠē 間 を čžŋ る こ と で 通 ãŖ ãĻ root PID 名 前 įŠē 間 ãĢ 臺 る こ と が で き る 。 プ ロ ã‚ģ ゚ ID ãĢ 寞 し ãĻ 操 äŊœ を 行 う ã‚ˇ ゚ テ ム ã‚ŗ ãƒŧ ãƒĢ は 、 常 ãĢ 、 å‘ŧ ãŗ å‡ē し 元 プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 で čĻ‹ え る プ ロ ã‚ģ ゚ ID を äŊŋ ãŖ ãĻ 操 äŊœ を 行 う 。 getpid (2) ぎ å‘ŧ ãŗ å‡ē し で は 、 常 ãĢ 、 プ ロ ã‚ģ ゚ が äŊœ 成 さ れ た 名 前 įŠē 間 ãĢ é–ĸ 逪 äģ˜ ã‘ ら れ た PID を čŋ” す 。

PID 名 前 įŠē 間 内 ぎ プ ロ ã‚ģ ゚ は 名 前 įŠē 間 ぎ 外 部 ãĢ čĻĒ ãƒ— ロ ã‚ģ ゚ を 持 つ こ と が で き る 。 例 え ば 、 そ ぎ 名 前 įŠē 間 ぎ 初 期 プ ロ ã‚ģ ゚ (す ãĒ わ ãĄ PID 1 を 持 つ init (1) プ ロ ã‚ģ ゚ ) ぎ čĻĒ ãƒ— ロ ã‚ģ ゚ は åŋ… į„ļ įš„ ãĢ åˆĨ ぎ 名 前 įŠē 間 ãĢ åąž す こ と ãĢ ãĒ る 。 同 様 ãĢ 、 あ る プ ロ ã‚ģ ゚ が setns (2) を äŊŋ ãŖ ãĻ 子 プ ロ ã‚ģ ゚ を PID 名 前 įŠē 間 ãĢ 参 加 さ せ た å ´ 合 、 子 プ ロ ã‚ģ ゚ は setns (2) ぎ å‘ŧ ãŗ å‡ē し 元 と は į•° ãĒ る PID 名 前 įŠē 間 ãĢ åąž す 。 子 プ ロ ã‚ģ ゚ で getppid (2) を å‘ŧ ãŗ å‡ē す と 0 が čŋ” さ れ る 。

プ ロ ã‚ģ ゚ は ( setns (2) を CLONE_NEWPID で äŊŋ う ãĒ お で ) 子 供 ぎ PID 名 前 įŠē 間 ãĢ č‡Ē į”ą ãĢ å…Ĩ る こ と が で き る が 、 逆 ぎ æ–š 向 ãĢ は į§ģ 動 で き ãĒ い 。 つ ぞ り 、 プ ロ ã‚ģ ゚ は 先 įĨ– ぎ 名 前 įŠē 間 (čĻĒ ã€ čĻĒ ãŽ čĻĒ ãĒ お ) ãĢ å…Ĩ る こ と は で き ãĒ い 。 PID 名 前 įŠē 間 ぎ 変 更 は 一 æ–š 向 ぎ 操 äŊœ で あ る 。

setns(2) と unshare(2) ぎ 動 äŊœ

PID 名 前 įŠē 間 ぎ フ ã‚Ą イ ãƒĢ デ ã‚Ŗ ゚ ク ãƒĒ プ ã‚ŋ ãƒŧ を 指 厚 し ãĻ setns (2) を å‘ŧ ãŗ å‡ē し た り 、 CLONE_NEWPID フ ナ グ äģ˜ ã で unshare (2) を å‘ŧ ãŗ å‡ē し た り す る と 、 そ ぎ įĩ 果 äŊœ 成 さ れ た 子 プ ロ ã‚ģ ゚ は å‘ŧ ãŗ å‡ē し 元 と は į•° ãĒ る PID 名 前 įŠē 間 ãĢ įŊŽ ã‹ れ る 。 し か し 、 こ れ ら ぎ å‘ŧ ãŗ å‡ē し で は å‘ŧ ãŗ å‡ē し 元 プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 は 変 更 さ れ ãĒ い 。 ãĒ ぜ ãĒ ら 、 PID 名 前 įŠē 間 を 変 更 し ãĻ し ぞ う と 、 å‘ŧ ãŗ å‡ē し 元 が čĒ 識 す る ( getpid () が čŋ” す ) č‡Ē 分 ぎ PID が 変 わ ãŖ ãĻ し ぞ い 、 多 く ぎ ã‚ĸ プ ãƒĒ ã‚ą ãƒŧ ã‚ˇ ョ ãƒŗ や ナ イ ブ ナ ãƒĒ が æ­Ŗ し く 動 äŊœ し ãĒ く ãĒ る か ら で あ る 。

åˆĨ ぎ 言 い æ–š を す る と 、 あ る プ ロ ã‚ģ ゚ が お ぎ PID 名 前 įŠē 間 ãĢ 所 åąž す る か は 、 そ ぎ プ ロ ã‚ģ ゚ が äŊœ 成 さ れ た と き ãĢ æąē 厚 さ れ 、 そ れ äģĨ 降 は 変 更 さ れ る こ と は ãĒ い 。 い ろ い ろ あ る が 、 プ ロ ã‚ģ ゚ 間 ぎ čĻĒ å­ é–ĸ äŋ‚ ãĢ は 、 PID 名 前 įŠē 間 ぎ čĻĒ å­ é–ĸ äŋ‚ が そ ぎ ぞ ぞ 反 映 さ れ る と い う こ と だ 。 プ ロ ã‚ģ ゚ ぎ čĻĒ ãƒ— ロ ã‚ģ ゚ は 、 同 じ 名 前 įŠē 間 ãĢ い る か 、 も し く は į›´ æŽĨ ぎ čĻĒ PID 名 前 įŠē 間 ãĢ い る か ぎ い ず れ か で あ る 。

CLONE_NEWPID ぎ äģ– ãŽ CLONE_* フ ナ グ と ぎ äē’ æ› 性

CLONE_NEWPID は い く つ か ぎ äģ– ãŽ CLONE_* フ ナ グ と įĩ„ ãŋ 合 わ せ る こ と が で き ãĒ い 。

*

CLONE_THREAD は 、 プ ロ ã‚ģ ゚ 内 ぎ ゚ ãƒŦ ッ ド 間 で äē’ ã„ ãĢ ã‚ˇ グ ナ ãƒĢ を 送 äŋĄ で き る よ う ãĢ す る た め 、 同 じ PID 名 前 įŠē 間 ãĢ åąž し ãĻ い る åŋ… čρ が あ る 。 同 様 ãĢ 、 プ ロ ã‚ģ ゚ 内 ぎ 全 ゚ ãƒŦ ッ ド が proc (5) フ ã‚Ą イ ãƒĢ ã‚ˇ ゚ テ ム で čĻ‹ え る åŋ… čρ が あ る 。

*

CLONE_SIGHAND は 、 同 じ PID 名 前 įŠē 間 で あ る åŋ… čρ が あ る 。 さ も ãĒ け れ ば 、 ã‚ˇ グ ナ ãƒĢ が 送 äŋĄ さ れ た 際 ãĢ 、 ã‚ˇ グ ナ ãƒĢ を 送 äŋĄ し た プ ロ ã‚ģ ゚ ぎ プ ロ ã‚ģ ゚ ID を 意 呺 ぎ あ る åŊĸ で エ ãƒŗ ã‚ŗ ãƒŧ ド す る こ と が で き ãĒ い ( sigaction (2) ぎ siginfo_t 型 ぎ čĒŦ 明 を 参 į…§ )。 複 数 ぎ PID 名 前 įŠē 間 ãĢ åąž す る プ ロ ã‚ģ ゚ 間 で 一 つ ぎ ã‚ˇ グ ナ ãƒĢ キ ãƒĨ ãƒŧ を å…ą 有 す る と 、 う ぞ く 動 か ãĒ く ãĒ る 。

*

CLONE_VM は 、 全 ゚ ãƒŦ ッ ド が 同 じ PID 名 前 įŠē 間 ãĢ åąž し ãĻ い る åŋ… čρ が あ る 。 ãĒ ぜ ãĒ ら 、 ã‚ŗ ã‚ĸ ダ ãƒŗ プ ぎ čĻŗ į‚š か ら čĻ‹ る と 、 2 つ ぎ プ ロ ã‚ģ ゚ が 同 じ ã‚ĸ ド ãƒŦ ゚ įŠē 間 を å…ą 有 し ãĻ い れ ば 、 こ れ ら は ゚ ãƒŦ ッ ド で あ り 、 ã‚ŗ ã‚ĸ ダ ãƒŗ プ が 一 ᎒ ãĢ 行 わ れ る か ら で あ る 。 ã‚ŗ ã‚ĸ ダ ãƒŗ プ が 書 き čžŧ ぞ れ る 際 ãĢ 、 各 ゚ ãƒŦ ッ ド ぎ PID が ã‚ŗ ã‚ĸ ダ ãƒŗ プ ãĢ 書 き čžŧ ぞ れ る 。 も し プ ロ ã‚ģ ゚ ID ぎ い く つ か が čĻĒ PID 名 前 įŠē 間 ãĢ åąž し ãĻ い た と す る と 、 プ ロ ã‚ģ ゚ ID ぎ 書 き čžŧ ãŋ は 意 呺 を 持 た ãĒ く ãĒ ãŖ ãĻ し ぞ う 。

ぞ と め る と 、 CLONE_THREAD , CLONE_SIGHAND , CLONE_VM で は 技 術 įš„ ãĒ čρ äģļ と し ãĻ PID 名 前 įŠē 間 が å…ą 有 さ れ ãĻ い る į‚š が あ る 。 (さ ら ãĢ clone (2) で は CLONE_THREAD か CLONE_SIGHAND が 指 厚 さ れ た 際 ãĢ は CLONE_VM が 指 厚 さ れ ãĻ い る åŋ… čρ が あ る į‚š ãĢ も æŗ¨ 意 。 ) し た が ãŖ ãĻ 、 äģĨ 下 ぎ よ う ãĒ 順 åē ã§ å‘ŧ ãŗ å‡ē し を 行 う と (エ ナ ãƒŧ EINVAL で ) å¤ą 敗 す る 。

unshare(CLONE_NEWPID);
clone(..., CLONE_VM, ...); /* Fails */

setns(fd, CLONE_NEWPID);
clone(..., CLONE_VM, ...); /* Fails */

clone(..., CLONE_VM, ...);
setns(fd, CLONE_NEWPID); /* Fails */

clone(..., CLONE_VM, ...);
unshare(CLONE_NEWPID); /* Fails */

/proc と PID 名 前 įŠē 間

/proc フ ã‚Ą イ ãƒĢ ã‚ˇ ゚ テ ム は 、 /proc ぎ マ ã‚Ļ ãƒŗ ト を 行 ãŖ た プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 で čĻ‹ え る プ ロ ã‚ģ ゚ だ け を 襨 į¤ē す る 。 た と え 、 そ ぎ /proc フ ã‚Ą イ ãƒĢ ã‚ˇ ゚ テ ム が äģ– ãŽ 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ か ら 参 į…§ さ れ た と し ãĻ も 、 そ う で あ る 。

新 し い PID 名 前 įŠē 間 を äŊœ 成 し た 垌 、 子 プ ロ ã‚ģ ゚ が 、 č‡Ē čēĢ ãŽ root デ ã‚Ŗ ãƒŦ ク ト ãƒĒ を 変 更 し 、 新 し い procfs イ ãƒŗ ゚ ã‚ŋ ãƒŗ ゚ を /proc ãĢ マ ã‚Ļ ãƒŗ ト す る ぎ は ps (1) ãĒ お ぎ ツ ãƒŧ ãƒĢ が æ­Ŗ し く 動 äŊœ す る た め ãĢ も 有 ᔍ で あ る 。 clone (2) ぎ flags åŧ• き 数 ãĢ CLONE_NEWNS も 指 厚 さ れ ãĻ 新 し い マ ã‚Ļ ãƒŗ ト 名 前 įŠē 間 が 同 時 ãĢ äŊœ 成 さ れ た å ´ 合 は 、 root デ ã‚Ŗ ãƒŦ ク ト ãƒĒ を 変 更 す る åŋ… čρ は ãĒ い 。 新 し い procfs イ ãƒŗ ゚ ã‚ŋ ãƒŗ ゚ を /proc ãĢ そ ぎ ぞ ぞ マ ã‚Ļ ãƒŗ ト す る こ と が で き る 。

ã‚ˇ ェ ãƒĢ か ら 、 ã‚ŗ マ ãƒŗ ド で /proc ぎ マ ã‚Ļ ãƒŗ ト を 行 う ãĢ は æŦĄ ぎ よ う ãĢ す る 。

$ mount -t proc proc /proc

パ ゚ /proc/self ãĢ 寞 し ãĻ readlink (2) を å‘ŧ ãŗ å‡ē す と 、 procfs ぎ マ ã‚Ļ ãƒŗ ト を 行 ãŖ た プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 ãĢ お け る プ ロ ã‚ģ ゚ ID が åž— ら れ る 。 こ れ は čĒŋ æŸģ į›Ž įš„ で プ ロ ã‚ģ ゚ が äģ– ãŽ 名 前 įŠē 間 で č‡Ē čēĢ ãŽ PID を įŸĨ り た い å ´ 合 ãĒ お ãĢ åŊš įĢ‹ つ 。

そ ぎ äģ–

プ ロ ã‚ģ ゚ ID が UNIX ド ãƒĄ イ ãƒŗ ã‚Ŋ ã‚ą ッ ト įĩŒ į”ą で åˆĨ ぎ PID 名 前 įŠē 間 ぎ プ ロ ã‚ģ ゚ ãĢ æ¸Ą さ れ る å ´ 合 ( unix (7) ぎ SCM_CREDENTIALS ぎ čĒŦ 明 を 参 į…§ )、 プ ロ ã‚ģ ゚ ID は 受 äŋĄ プ ロ ã‚ģ ゚ ぎ PID 名 前 įŠē 間 で ぎ 寞 åŋœ す る PID 値 ãĢ įŋģ 荺 さ れ る 。

æē– 拠

名 前 įŠē 間 は Linux į‹Ŧ č‡Ē ぎ 抟 čƒŊ で あ る 。

例

user_namespaces (7) 参 į…§ 。

é–ĸ 逪 項 į›Ž

clone (2), setns (2), unshare (2), proc (5), credentials (7), capabilities (7), user_namespaces (7), switch_root (8)

こ ぎ 文 書 ãĢ つ い ãĻ

こ ぎ man ペ ãƒŧ ジ は Linux man-pages プ ロ ジ ェ ク ト ぎ ãƒĒ ãƒĒ ãƒŧ ゚ 3.79 ぎ 一 部 で あ る 。 プ ロ ジ ェ ク ト ぎ čĒŦ 明 と バ グ å ą 告 ãĢ é–ĸ す る 情 å ą は http://www.kernel.org/doc/man-pages/ ãĢ 書 か れ ãĻ い る 。