]> git.ipfire.org Git - thirdparty/util-linux.git/blame - sys-utils/nsenter.1.adoc
nsenter: add --env for allowing environment variables inheritance
[thirdparty/util-linux.git] / sys-utils / nsenter.1.adoc
CommitLineData
295b3979 1//po4a: entry man manual
14179682
MB
2= nsenter(1)
3:doctype: manpage
f42ed819 4:man manual: User Commands
14179682
MB
5:man source: util-linux {release-version}
6:page-layout: base
7:command: nsenter
8
9== NAME
10
11nsenter - run program in different namespaces
12
13== SYNOPSIS
14
4d297435 15*nsenter* [options] [_program_ [_arguments_]]
14179682
MB
16
17== DESCRIPTION
18
19The *nsenter* command executes _program_ in the namespace(s) that are specified in the command-line options (described below). If _program_ is not given, then "$\{SHELL}" is run (default: _/bin/sh_).
20
21Enterable namespaces are:
22
23*mount namespace*::
4eab78d3 24Mounting and unmounting filesystems will not affect the rest of the system, except for filesystems which are explicitly marked as shared (with *mount --make-shared*; see _/proc/self/mountinfo_ for the *shared* flag). For further details, see *mount_namespaces*(7) and the discussion of the *CLONE_NEWNS* flag in *clone*(2).
14179682
MB
25
26*UTS namespace*::
4eab78d3 27Setting hostname or domainname will not affect the rest of the system. For further details, see *uts_namespaces*(7).
14179682
MB
28
29*IPC namespace*::
4eab78d3 30The process will have an independent namespace for POSIX message queues as well as System V message queues, semaphore sets and shared memory segments. For further details, see *ipc_namespaces*(7).
14179682
MB
31
32*network namespace*::
4eab78d3 33The process will have independent IPv4 and IPv6 stacks, IP routing tables, firewall rules, the _/proc/net_ and _/sys/class/net_ directory trees, sockets, etc. For further details, see *network_namespaces*(7).
14179682
MB
34
35*PID namespace*::
4eab78d3 36Children will have a set of PID to process mappings separate from the *nsenter* process. *nsenter* will fork by default if changing the PID namespace, so that the new program and its children share the same PID namespace and are visible to each other. If *--no-fork* is used, the new program will be exec'ed without forking. For further details, see *pid_namespaces*(7).
14179682
MB
37
38*user namespace*::
4eab78d3 39The process will have a distinct set of UIDs, GIDs and capabilities. For further details, see *user_namespaces*(7).
14179682
MB
40
41*cgroup namespace*::
4eab78d3 42The process will have a virtualized view of _/proc/self/cgroup_, and new cgroup mounts will be rooted at the namespace cgroup root. For further details, see *cgroup_namespaces*(7).
14179682
MB
43
44*time namespace*::
4eab78d3 45The process can have a distinct view of *CLOCK_MONOTONIC* and/or *CLOCK_BOOTTIME* which can be changed using _/proc/self/timens_offsets_. For further details, see *time_namespaces*(7).
14179682
MB
46
47== OPTIONS
48
4eab78d3
MB
49//TRANSLATORS: Keep {asterisk} untranslated.
50Various of the options below that relate to namespaces take an optional _file_ argument. This should be one of the _/proc/[pid]/ns/{asterisk}_ files described in *namespaces*(7), or the pathname of a bind mount that was created on one of those files.
14179682 51
4eab78d3 52//TRANSLATORS: Keep {asterisk} untranslated.
14179682 53*-a*, *--all*::
4eab78d3
MB
54Enter all namespaces of the target process by the default _/proc/[pid]/ns/{asterisk}_ namespace paths. The default paths to the target process namespaces may be overwritten by namespace specific options (e.g., *--all --mount*=[_path_]).
55+
56The user namespace will be ignored if the same as the caller's current user namespace. It prevents a caller that has dropped capabilities from regaining those capabilities via a call to setns(). See *setns*(2) for more details.
14179682
MB
57
58*-t*, *--target* _PID_::
4eab78d3
MB
59Specify a target process to get contexts from. The paths to the contexts specified by _pid_ are:
60
86cc47aa 61_/proc/pid/ns/mnt_;;
4eab78d3 62the mount namespace
86cc47aa 63_/proc/pid/ns/uts_;;
4eab78d3 64the UTS namespace
86cc47aa 65_/proc/pid/ns/ipc_;;
4eab78d3 66the IPC namespace
86cc47aa 67_/proc/pid/ns/net_;;
4eab78d3 68the network namespace
86cc47aa 69_/proc/pid/ns/pid_;;
4eab78d3 70the PID namespace
86cc47aa 71_/proc/pid/ns/user_;;
4eab78d3 72the user namespace
86cc47aa 73_/proc/pid/ns/cgroup_;;
4eab78d3 74the cgroup namespace
86cc47aa 75_/proc/pid/ns/time_;;
4eab78d3 76the time namespace
86cc47aa 77_/proc/pid/root_;;
4eab78d3 78the root directory
86cc47aa 79_/proc/pid/cwd_;;
4eab78d3 80the working directory respectively
14179682
MB
81
82*-m*, *--mount*[=_file_]::
4eab78d3 83Enter the mount namespace. If no file is specified, enter the mount namespace of the target process. If _file_ is specified, enter the mount namespace specified by _file_.
14179682
MB
84
85*-u*, *--uts*[=_file_]::
4eab78d3 86Enter the UTS namespace. If no file is specified, enter the UTS namespace of the target process. If _file_ is specified, enter the UTS namespace specified by _file_.
14179682
MB
87
88*-i*, *--ipc*[=_file_]::
4eab78d3 89Enter the IPC namespace. If no file is specified, enter the IPC namespace of the target process. If _file_ is specified, enter the IPC namespace specified by _file_.
14179682
MB
90
91*-n*, *--net*[=_file_]::
4eab78d3 92Enter the network namespace. If no file is specified, enter the network namespace of the target process. If _file_ is specified, enter the network namespace specified by _file_.
14179682
MB
93
94*-p*, *--pid*[=_file_]::
4eab78d3 95Enter the PID namespace. If no file is specified, enter the PID namespace of the target process. If _file_ is specified, enter the PID namespace specified by _file_.
14179682
MB
96
97*-U*, *--user*[=_file_]::
4eab78d3 98Enter the user namespace. If no file is specified, enter the user namespace of the target process. If _file_ is specified, enter the user namespace specified by _file_. See also the *--setuid* and *--setgid* options.
14179682
MB
99
100*-C*, *--cgroup*[=_file_]::
4eab78d3 101Enter the cgroup namespace. If no file is specified, enter the cgroup namespace of the target process. If _file_ is specified, enter the cgroup namespace specified by _file_.
14179682
MB
102
103*-T*, *--time*[=_file_]::
4eab78d3 104Enter the time namespace. If no file is specified, enter the time namespace of the target process. If _file_ is specified, enter the time namespace specified by _file_.
14179682
MB
105
106*-G*, *--setgid* _gid_::
4eab78d3 107Set the group ID which will be used in the entered namespace and drop supplementary groups. *nsenter* always sets GID for user namespaces, the default is 0.
14179682
MB
108
109*-S*, *--setuid* _uid_::
4eab78d3 110Set the user ID which will be used in the entered namespace. *nsenter* always sets UID for user namespaces, the default is 0.
14179682
MB
111
112*--preserve-credentials*::
4eab78d3 113Don't modify UID and GID when enter user namespace. The default is to drops supplementary groups and sets GID and UID to 0.
14179682
MB
114
115*-r*, *--root*[=_directory_]::
0cbb001a 116Set the root directory. If no directory is specified, set the root directory to the root directory of the target process. If directory is specified, set the root directory to the specified directory. The specified _directory_ is open before it switches to the requested namespaces.
14179682
MB
117
118*-w*, *--wd*[=_directory_]::
0cbb001a
KZ
119Set the working directory. If no directory is specified, set the working directory to the working directory of the target process. If directory is specified, set the working directory to the specified directory. The specified _directory_ is open before it switches to the requested namespaces, it means the specified directory works as "tunnel" to the current namespace. See also *--wdns*.
120
121*-W*, *--wdns*[=_directory_]::
344b0cd4 122Set the working directory. The _directory_ is open after switch to the requested namespaces and after *chroot*(2) call. The options *--wd* and *--wdns* are mutually exclusive.
14179682 123
4e9ec856 124*-e*, *--env*::
125Pass environment variables from the target process to the new process being created. If this option is not provided, the environment variables will remain the same as in the current namespace..
126
14179682 127*-F*, *--no-fork*::
4eab78d3 128Do not fork before exec'ing the specified program. By default, when entering a PID namespace, *nsenter* calls *fork* before calling *exec* so that any children will also be in the newly entered PID namespace.
14179682
MB
129
130*-Z*, *--follow-context*::
4eab78d3 131Set the SELinux security context used for executing a new process according to already running process specified by *--target* PID. (The util-linux has to be compiled with SELinux support otherwise the option is unavailable.)
14179682 132
2b2d3172 133include::man-common/help-version.adoc[]
14179682
MB
134
135== AUTHORS
136
4eab78d3 137mailto:biederm@xmission.com[Eric Biederman],
14179682
MB
138mailto:kzak@redhat.com[Karel Zak]
139
140== SEE ALSO
141
142*clone*(2),
143*setns*(2),
144*namespaces*(7)
145
625e9c61 146include::man-common/bugreports.adoc[]
14179682 147
625e9c61 148include::man-common/footer.adoc[]
14179682
MB
149
150ifdef::translation[]
625e9c61 151include::man-common/translation.adoc[]
14179682 152endif::[]