.\" Copyright (c) 2019 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.\"
.TH UTS_NAMESPACES 7 2019-11-19 "Linux" "Linux Programmer's Manual"
.SH NAME
uts_namespaces \- overview of Linux UTS namespaces
.SH DESCRIPTION
UTS namespaces provide isolation of two system identifiers:
the hostname and the NIS domain name.
These identifiers are set using
.BR sethostname (2)
and
.BR setdomainname (2),
and can be retrieved using
.BR uname (2),
.BR gethostname (2),
and
.BR getdomainname (2).
Changes made to these identifiers are visible to all other
processes in the same UTS namespace,
but are not visible to processes in other UTS namespaces.
.PP
.PP
When a process creates a new UTS namespace using
.BR clone (2)
or
.BR unshare (2)
with the
.BR CLONE_NEWUTS
flag, the hostname and domain of the new UTS namespace are copied
from the corresponding values in the caller's UTS namespace.
.PP
Use of UTS namespaces requires a kernel that is configured with the
.B CONFIG_UTS_NS
option.
.SH SEE ALSO
.BR nsenter (1),
.BR unshare (1),
.BR clone (2),
.BR getdomainname (2),
.BR gethostname (2),
.BR setns (2),
.BR uname (2),
.BR unshare (2),
.BR namespaces (7)
