A hostname is a unique name created to identify a machine on a network. In computer networking, a hostname is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication such as the World Wide Web, e-mail or Usenet. Hostnames may be simple names consisting of a single word or phrase, or they may be structured.
In Funtoo Linux
/etc/conf.d/hostname is the only configuration file for setting a hostname. In OpenRC framework
/etc/conf.d/foo is the configuration file for a corresponding Init script
/etc/init.d/foo. With the case of hostname, default value in
/etc/conf.d/hostname is set to localhost, means when system boots and OpenRC's
/etc/init.d/hostname script started a hostname getting only localhost name. How it looks? In your shell promt this will look in following way, an example for root:
localhost ~ # Hello :)
Let's play a bit with a configuration. Open
/etc/conf.d/hostname with your favorite editor and set a hostname of your choice. Below, I will use a real examples from one of my working test boxes.
localhost ~ # nano /etc/conf.d/hostname
Let's set it to hostname="oleg-stable.host.funtoo.org". Save the file and restart a hostname service:
localhost ~ # service hostname restart
Now, let's examine our changes, after a restarting a hostname
oleg-stable ~ # Hello :)
Notice, that in above output we seeing a shortened hostname and not a FQDN (Fully Qualified Domain Name). Don't be frustrated. This is how default bash promt
PS1 set. To get nice promts, please, follow http://www.funtoo.org/Prompt_Magic
Another way to test our settings is using a hostname command. Here we will show only some of it's features. Let's try to execute hostname command:
oleg-stable ~ # hostname oleg-stable.host.funtoo.org
Now we see our fully qualified domain name hostname just how we configured it in
/etc/conf.d/hostname in above paragraph. To get a short hostname we need to set -s (short) argument to hostname command.
oleg-stable ~ # hostname -s oleg-stable
Good! Hostname offers more then just displaying a system host name but can also set one. Let's try:
oleg-stable ~ # hostname foo.bar.baz oleg-stable ~ # hostname foo.bar.baz
As you can see, we changed a hostname on-the-fly. This is not recommended way.
Please, notice that using hostname command to configure will work temporary for a current session and will be reverted back to a value set in
/etc/conf.d/hostname file with next system restart.
Now that we got a brief description of a hostname and basic configuration steps, its time to reflect another important case which is directly related to a Funtoo Linux hostname generation, a hosts.
As per man page
hosts stands for static table lookup for hostnames and it's configuration file is
/etc/hosts. Here is how it looks
# Auto-generated hostname. Please do not remove this comment. 127.0.0.1 oleg-stable.host.funtoo.org oleg-stable localhost localhost.localdomain ::1 oleg-stable.host.funtoo.org oleg-stable localhost localhost.localdomain
As you can see it has entries from our
/etc/conf.d/hostname. As you may have guessed, in Funtoo Linux
/etc/hosts file entries are auto-generated, when OpenRC hostname service starts. Previously, it is used to edit
/etc/hosts manually. In Funtoo Linux there is no such need.
What about custom hosts entries? This can be easily configured with aliases. For example you want to have a hosts for your remote router or a computer in home LAN. Let's try to modify
/etc/conf.d/hostname with adding following - my remote computer oleg.distant.home has an IP 10.1.1.2:
oleg-stable ~ # echo 'aliases="10.1.12 oleg.distant.home"' >> /etc/conf.d/hostname oleg-stable ~ # service hostname restart
Examine our changes:
oleg-stable ~ # cat /etc/hosts
# Auto-generated hostname. Please do not remove this comment. 10.1.1.2 oleg.distant.home 127.0.0.1 oleg-stable.host.funtoo.org oleg-stable localhost localhost.localdomain ::1 oleg-stable.host.funtoo.org oleg-stable localhost localhost.localdomain