nss-myhostname systemd Developer Lennart Poettering lennart@poettering.net nss-myhostname 8 nss-myhostname Provide hostname resolution for the locally configured system hostname. nss-myhostname.la Description nss-myhostname is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing hostname resolution for the locally configured system hostname as returned by gethostname2. Various software relies on an always-resolvable local hostname. When using dynamic hostnames, this is usually achieved by patching /etc/hosts at the same time as changing the host name. This however is not ideal since it requires a writable /etc file system and is fragile because the file might be edited by the administrator at the same time. nss-myhostname simply returns all locally configured public IP addresses, or, if none are configured, the IPv4 address 127.0.0.2 (which is on the local loopback) and the IPv6 address ::1 (which is the local host) for whatever system hostname is configured locally. Patching /etc/hosts is thus no longer necessary. To activate the NSS modules, has to be added to the line starting with "hosts:" in /etc/nsswitch.conf It is recommended to put last in the nsswitch.conf line to make sure that this mapping is only used as fallback, and any DNS or /etc/hosts based mapping takes precedence. Example # /etc/nsswitch.conf passwd: compat group: compat shadow: compat hosts: files dns myhostname networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis To test, use glibc's getent tool: $ 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 In this case the local hostname is omega. See Also systemd1, systemd-logind.service8, logind.conf5, loginctl1, pam.conf5, pam.d5, pam8, pam_loginuid8