Como alterar permanentemente o nome de domínio do Debian NIS? Ou, onde o nome de domínio é armazenado?

0

Em um sistema Debian, hostname retorna o nome de host não qualificado do sistema, enquanto domainname retorna o nome de domínio (LAN). Por exemplo:

$ hostname
nas
$ domainname
lan

Eu sei que o nome do host está armazenado em /etc/hostname . Isso é bom. Assim, posso alterá-lo temporariamente chamando hostname othernas ou permanentemente editando /etc/hostname .

Mas como eu mudo o nome de domínio? Eu posso fazê-lo temporariamente chamando domainname otherlan , mas como alterá-lo permanentemente?

Todas as minhas tentativas de pesquisar o problema do Google apontaram para /etc/hostname , /etc/hosts , /etc/networks e /etc/network/interfaces ; mas eu verifiquei todos eles e não encontrei nenhuma referência a lan . Meu googling também mostrou as libc.so calls getdomainname e uname , mas novamente elas não me dizem onde as informações são realmente armazenadas no disco.

Outras respostas neste e em outros fóruns afirmam que /etc/hostname deve conter o nome completo do host e o nome do domínio é extraído dele. Isso não é verdade! Se eu colocar um nome de host totalmente qualificado em /etc/hostname , acabarei com um nome de host de nas.lan e um nome de domínio nada - que não causa problemas.

    
por Sod Almighty 17.02.2016 / 06:18

1 resposta

1

Os fóruns estão corretos; o nome do domínio DNS é obtido do nome do host, se presente (embora eu ache que as coisas funcionam melhor se forem inferidas via / etc / hosts). Não há nenhuma configuração explícita para isso.
(Eu tentei escrever minhas regras para como o Linux determina.)

  • Se hostname reportar um nome simples, então hostname -f parece primeiro usar / etc / hosts para resolvê-lo, então tente qualificá-lo com cada domínio em /etc/resolv.conf até encontrar um FQDN que exista no DNS. Assim, tanto /etc/hosts como DNS + /etc/resolv.conf são formas alternativas de definir o "nome de domínio DNS". Por exemplo, a seguinte entrada de hosts (assim como uma para ::1 ):

    127.0.0.1  nas.lan  nas  localhost
    

    resultaria em hostname -f relatórios "nas.lan".

No entanto, o nome do domínio NIS não está relacionado a nada disso. Não é o nome de domínio da LAN. Não é usado em conjunto com o nome do host de nenhuma maneira ou forma. É apenas lido pelo software cliente NIS / YP (ypbind) para determinar a qual servidor anexar, caso haja vários.

A maneira mais direta de configurar o domínio NIS seria através do sysctl kernel.domainname , geralmente em /etc/sysctl.conf ou /etc/sysctl.d/99-local.conf . Ao contrário do hostname (que também tem um sysctl similar), depois de procurar os scripts de init do Debian, parece que não existe nenhum arquivo dedicado em / etc para ele.

    
por 17.02.2016 / 06:39