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>
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 >
2013-02-14 07:46:37 +04:00
<para > <filename > nss-myhostname.la</filename> </para>
2013-01-05 21:39:09 +04:00
</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> )
2013-06-27 23:51:44 +04:00
providing hostname resolution for the locally configured system
2013-01-05 21:39:09 +04:00
hostname as returned by
<citerefentry > <refentrytitle > gethostname</refentrytitle> <manvolnum > 2</manvolnum> </citerefentry> .
2013-06-27 23:51:44 +04:00
Various software relies on an always-resolvable local hostname. When
using dynamic hostnames, this is usually achieved by patching
2013-01-05 21:39:09 +04:00
<filename > /etc/hosts</filename> at the same time as changing the host
name. This however is not ideal 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. <command > nss-myhostname</command>
2013-06-27 23:51:44 +04:00
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
2013-01-05 21:39:09 +04:00
loopback) and the IPv6 address ::1 (which is the local host) for
whatever system hostname is configured locally. Patching
<filename > /etc/hosts</filename> is thus no longer necessary.</para>
<para > To activate the NSS modules, <option > myhostname</option>
has to be added to the line starting with "<varname > hosts:</varname> " in
<filename > /etc/nsswitch.conf</filename> </para>
<para > It is recommended to put <option > myhostname</option>
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>
2014-02-14 18:56:19 +04:00
<programlisting > # /etc/nsswitch.conf
2013-01-05 21:39:09 +04:00
passwd: compat
group: compat
shadow: compat
hosts: files dns <varname > myhostname</varname>
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> ,
<citerefentry > <refentrytitle > systemd-logind.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > logind.conf</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > loginctl</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > pam.conf</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > pam.d</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > pam</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > pam_loginuid</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry>
</para>
</refsect1>
</refentry>