Short or long hostname ?


For the last ten years or so, I've defined the short hostname in
/etc/hostname and the FQDN in /etc/hosts. Now I wanted to double-check
this information, which eventually led me to this page:

<a href="" title=""></a>

Now I admit I'm even more confused than before.

Is there some reliable piece of information on this subject for CentOS ?




Re: Short or long hostname ?

By Johnny Hughes v... at 04/10/2019 - 09:23

IMHO for those having proper DNS in place, the hostname should be set to
the FQDN in whatever place it is supposed to be set. I quite feel there is
something wrong if the only place where the FQDN is listed is the
/etc/hosts file.

I'm not very happy with how the issue was handled in Linux and the
different distributions in the last decades. Not to mention the
inconsistency in the relevant man pages.

I found the info mentioned in the FreeBSD man pages quite helpful even if
it has to be "translated" to Linux. See the excerpt of the mentioned man
pages below. If you believe this is heresy to be posted here, please don't
read it :-)


root@freebsd:~ # man hostname
HOSTNAME(1) FreeBSD General Commands Manual

hostname - set or print name of current host system

hostname [-f] [-s | -d] [name-of-host]

The hostname utility prints the name of the current host. The
can set the hostname by supplying an argument; this is usually done in
the initialization script /etc/rc.d/hostname, normally run at boot time.
This script uses the hostname variable in /etc/rc.conf.

root@freebsd:~ # man rc.conf
RC.CONF(5) FreeBSD File Formats Manual

rc.conf - system configuration information

The file rc.conf contains descriptive information about the local host
hostname (str) The fully qualified domain name (FQDN) of this host on
the network. This should almost certainly be set to
something meaningful, even if there is no network connection.
If dhclient(8) is used to set the hostname via DHCP, this
variable should be set to an empty string. Within a jail(8)
the hostname is generally already set and this variable may
absent. If this value remains unset when the system is done
booting your console login will display the default hostname
of "Amnesiac".

Re: Short or long hostname ?

By Jonathan Billings at 04/10/2019 - 17:19

On Apr 10, 2019, at 09:23, Simon Matter via CentOS < ... at centos dot org> wrote:
If you ever plan on using Kerberos, you want the host name to use FQDN, otherwise some krb5 stuff can break.

Jonathan Billings < ... at negate dot org>

Re: Short or long hostname ?

By Valeri Galtsev at 04/10/2019 - 10:17

On 4/10/19 8:23 AM, Simon Matter via CentOS wrote:
Well, I am unhappy for about as long about /etc/hosts and how name
resolution "should" happen which it doesn't, namely, if
/etc/nsswitch.conf says

hosts: files dns

then ideally /etc/hosts should be used first, then nameservers. However
(and this is true both for Linux and FreeBSD), some commands never look
into /etc/hosts (e.g., command host), whereas some do use /etc/hosts
(e.g., command ping).


Re: Short or long hostname ?

By Johnny Hughes v... at 04/10/2019 - 11:13

Well, in case of the host command it seems clear that it doesn't look up
/etc/hosts as it is a "DNS lookup utility", as the man page states, and
not a general name resolution utility. I had to learn this, guess how.

But all in all it's a bit of a mess, yes. Unfortunately I'm tempted to
expect that systemd-resolved will even make it worse :-)


Re: Short or long hostname ?

By Johnny Hughes v... at 04/12/2019 - 01:28

It's my impression that trying to resolve a host on a Linux system (and
also other *nix like systems) is best done with the getent utility:

getent hosts <hostname>

It shows what other programs see as well.


Re: Short or long hostname ?

By nux at 04/10/2019 - 05:42

How I do it ( and always done it):

hostnamectl set-hostname foobar.localdomain

echo foobar.localdomain foobar >> /etc/hosts
echo ::1 foobar.localdomain foobar >> /etc/hosts