'\" t .TH "NSS\-MYHOSTNAME" "8" "" "systemd 241" "nss-myhostname" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" nss-myhostname, libnss_myhostname.so.2 \- Provide hostname resolution for the locally configured system hostname\&. .SH "SYNOPSIS" .PP libnss_myhostname\&.so\&.2 .SH "DESCRIPTION" .PP \fBnss\-myhostname\fR is a plug\-in module for the GNU Name Service Switch (NSS) functionality of the GNU C Library (\fBglibc\fR), primarily providing hostname resolution for the locally configured system hostname as returned by \fBgethostname\fR(2)\&. The precise hostnames resolved by this module are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The local, configured hostname is resolved to all locally configured IP addresses ordered by their scope, or \(em if none are configured \(em the IPv4 address 127\&.0\&.0\&.2 (which is on the local loopback) and the IPv6 address ::1 (which is the local host)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The hostnames "localhost" and "localhost\&.localdomain" (as well as any hostname ending in "\&.localhost" or "\&.localhost\&.localdomain") are resolved to the IP addresses 127\&.0\&.0\&.1 and ::1\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The hostname "_gateway" is resolved to all current default routing gateway addresses, ordered by their metric\&. This assigns a stable hostname to the current gateway, useful for referencing it independently of the current network configuration state\&. .RE .PP Various software relies on an always\-resolvable local hostname\&. When using dynamic hostnames, this is traditionally achieved by patching /etc/hosts at the same time as changing the hostname\&. This is problematic since it requires a writable /etc file system and is fragile because the file might be edited by the administrator at the same time\&. With \fBnss\-myhostname\fR enabled, changing /etc/hosts is unnecessary, and on many systems, the file becomes entirely optional\&. .PP To activate the NSS modules, add "myhostname" to the line starting with "hosts:" in /etc/nsswitch\&.conf\&. .PP It is recommended to place "myhostname" last in the nsswitch\&.conf\*(Aq "hosts:" line to make sure that this mapping is only used as fallback, and that any DNS or /etc/hosts based mapping takes precedence\&. .SH "EXAMPLE" .PP Here is an example /etc/nsswitch\&.conf file that enables \fBnss\-myhostname\fR correctly: .sp .if n \{\ .RS 4 .\} .nf passwd: compat mymachines systemd group: compat mymachines systemd shadow: compat hosts: files mymachines resolve [!UNAVAIL=return] dns \fBmyhostname\fR networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis .fi .if n \{\ .RE .\} .PP To test, use \fBglibc\fR\*(Aqs \fBgetent\fR tool: .sp .if n \{\ .RS 4 .\} .nf $ getent ahosts `hostname` ::1 STREAM omega ::1 DGRAM ::1 RAW 127\&.0\&.0\&.2 STREAM 127\&.0\&.0\&.2 DGRAM 127\&.0\&.0\&.2 RAW .fi .if n \{\ .RE .\} .PP In this case, the local hostname is \fIomega\fR\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBnss-systemd\fR(8), \fBnss-resolve\fR(8), \fBnss-mymachines\fR(8), \fBnsswitch.conf\fR(5), \fBgetent\fR(1)