2013-01-05 21:39:09 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
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
<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>
2015-01-07 19:19:46 +03:00
<refname > libnss_myhostname.so.2</refname>
2013-06-27 23:51:44 +04:00
<refpurpose > Provide hostname resolution for the locally
2013-01-05 21:39:09 +04:00
configured system hostname.</refpurpose>
</refnamediv>
<refsynopsisdiv >
2015-01-07 19:14:04 +03:00
<para > <filename > libnss_myhostname.so.2</filename> </para>
2013-01-05 21:39:09 +04:00
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
2015-01-07 19:14:04 +03:00
<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
2015-01-07 19:40:10 +03:00
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>
2015-01-07 19:14:04 +03:00
<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 changing
<filename > /etc/hosts</filename> is unncessary, and on
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>
2013-01-05 21:39:09 +04:00
</refsect1>
<refsect1 >
<title > Example</title>
2015-01-07 19:14:04 +03:00
<para > Here's an example
<filename > /etc/nsswitch.conf</filename> file, that
enables <command > myhostname</command>
correctly:</para>
2013-01-05 21:39:09 +04:00
2015-01-07 19:14:04 +03:00
<programlisting > passwd: compat
2013-01-05 21:39:09 +04:00
group: compat
shadow: compat
2015-01-07 19:40:10 +03:00
hosts: files dns mymachines <command > myhostname</command>
2013-01-05 21:39:09 +04:00
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
2014-02-14 18:56:19 +04:00
netgroup: nis</programlisting>
2013-01-05 21:39:09 +04:00
<para > To test, use <command > glibc</command> 's <command > getent</command> tool:</para>
2014-02-14 18:56:19 +04:00
<programlisting > $ getent ahosts `hostname`
2013-01-05 21:39:09 +04:00
::1 STREAM omega
::1 DGRAM
::1 RAW
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
2013-06-27 23:51:44 +04:00
<para > In this case the local hostname is <varname > omega</varname> .</para>
2013-01-05 21:39:09 +04:00
</refsect1>
<refsect1 >
<title > See Also</title>
<para >
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
2015-01-07 19:40:10 +03:00
<citerefentry > <refentrytitle > nss-mymachines</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
2015-01-07 19:14:04 +03:00
<citerefentry project= 'man-pages' > <refentrytitle > nsswitch.conf</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry project= 'man-pages' > <refentrytitle > getent</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry>
2013-01-05 21:39:09 +04:00
</para>
</refsect1>
</refentry>