On 4/10/19 8:23 AM, Simon Matter via CentOS wrote:>> Hi, >> >> 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: >> >> * >> https://serverfault.com/questions/331936/setting-the-hostname-fqdn-or-short-name >> >> Now I admit I'm even more confused than before. >> >> Is there some reliable piece of information on this subject for CentOS ? > > 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.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). Valeri> > 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 :-) > > Regards, > Simon > > ----%>------------------------------- > root at freebsd:~ # man hostname > HOSTNAME(1) FreeBSD General Commands Manual > HOSTNAME(1) > > NAME > hostname - set or print name of current host system > > SYNOPSIS > hostname [-f] [-s | -d] [name-of-host] > > DESCRIPTION > The hostname utility prints the name of the current host. The > super-user > 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 at freebsd:~ # man rc.conf > RC.CONF(5) FreeBSD File Formats Manual > RC.CONF(5) > > NAME > rc.conf - system configuration information > > DESCRIPTION > 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". > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > https://lists.centos.org/mailman/listinfo/centos >-- ++++++++++++++++++++++++++++++++++++++++ Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247 ++++++++++++++++++++++++++++++++++++++++
> > > On 4/10/19 8:23 AM, Simon Matter via CentOS wrote: >>> Hi, >>> >>> 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: >>> >>> * >>> https://serverfault.com/questions/331936/setting-the-hostname-fqdn-or-short-name >>> >>> Now I admit I'm even more confused than before. >>> >>> Is there some reliable piece of information on this subject for CentOS >>> ? >> >> 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. > > 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).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 :-) Regards, Simon> > Valeri > >> >> 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 :-) >> >> Regards, >> Simon >> >> ----%>------------------------------- >> root at freebsd:~ # man hostname >> HOSTNAME(1) FreeBSD General Commands Manual >> HOSTNAME(1) >> >> NAME >> hostname - set or print name of current host system >> >> SYNOPSIS >> hostname [-f] [-s | -d] [name-of-host] >> >> DESCRIPTION >> The hostname utility prints the name of the current host. The >> super-user >> 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 at freebsd:~ # man rc.conf >> RC.CONF(5) FreeBSD File Formats Manual >> RC.CONF(5) >> >> NAME >> rc.conf - system configuration information >> >> DESCRIPTION >> 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". >> >> _______________________________________________ >> CentOS mailing list >> CentOS at centos.org >> https://lists.centos.org/mailman/listinfo/centos >> > > -- > ++++++++++++++++++++++++++++++++++++++++ > Valeri Galtsev > Sr System Administrator > Department of Astronomy and Astrophysics > Kavli Institute for Cosmological Physics > University of Chicago > Phone: 773-702-4247 > ++++++++++++++++++++++++++++++++++++++++ > _______________________________________________ > CentOS mailing list > CentOS at centos.org > https://lists.centos.org/mailman/listinfo/centos >
>> >> >> On 4/10/19 8:23 AM, Simon Matter via CentOS wrote: >>>> Hi, >>>> >>>> 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: >>>> >>>> * >>>> https://serverfault.com/questions/331936/setting-the-hostname-fqdn-or-short-name >>>> >>>> Now I admit I'm even more confused than before. >>>> >>>> Is there some reliable piece of information on this subject for CentOS >>>> ? >>> >>> 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. >> >> 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). > > 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.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. Regards, Simon