Veja estas perguntas e respostas relacionadas à U&L, intituladas: De onde a uname obtém suas informações? . Informações como o nome do host persistem em uma estrutura de dados no kernel do Linux, enquanto o sistema está em execução. Durante a inicialização do sistema, essas informações podem ser recuperadas por meio de uma variedade de mecanismos tipicamente específicos da distribuição.
Se você olhar para a man 2 uname
página do manual, há uma estrutura de dados mencionada lá:
struct utsname {
char sysname[]; /* Operating system name (e.g., "Linux") */
char nodename[]; /* Name within "some implementation-defined
network" */
char release[]; /* Operating system release (e.g., "2.6.28") */
char version[]; /* Operating system version */
char machine[]; /* Hardware identifier */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS or YP domain name */
#endif
};
O segundo elemento dessa estrutura nodename[]
é um local em que o nome do host é armazenado no kernel do Linux.
/ proc
Se você der uma olhada /proc/sys/kernel/hostname
, o nome do host também será exposto aqui. Este é um local virtual /proc
, mas fornece um método alternativo para acessar o nome do host. O nome do domínio do sistema também está aqui /proc/sys/kernel/domainname
,.
NOTA: De interesse, esses valores são específicos ao espaço para nome UTS .
Exemplo
$ sudo hostname
oldhost
$ sudo unshare --uts /bin/bash
$ sudo echo newhost > /proc/sys/kernel/hostname
$ hostname
newhost
$ exit
$ hostname
oldhost
Manipulando o Nome do Host
Nos sistemas com Systemd, você pode usar a ferramenta cli hostnamectl
para obter / definir o nome do host. Isso irá alterá-lo permanentemente entre as reinicializações.
$ sudo hostnamectl set-hostname --static somehostname
Você também pode descobrir seu valor através de sysctl
:
$ sudo sysctl -a | grep kernel.hostname
kernel.hostname = myhostname
Para lançamentos do Fedora, esta seção de perguntas e respostas do ask.fedoraproject.org aborda o tópico de maneira bem detalhada, intitulada: Configurando corretamente o nome do host - Fedora 20 no Amazon EC2 .