User Namespace
Basic Information
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдПрдХ Linux рдХрд░реНрдиреЗрд▓ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдкреГрдердХреНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдХрд╛ рд╕реЗрдЯ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рдкреГрдердХреНрдХрд░рдг рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдФрд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реЛрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рддрдВрддреНрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдХрд╛ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдмреЗрд╣рддрд░ рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдкреГрдердХреНрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред
How it works:
рдЬрдм рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдмрд╛рд╣рд░ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд░рдЦреЗрдЧреАред
рдирдП рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ (рдпрд╛ рд╣реЛрд╕реНрдЯ) рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЖрдИрдбреА рдореИрдкрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдирдП рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдФрд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдИрдбреА рдореИрдкрд┐рдВрдЧ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдВрдЬ рдФрд░ рдЖрдИрдбреА рдХреЗ рдЙрдкрд╕рдореБрдЪреНрдЪрдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдирдП рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджрд┐рдП рдЧрдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкрд░ рдмрд╛рд░реАрдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ (UID 0) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдмрд╛рд╣рд░ рд╕реАрдорд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд░рдЦрддреЗ рд╣реИрдВред рдпрд╣ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рд░реВрдЯ-рдЬреИрд╕реЗ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкреВрд░реНрдг рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗред
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ
setns()
рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛unshare()
рдпрд╛clone()
рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдП рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВCLONE_NEWUSER
рдзреНрд╡рдЬ рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирдП рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЬрд╛рддреА рд╣реИ рдпрд╛ рдПрдХ рдмрдирд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЖрдИрдбреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧреАред
Lab:
Create different Namespaces
CLI
By mounting a new instance of the /proc
filesystem if you use the param --mount-proc
, you ensure that the new mount namespace has an рд╕рдЯреАрдХ рдФрд░ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрд╕ namespace рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА.
Docker
Docker рдбреЗрдорди рдХреЛ --userns-remap=default
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрдмрдВрдЯреВ 14.04 рдореЗрдВ, рдпрд╣ /etc/default/docker
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ sudo service docker restart
рдЪрд▓рд╛рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣реИ
рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВ:
рдпрд╛ рд╣реЛрд╕реНрдЯ рд╕реЗ:
рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдЦреЛрдЬреЗрдВ
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдЕрдВрджрд░ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ
рдЖрдк рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рд░реВрдЯ рд╣реИрдВред рдФрд░ рдЖрдк рджреВрд╕рд░реЗ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдмрд┐рдирд╛ рдПрдХ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЬреЛ рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ /proc/self/ns/user
)ред
рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛рдПрдВ (рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде)
Recovering Capabilities
In the case of user namespaces, рдЬрдм рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рдкреВрд░реНрдг рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдХреНрд╖рдорддрд╛рдПрдБ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛, рдЙрдкрдХрд░рдг рдмрдирд╛рдирд╛, рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЛ рдмрджрд▓рдирд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ CAP_SYS_ADMIN
рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рдРрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдЗрд╕ рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рд╕рдВрдЪрд╛рд▓рди рдореЗрдЬрд╝рдмрд╛рди рдкреНрд░рдгрд╛рд▓реА рдпрд╛ рдЕрдиреНрдп рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рдПрдХ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрдкрдХреЛ рд╕рднреА рдХреНрд╖рдорддрд╛рдПрдБ рд╡рд╛рдкрд╕ рджреЗрдЧрд╛ (CapEff: 000001ffffffffff), рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдЙрдВрдЯ) рд▓реЗрдХрд┐рди рд╣рд░ рдПрдХ рдХрд╛ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ Docker рдХрдВрдЯреЗрдирд░ рд╕реЗ рднрд╛рдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
Last updated