|
|
0b5e55 |
diff -up util-linux-2.23.2/sys-utils/nsenter.1.kzak util-linux-2.23.2/sys-utils/nsenter.1
|
|
|
0b5e55 |
--- util-linux-2.23.2/sys-utils/nsenter.1.kzak 2014-03-12 12:39:19.283577293 +0100
|
|
|
0b5e55 |
+++ util-linux-2.23.2/sys-utils/nsenter.1 2014-03-12 12:42:08.930336415 +0100
|
|
|
0b5e55 |
@@ -47,12 +47,7 @@ flag).
|
|
|
0b5e55 |
will fork by default if changing the PID namespace, so that the new program
|
|
|
0b5e55 |
and its children share the same PID namespace and are visible to each other.
|
|
|
0b5e55 |
If \-\-no\-fork is used, the new program will be exec'ed without forking.
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
-.B user namespace
|
|
|
0b5e55 |
-process will have distinct set of UIDs, GIDs and capabilities
|
|
|
0b5e55 |
-.RB ( CLONE_\:NEWUSER
|
|
|
0b5e55 |
-flag).
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
+.PP
|
|
|
0b5e55 |
See the
|
|
|
0b5e55 |
.BR clone (2)
|
|
|
0b5e55 |
for exact semantics of the flags.
|
|
|
0b5e55 |
@@ -88,9 +83,6 @@ the network namespace
|
|
|
0b5e55 |
/proc/\fIpid\fR/ns/pid
|
|
|
0b5e55 |
the PID namespace
|
|
|
0b5e55 |
.TP
|
|
|
0b5e55 |
-/proc/\fIpid\fR/ns/user
|
|
|
0b5e55 |
-the user namespace
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
/proc/\fIpid\fR/root
|
|
|
0b5e55 |
the root directory
|
|
|
0b5e55 |
.TP
|
|
|
0b5e55 |
@@ -124,11 +116,6 @@ Enter the PID namespace. If no file is
|
|
|
0b5e55 |
the target process. If file is specified enter the PID namespace specified by
|
|
|
0b5e55 |
file.
|
|
|
0b5e55 |
.TP
|
|
|
0b5e55 |
-\fB\-U\fR, \fB\-\-user\fR [\fIfile\fR]
|
|
|
0b5e55 |
-Enter the user namespace. If no file is specified enter the user namespace of
|
|
|
0b5e55 |
-the target process. If file is specified enter the user namespace specified by
|
|
|
0b5e55 |
-file.
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
\fB\-r\fR, \fB\-\-root\fR [\fIdirectory\fR]
|
|
|
0b5e55 |
Set the root directory. If no directory is specified set the root directory to
|
|
|
0b5e55 |
the root directory of the target process. If directory is specified set the
|
|
|
0b5e55 |
diff -up util-linux-2.23.2/sys-utils/nsenter.c.kzak util-linux-2.23.2/sys-utils/nsenter.c
|
|
|
0b5e55 |
--- util-linux-2.23.2/sys-utils/nsenter.c.kzak 2014-03-12 12:39:10.402485179 +0100
|
|
|
0b5e55 |
+++ util-linux-2.23.2/sys-utils/nsenter.c 2014-03-12 12:44:07.986570461 +0100
|
|
|
0b5e55 |
@@ -42,12 +42,7 @@ static struct namespace_file {
|
|
|
0b5e55 |
int fd;
|
|
|
0b5e55 |
} namespace_files[] = {
|
|
|
0b5e55 |
/* Careful the order is significant in this array.
|
|
|
0b5e55 |
- *
|
|
|
0b5e55 |
- * The user namespace comes first, so that it is entered
|
|
|
0b5e55 |
- * first. This gives an unprivileged user the potential to
|
|
|
0b5e55 |
- * enter the other namespaces.
|
|
|
0b5e55 |
*/
|
|
|
0b5e55 |
- { .nstype = CLONE_NEWUSER, .name = "ns/user", .fd = -1 },
|
|
|
0b5e55 |
{ .nstype = CLONE_NEWIPC, .name = "ns/ipc", .fd = -1 },
|
|
|
0b5e55 |
{ .nstype = CLONE_NEWUTS, .name = "ns/uts", .fd = -1 },
|
|
|
0b5e55 |
{ .nstype = CLONE_NEWNET, .name = "ns/net", .fd = -1 },
|
|
|
0b5e55 |
@@ -71,7 +66,6 @@ static void usage(int status)
|
|
|
0b5e55 |
fputs(_(" -i, --ipc [=<file>] enter System V IPC namespace\n"), out);
|
|
|
0b5e55 |
fputs(_(" -n, --net [=<file>] enter network namespace\n"), out);
|
|
|
0b5e55 |
fputs(_(" -p, --pid [=<file>] enter pid namespace\n"), out);
|
|
|
0b5e55 |
- fputs(_(" -U, --user [=<file>] enter user namespace\n"), out);
|
|
|
0b5e55 |
fputs(_(" -r, --root [=<dir>] set the root directory\n"), out);
|
|
|
0b5e55 |
fputs(_(" -w, --wd [=<dir>] set the working directory\n"), out);
|
|
|
0b5e55 |
fputs(_(" -F, --no-fork do not fork before exec'ing <program>\n"), out);
|
|
|
0b5e55 |
@@ -168,7 +162,6 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
{ "ipc", optional_argument, NULL, 'i' },
|
|
|
0b5e55 |
{ "net", optional_argument, NULL, 'n' },
|
|
|
0b5e55 |
{ "pid", optional_argument, NULL, 'p' },
|
|
|
0b5e55 |
- { "user", optional_argument, NULL, 'U' },
|
|
|
0b5e55 |
{ "root", optional_argument, NULL, 'r' },
|
|
|
0b5e55 |
{ "wd", optional_argument, NULL, 'w' },
|
|
|
0b5e55 |
{ "no-fork", no_argument, NULL, 'F' },
|
|
|
0b5e55 |
@@ -186,7 +179,7 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
atexit(close_stdout);
|
|
|
0b5e55 |
|
|
|
0b5e55 |
while ((c =
|
|
|
0b5e55 |
- getopt_long(argc, argv, "hVt:m::u::i::n::p::U::r::w::F",
|
|
|
0b5e55 |
+ getopt_long(argc, argv, "hVt:m::u::i::n::p::r::w::F",
|
|
|
0b5e55 |
longopts, NULL)) != -1) {
|
|
|
0b5e55 |
switch (c) {
|
|
|
0b5e55 |
case 'h':
|
|
|
0b5e55 |
@@ -228,12 +221,6 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
else
|
|
|
0b5e55 |
namespaces |= CLONE_NEWPID;
|
|
|
0b5e55 |
break;
|
|
|
0b5e55 |
- case 'U':
|
|
|
0b5e55 |
- if (optarg)
|
|
|
0b5e55 |
- open_namespace_fd(CLONE_NEWUSER, optarg);
|
|
|
0b5e55 |
- else
|
|
|
0b5e55 |
- namespaces |= CLONE_NEWUSER;
|
|
|
0b5e55 |
- break;
|
|
|
0b5e55 |
case 'F':
|
|
|
0b5e55 |
do_fork = 0;
|
|
|
0b5e55 |
break;
|
|
|
0b5e55 |
diff -up util-linux-2.23.2/sys-utils/unshare.1.kzak util-linux-2.23.2/sys-utils/unshare.1
|
|
|
0b5e55 |
--- util-linux-2.23.2/sys-utils/unshare.1.kzak 2014-03-12 12:39:41.367806340 +0100
|
|
|
0b5e55 |
+++ util-linux-2.23.2/sys-utils/unshare.1 2014-03-12 12:40:25.186260760 +0100
|
|
|
0b5e55 |
@@ -34,9 +34,6 @@ etc. (\fBCLONE_NEWNET\fP flag).
|
|
|
0b5e55 |
.BR "pid namespace"
|
|
|
0b5e55 |
children will have a distinct set of pid to process mappings than their parent.
|
|
|
0b5e55 |
(\fBCLONE_NEWPID\fP flag).
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
-.BR "user namespace"
|
|
|
0b5e55 |
-process will have distinct set of uids, gids and capabilities. (\fBCLONE_NEWUSER\fP flag).
|
|
|
0b5e55 |
.PP
|
|
|
0b5e55 |
See the \fBclone\fR(2) for exact semantics of the flags.
|
|
|
0b5e55 |
.SH OPTIONS
|
|
|
0b5e55 |
@@ -58,9 +55,6 @@ Unshare the network namespace.
|
|
|
0b5e55 |
.TP
|
|
|
0b5e55 |
.BR \-p , " \-\-pid"
|
|
|
0b5e55 |
Unshare the pid namespace.
|
|
|
0b5e55 |
-.TP
|
|
|
0b5e55 |
-.BR \-U , " \-\-user"
|
|
|
0b5e55 |
-Unshare the user namespace.
|
|
|
0b5e55 |
.SH SEE ALSO
|
|
|
0b5e55 |
.BR unshare (2),
|
|
|
0b5e55 |
.BR clone (2)
|
|
|
0b5e55 |
diff -up util-linux-2.23.2/sys-utils/unshare.c.kzak util-linux-2.23.2/sys-utils/unshare.c
|
|
|
0b5e55 |
--- util-linux-2.23.2/sys-utils/unshare.c.kzak 2014-03-12 12:39:46.385858383 +0100
|
|
|
0b5e55 |
+++ util-linux-2.23.2/sys-utils/unshare.c 2014-03-12 12:44:49.955005384 +0100
|
|
|
0b5e55 |
@@ -45,7 +45,6 @@ static void usage(int status)
|
|
|
0b5e55 |
fputs(_(" -i, --ipc unshare System V IPC namespace\n"), out);
|
|
|
0b5e55 |
fputs(_(" -n, --net unshare network namespace\n"), out);
|
|
|
0b5e55 |
fputs(_(" -p, --pid unshare pid namespace\n"), out);
|
|
|
0b5e55 |
- fputs(_(" -U, --user unshare user namespace\n"), out);
|
|
|
0b5e55 |
|
|
|
0b5e55 |
fputs(USAGE_SEPARATOR, out);
|
|
|
0b5e55 |
fputs(USAGE_HELP, out);
|
|
|
0b5e55 |
@@ -65,7 +64,6 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
{ "ipc", no_argument, 0, 'i' },
|
|
|
0b5e55 |
{ "net", no_argument, 0, 'n' },
|
|
|
0b5e55 |
{ "pid", no_argument, 0, 'p' },
|
|
|
0b5e55 |
- { "user", no_argument, 0, 'U' },
|
|
|
0b5e55 |
{ NULL, 0, 0, 0 }
|
|
|
0b5e55 |
};
|
|
|
0b5e55 |
|
|
|
0b5e55 |
@@ -78,7 +76,7 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
textdomain(PACKAGE);
|
|
|
0b5e55 |
atexit(close_stdout);
|
|
|
0b5e55 |
|
|
|
0b5e55 |
- while ((c = getopt_long(argc, argv, "hVmuinpU", longopts, NULL)) != -1) {
|
|
|
0b5e55 |
+ while ((c = getopt_long(argc, argv, "hVmuinp", longopts, NULL)) != -1) {
|
|
|
0b5e55 |
switch (c) {
|
|
|
0b5e55 |
case 'h':
|
|
|
0b5e55 |
usage(EXIT_SUCCESS);
|
|
|
0b5e55 |
@@ -100,9 +98,6 @@ int main(int argc, char *argv[])
|
|
|
0b5e55 |
case 'p':
|
|
|
0b5e55 |
unshare_flags |= CLONE_NEWPID;
|
|
|
0b5e55 |
break;
|
|
|
0b5e55 |
- case 'U':
|
|
|
0b5e55 |
- unshare_flags |= CLONE_NEWUSER;
|
|
|
0b5e55 |
- break;
|
|
|
0b5e55 |
default:
|
|
|
0b5e55 |
usage(EXIT_FAILURE);
|
|
|
0b5e55 |
}
|