man-pages/man2/setns.2

89 lines
2.0 KiB
Groff
Raw Normal View History

.\" 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)