systemd: Use NSS modules provided by systemd in nsswitch.conf

It allows a simplification to /etc/hosts.  Also correct some info about
FQDN in both sysv and systemd.
This commit is contained in:
Xi Ruoyao 2023-09-14 16:48:46 +08:00
parent efd11134bb
commit ba40e32566
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
3 changed files with 58 additions and 37 deletions

View File

@ -320,7 +320,7 @@ localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</userinput></scr
<para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the <para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the
following:</para> following:</para>
<screen><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF" <screen revision='sysv'><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<literal># Begin /etc/nsswitch.conf <literal># Begin /etc/nsswitch.conf
passwd: files passwd: files
@ -335,6 +335,24 @@ services: files
ethers: files ethers: files
rpc: files rpc: files
# End /etc/nsswitch.conf</literal>
EOF</userinput></screen>
<screen revision='systemd'><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<literal># Begin /etc/nsswitch.conf
passwd: files systemd
group: files systemd
shadow: files systemd
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
# End /etc/nsswitch.conf</literal> # End /etc/nsswitch.conf</literal>
EOF</userinput></screen> EOF</userinput></screen>

View File

@ -178,9 +178,10 @@ EOF</userinput></screen>
<secondary>/etc/hosts</secondary> <secondary>/etc/hosts</secondary>
</indexterm> </indexterm>
<para>Decide on the IP address, fully-qualified domain name (FQDN), and <para>Decide on a fully-qualified domain name (FQDN), and possible aliases
possible aliases for use in the <filename>/etc/hosts</filename> file. The for use in the <filename>/etc/hosts</filename> file. If using static IP
syntax is:</para> addresses, you'll also need to decide on an IP address. The syntax
for a hosts file entry is:</para>
<screen><literal>IP_address myhost.example.org aliases</literal></screen> <screen><literal>IP_address myhost.example.org aliases</literal></screen>
@ -197,11 +198,18 @@ EOF</userinput></screen>
<para>x can be any number in the range 16-31. y can be any number in the <para>x can be any number in the range 16-31. y can be any number in the
range 0-255.</para> range 0-255.</para>
<para>A valid private IP address could be 192.168.1.1. A valid FQDN for <para>A valid private IP address could be 192.168.1.1.</para>
this IP could be lfs.example.org.</para>
<para>Even if not using a network card, a valid FQDN is still required. <para>If the computer is to be visible to the Internet, a valid FQDN
This is necessary for certain programs to operate correctly.</para> can be the domain name itself, or a string resulted by concatenating a
prefix (often the hostname) and the domain name with a <quote>.</quote>
character. And, you need to contact the domain provider to resolve the
FQDN to your public IP address.</para>
<para>Even if the computer is not visible to the Internet, a FQDN is
still needed for certain programs, such as MTAs, to operate properly.
A special FQDN, <literal>localhost.localdomain</literal>, can be used
for this purpose.</para>
<para>Create the <filename>/etc/hosts</filename> file by running:</para> <para>Create the <filename>/etc/hosts</filename> file by running:</para>

View File

@ -316,27 +316,18 @@ EOF</userinput></screen>
<para>x can be any number in the range 16-31. y can be any number in the <para>x can be any number in the range 16-31. y can be any number in the
range 0-255.</para> range 0-255.</para>
<para>A valid private IP address could be 192.168.1.1. A valid FQDN for <para>A valid private IP address could be 192.168.1.1.</para>
this IP could be lfs.example.org.</para>
<para>Even if not using a network card, a valid FQDN is still required. <para>If the computer is to be visible to the Internet, a valid FQDN
This is necessary for certain programs, such as MTAs, to operate properly.</para> can be the domain name itself, or a string resulted by concatenating a
prefix (often the hostname) and the domain name with a <quote>.</quote>
character. And, you need to contact the domain provider to resolve the
FQDN to your public IP address.</para>
<!-- <para>Even if the computer is not visible to the Internet, a FQDN is
<para>Create the /etc/hosts file using the following command:</para> still needed for certain programs, such as MTAs, to operate properly.
A special FQDN, <literal>localhost.localdomain</literal>, can be used
<screen role="nodump"><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF" for this purpose.</para>
<literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts</literal>
EOF</userinput></screen>
-->
<para>Create the <filename>/etc/hosts</filename> file using the following <para>Create the <filename>/etc/hosts</filename> file using the following
command:</para> command:</para>
@ -344,28 +335,32 @@ EOF</userinput></screen>
<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF" <screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
<literal># Begin /etc/hosts <literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost <replaceable>&lt;192.168.0.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>[alias1] [alias2] ...</replaceable>
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> ::1 ip6-localhost ip6-loopback
<replaceable>&lt;192.168.0.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2] ...</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes ff02::1 ip6-allnodes
ff02::2 ip6-allrouters ff02::2 ip6-allrouters
# End /etc/hosts</literal> # End /etc/hosts</literal>
EOF</userinput></screen> EOF</userinput></screen>
<para>The <replaceable>&lt;192.168.0.2&gt;</replaceable>, <para>The <replaceable>&lt;192.168.0.2&gt;</replaceable> and
<replaceable>&lt;FQDN&gt;</replaceable>, and <replaceable>&lt;FQDN&gt;</replaceable> values need to be
<replaceable>&lt;HOSTNAME&gt;</replaceable> values need to be
changed for specific uses or requirements (if assigned an IP address by a changed for specific uses or requirements (if assigned an IP address by a
network/system administrator and the machine will be connected to an network/system administrator and the machine will be connected to an
existing network). The optional alias name(s) can be omitted, and the existing network). The optional alias name(s) can be omitted, and the
<replaceable>&lt;192.168.0.2&gt;</replaceable> line can be omitted if you <replaceable>&lt;192.168.0.2&gt;</replaceable> line can be omitted if you
are using a connection configured with DHCP or IPv6 Autoconfiguration.</para> are using a connection configured with DHCP or IPv6 Autoconfiguration,
or using <literal>localhost.localdomain</literal> as the FQDN.</para>
<para>The <filename>/etc/hostname</filename> does not contain entries
for <literal>localhost</literal>,
<literal>localhost.localdomain</literal>, or the hostname (without a
domain) because they are handled by the
<systemitem class='library'>myhostname</systemitem> NSS module, read
the man page <filename>nss-myhostname(8)</filename> for details.</para>
<para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents <para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents
the IPv6 loopback interface. 127.0.1.1 is a loopback entry reserved the IPv6 loopback interface.</para>
specifically for the FQDN.</para>
</sect2> </sect2>