2013-01-05 21:39:09 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2015-06-18 20:47:44 +03:00
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2013-01-05 21:39:09 +04:00
<!--
This file is part of systemd.
Copyright 2011 Lennart Poettering
Copyright 2013 Tom Gundersen
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http: / / w w w . g n u . o r g / l i c e n s e s /> .
-->
2013-02-03 07:47:47 +04:00
<refentry id= "nss-myhostname" conditional= 'HAVE_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>
<authorgroup >
<author >
<contrib > Developer</contrib>
<firstname > Lennart</firstname>
<surname > Poettering</surname>
<email > lennart@poettering.net</email>
</author>
</authorgroup>
</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>
<para > <command > nss-myhostname</command> is a plugin 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>
<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>
<listitem > <para > The hostname <literal > localhost</literal> is
resolved to the IP addresses 127.0.0.1 and
::1.</para> </listitem>
<listitem > <para > The hostname <literal > gateway</literal> 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.</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
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
2015-02-04 05:14:13 +03:00
many systems the file becomes entirely optional.</para>
<para > To activate the NSS modules, <literal > myhostname</literal>
has to be added to the line starting with
<literal > hosts:</literal> in
<filename > /etc/nsswitch.conf</filename> .</para>
<para > It is recommended to place <literal > myhostname</literal>
last in the <filename > nsswitch.conf</filename> line to make sure
that this mapping is only used as fallback, and any DNS or
<filename > /etc/hosts</filename> based mapping takes
precedence.</para>
</refsect1>
<refsect1 >
<title > Example</title>
<para > Here's an example <filename > /etc/nsswitch.conf</filename>
file, that enables <command > myhostname</command> correctly:</para>
<programlisting > passwd: compat
group: compat
shadow: compat
hosts: files dns mymachines <command > myhostname</command>
2013-01-05 21:39:09 +04:00
networks: files
protocols: db files
services: db files
2015-02-04 05:14:13 +03:00
ethers: db files
r pc: 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
2015-02-04 05:14:13 +03: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> ,
<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>