.\" Copyright (C) 2011, Eric Biederman .\" 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 .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)