2013-01-05 21:39:09 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
2019-03-14 16:40:58 +03:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2015-06-18 20:47:44 +03:00
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2019-03-14 16:29:37 +03:00
<!-- SPDX - License - Identifier: LGPL - 2.1+ -->
2013-01-05 21:39:09 +04:00
2018-07-18 03:25:57 +03:00
<refentry id= "nss-myhostname" conditional= 'ENABLE_NSS_MYHOSTNAME' >
2013-01-05 21:39:09 +04:00
2015-02-04 05:14:13 +03:00
<refentryinfo >
<title > nss-myhostname</title>
<productname > systemd</productname>
</refentryinfo>
<refmeta >
<refentrytitle > nss-myhostname</refentrytitle>
<manvolnum > 8</manvolnum>
</refmeta>
<refnamediv >
<refname > nss-myhostname</refname>
<refname > libnss_myhostname.so.2</refname>
<refpurpose > Provide hostname resolution for the locally
configured system hostname.</refpurpose>
</refnamediv>
<refsynopsisdiv >
<para > <filename > libnss_myhostname.so.2</filename> </para>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
2016-02-23 20:24:03 +03:00
<para > <command > nss-myhostname</command> is a plug-in module for the GNU Name Service Switch (NSS) functionality of
the GNU C Library (<command > glibc</command> ), primarily providing hostname resolution for the locally configured
system hostname as returned by
<citerefentry > <refentrytitle > gethostname</refentrytitle> <manvolnum > 2</manvolnum> </citerefentry> . The precise
hostnames resolved by this module are:</para>
2015-02-04 05:14:13 +03:00
<itemizedlist >
<listitem > <para > The local, configured hostname is resolved to
all locally configured IP addresses ordered by their scope, 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).</para> </listitem>
2016-02-19 06:31:38 +03:00
<listitem > <para > The hostnames <literal > localhost</literal> and
<literal > localhost.localdomain</literal> (as well as any hostname
ending in <literal > .localhost</literal> or <literal > .localhost.localdomain</literal> )
are resolved to the IP addresses 127.0.0.1 and ::1.</para> </listitem>
2015-02-04 05:14:13 +03:00
2017-10-13 10:10:26 +03:00
<listitem > <para > The hostname <literal > _gateway</literal> is
2015-02-04 05:14:13 +03:00
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.</para> </listitem>
</itemizedlist>
<para > Various software relies on an always-resolvable local
hostname. When using dynamic hostnames, this is traditionally
achieved by patching <filename > /etc/hosts</filename> at the same
time as changing the hostname. This is problematic since it
requires a writable <filename > /etc</filename> file system and is
fragile because the file might be edited by the administrator at
2014-08-03 09:11:12 +04:00
the same time. With <command > nss-myhostname</command> enabled,
2015-05-11 14:49:29 +03:00
changing <filename > /etc/hosts</filename> is unnecessary, and on
2014-08-03 09:11:12 +04:00
many systems, the file becomes entirely optional.</para>
2015-02-04 05:14:13 +03:00
2016-02-23 20:24:03 +03:00
<para > To activate the NSS modules, add <literal > myhostname</literal> to the line starting with
<literal > hosts:</literal> in <filename > /etc/nsswitch.conf</filename> .</para>
2015-02-04 05:14:13 +03:00
2016-02-23 20:24:03 +03:00
<para > It is recommended to place <literal > myhostname</literal> last in the <filename > nsswitch.conf</filename> '
<literal > hosts:</literal> line to make sure that this mapping is only used as fallback, and that any DNS or
<filename > /etc/hosts</filename> based mapping takes precedence.</para>
2015-02-04 05:14:13 +03:00
</refsect1>
<refsect1 >
<title > Example</title>
2016-02-23 20:24:03 +03:00
<para > Here is an example <filename > /etc/nsswitch.conf</filename> file that enables
<command > nss-myhostname</command> correctly:</para>
2015-02-04 05:14:13 +03:00
2018-11-27 19:02:20 +03:00
<!-- synchronize with other nss - * man pages and factory/etc/nsswitch.conf -->
2016-07-14 20:19:49 +03:00
<programlisting > passwd: compat mymachines systemd
group: compat mymachines systemd
2015-08-26 12:00:09 +03:00
shadow: compat
2015-02-04 05:14:13 +03:00
2016-10-24 19:58:03 +03:00
hosts: files mymachines resolve [!UNAVAIL=return] dns <command > myhostname</command>
2013-01-05 21:39:09 +04:00
networks: files
protocols: db files
services: db files
2015-08-26 12:00:09 +03:00
ethers: db files
rpc: db files
2013-01-05 21:39:09 +04:00
2014-02-14 18:56:19 +04:00
netgroup: nis</programlisting>
2013-01-05 21:39:09 +04:00
2015-02-04 05:14:13 +03:00
<para > To test, use <command > glibc</command> 's <command > getent</command> tool:</para>
2013-01-05 21:39:09 +04:00
2015-02-04 05:14:13 +03:00
<programlisting > $ getent ahosts `hostname`
::1 STREAM omega
::1 DGRAM
::1 RAW
2013-01-05 21:39:09 +04:00
127.0.0.2 STREAM
127.0.0.2 DGRAM
2014-02-14 18:56:19 +04:00
127.0.0.2 RAW</programlisting>
2013-01-05 21:39:09 +04:00
2014-08-03 09:11:12 +04:00
<para > In this case, the local hostname is <varname > omega</varname> .</para>
2013-01-05 21:39:09 +04:00
2015-02-04 05:14:13 +03:00
</refsect1>
2013-01-05 21:39:09 +04:00
2015-02-04 05:14:13 +03:00
<refsect1 >
<title > See Also</title>
<para >
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
2016-07-14 20:19:49 +03:00
<citerefentry > <refentrytitle > nss-systemd</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
2015-08-26 12:00:09 +03:00
<citerefentry > <refentrytitle > nss-resolve</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
2015-02-04 05:14:13 +03:00
<citerefentry > <refentrytitle > nss-mymachines</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
<citerefentry project= 'man-pages' > <refentrytitle > nsswitch.conf</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry project= 'man-pages' > <refentrytitle > getent</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry>
</para>
</refsect1>
2013-01-05 21:39:09 +04:00
</refentry>