Como alterar permanentemente o nome do host no Fedora 21

35

Ouvi dizer que mudar o nome do host nas novas versões do fedora é feito com o hostnamectlcomando Além disso, recentemente (e com sucesso) alterei meu nome de host no Arch Linux com este método. No entanto, ao executar:

[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain

As alterações não são preservadas após uma reinicialização (ao contrário do que muitas pessoas afirmam). O que está errado?

  • Eu realmente não quero editar /etc/hostnamemanualmente.

Devo também notar que este é um fedora completamente de estoque. Ainda nem consegui instalar meus aplicativos principais.

PythonNut
fonte
Isso também tinha informações semelhantes sobre o problema: ask.fedoraproject.org/en/question/37413/… & this: dbaora.com/install-fedora-20
slm
De fato, esta é uma das minhas fontes. No entanto, nenhuma das soluções que eu poderia extrair a partir dessa página trabalhou ...
PythonNut
Recentemente, você instalou / configurou este sistema? O problema está presente desde a instalação? Também há algum erro com esses hostnamectlcomandos? O link para o bug do bugzilla que algo postou parece ser sua melhor pista.
slm
Eu instalei em 01/10/14, e desde então os hostnamectlcomandos não funcionaram, mas agora eles funcionam.
PythonNut
O bug associado à solução aceita foi apenas um momento infeliz para você. Eles o consertaram a montante e deve estar trabalhando para futuros usuários.
slm

Respostas:

39

O comando para definir o nome do host é definitivamente hostnamectl,.

root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"

Aqui está uma fonte adicional que descreve essa funcionalidade um pouco mais, intitulada: Configurando corretamente o nome do host - Fedora 20 no Amazon EC2 .

Além disso, a página de manual para hostnamectl:

HOSTNAMECTL(1)                    hostnamectl                   HOSTNAMECTL(1)

NAME
       hostnamectl - Control the system hostname

SYNOPSIS
       hostnamectl [OPTIONS...] {COMMAND}

DESCRIPTION
       hostnamectl may be used to query and change the system hostname and
       related settings.

       This tool distinguishes three different hostnames: the high-level
       "pretty" hostname which might include all kinds of special characters
       (e.g. "Lennart's Laptop"), the static hostname which is used to
       initialize the kernel hostname at boot (e.g. "lennarts-laptop"), and
       the transient hostname which is a default received from network
       configuration. If a static hostname is set, and is valid (something
       other than localhost), then the transient hostname is not used.

       Note that the pretty hostname has little restrictions on the characters
       used, while the static and transient hostnames are limited to the
       usually accepted characters of Internet domain names.

       The static hostname is stored in /etc/hostname, see hostname(5) for
       more information. The pretty hostname, chassis type, and icon name are
       stored in /etc/machine-info, see machine-info(5).

       Use systemd-firstboot(1) to initialize the system host name for mounted
       (but not booted) system images.

Existe um bug no Fedora 21 em que o SELinux impede o acesso ao hostnametl, encontrado aqui, intitulado: Bug 1133368 - O SELinux está impedindo o systemd-hostnam de 'desvincular' o acesso ao arquivo hostname .

Este bug parece estar relacionado. Há um problema com os contextos do SELinux que não estão sendo aplicados corretamente ao arquivo /etc/hostnamedurante a instalação. Isso se manifesta na ferramenta que hostnamectlnão consegue manipular o arquivo /etc/hostname. Esse mesmo segmento ofereceu esta solução alternativa:

$sudo restorecon -v /etc/hostname

NOTA: Esses patches foram aplicados ao Anaconda (a ferramenta de instalação) para que esse problema desapareça no futuro para novos usuários.

alguma coisa alguma coisa
fonte
3

A causa provável para isso é o seu cliente DHCP. Se você estiver usando o dhcpcd, o que é comum, a solução é adicionar a seguinte linha a /etc/dhcpcd.conf:

nohook hostname

Isso impede que o dhcpcd chame o script que altera o nome do host do sistema.

Por padrão, o dhcpcd executa todos os ganchos presentes /lib/dhcpcd/dhcpcd-run-hooks(o caminho pode ser diferente no seu sistema). O uso nohookdesativa os específicos.

Patrick
fonte
1
Tanto para as minhas 21 instalações quanto para o couro cru, /etc/dhcpd.confnão existe. Além disso, systemctl status dhcpcdretornanot-found (Reason: No such file or directory)
PythonNut 16/10