Onde o bash obtém seus dados de nome de host para definir HOSTNAME e como posso alterá-lo permanentemente?

0

Eu sei que você pode fazer algo assim:

export HOSTNAME=xyz

echo $HOSTNAME

E você verá as alterações feitas. No entanto, onde o bash lê na inicialização para definir essa variável de ambiente? Eu sei que você pode, é claro, escrever a instrução de exportação em .bashrc , mas isso parece mais uma solução do que uma solução real.

Eu também tentei editar /etc/hosts , mas as alterações feitas não sobrevivem a uma reinicialização.

Alguma sugestão?

    
por sherrellbc 05.12.2014 / 16:49

1 resposta

1

Depende da sua distribuição: você pode fazer em 3 etapas

  1. Edite o hostname-file da sua distribuição (veja abaixo)

    sudo nano /etc/hostname
    
  2. Dê os comandos:

    sudo hostname YOUR_NEW_HOSTNAME  # to change it for this session  
    hostname                         # just to check it  
    
  3. Após a edição, o arquivo /etc/hosts

    sudo nano /etc/hosts
    

Debian / Ubuntu
Você precisa editar o arquivo /etc/hostname :
substitua o nome real pelo novo.

Slackware Suse e Opensuse
O arquivo a ser editado é /etc/HOSTNAME :
substitua o nome real pelo novo.

Redhat, CentOS, Fedora
O arquivo a ser editado é /etc/sysconfig/network :
você tem que substituir o nome na linha onde você encontra HOSTNAME=OldName.OldDomain

Nota: se você não estiver nos sudoers , poderá obter privilégios de root, por exemplo, com su - e depois de fornecer os mesmos comandos sem sudo .

Em algumas (talvez antigas), a distribuição Debian baseada é usada /etc/init.d/hostname.sh no momento da inicialização, onde está escrito /etc/hostname oldname . Para torná-lo eficaz você tem que mudar lá também.

Para uma solução válida até a próxima reinicialização, você pode usar hostname newname .
Provavelmente, ele não aparecerá em seu shell atual porque as variáveis estão definidas na abertura (você pode corrigi-lo manualmente ou trabalhar em um novo shell).

De man hostname na seção SET NAME

When called with one argument or with the --file option, the commands set the host name or the NIS/YP domain name. hostname uses the sethostname(2) function, while all of the three domainname, ypdomainname and nisdomain‐ name use setdomainname(2). Note, that this is effective only until the next reboot. Edit /etc/hostname for permanent change.

    
por 06.12.2014 / 12:51