mirror of https://github.com/mkerrisk/man-pages
89 lines
2.0 KiB
Groff
89 lines
2.0 KiB
Groff
![]() |
.\" Copyright (C) 2011, Eric Biederman <ebiederm@xmission.com>
|
||
|
.\" Licensed under the GPLv2
|
||
|
.\"
|
||
|
.TH SETNS 2 2011-05-28 "Linux" "Linux Programmer's Manual"
|
||
|
.SH NAME
|
||
|
setns \- reassociate parts of the process execution context
|
||
|
.SH SYNOPSIS
|
||
|
.nf
|
||
|
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
|
||
|
.B #include <sched.h>
|
||
|
.sp
|
||
|
.BI "int setns(int " fd ", int " nstype );
|
||
|
.fi
|
||
|
.SH DESCRIPTION
|
||
|
Given a file descriptor referring to a namespace reassociate the
|
||
|
current process with that namespace.
|
||
|
|
||
|
The
|
||
|
.I nstype
|
||
|
argument is an enumeration that specifies which type of namespace
|
||
|
the current process may be reassociated with. This argument can
|
||
|
have one of the following values:
|
||
|
|
||
|
.TP
|
||
|
.BR 0
|
||
|
Allow any namespace to be joined.
|
||
|
.TP
|
||
|
.BR CLONE_NEWIPC
|
||
|
Only allow joining an ipc namespace.
|
||
|
.TP
|
||
|
.BR CLONE_NEWNET
|
||
|
Only allow joining a network namespace.
|
||
|
.TP
|
||
|
.BR CLONE_NEWUTS
|
||
|
Only allow joining a uts namespace.
|
||
|
.PP
|
||
|
If
|
||
|
.I flags
|
||
|
is specified as zero, then
|
||
|
.BR setns ()
|
||
|
is a no-op;
|
||
|
no changes are made to the calling process's execution context.
|
||
|
.SH RETURN VALUE
|
||
|
On success, zero returned.
|
||
|
On failure, \-1 is returned and
|
||
|
.I errno
|
||
|
is set to indicate the error.
|
||
|
.SH ERRORS
|
||
|
.TP
|
||
|
.TP
|
||
|
.B EBADF
|
||
|
A bad file descriptor was passed to setns.
|
||
|
|
||
|
.TP
|
||
|
.B EINVAL
|
||
|
A file descriptor that does not match the specified nstype.
|
||
|
|
||
|
Attempting to change the mount namespace and the filesystem
|
||
|
is shared between multiple tasks.
|
||
|
|
||
|
.TP
|
||
|
.B ENOMEM
|
||
|
Cannot allocate sufficient memory to change the specified namespace.
|
||
|
|
||
|
.TP
|
||
|
.B EPERM
|
||
|
The calling process did not have the required privileges for this operation.
|
||
|
.SH VERSIONS
|
||
|
The
|
||
|
.BR setns ()
|
||
|
system call first appeared in Linux in kernel 3.0
|
||
|
.SH CONFORMING TO
|
||
|
The
|
||
|
.BR setns ()
|
||
|
system call is Linux-specific.
|
||
|
.SH NOTES
|
||
|
Not all of the process attributes that can be shared when
|
||
|
a new process is created using
|
||
|
.BR clone (2)
|
||
|
can be changed using
|
||
|
.BR setns ().
|
||
|
.SH BUGS
|
||
|
The pid namespace and the mount namespace are not currently supported.
|
||
|
.SH SEE ALSO
|
||
|
.BR clone (2),
|
||
|
.BR fork (2),
|
||
|
.BR vfork (2),
|
||
|
.BR setns(2)
|