Alterações no / etc / hosts não são reconhecidas pelos comandos do shell até efetuar logout e log in

3

Eu notei esse comportamento no meu servidor hoje e gostaria de saber mais sobre o que está acontecendo.

Ao emitir o comando w enquanto ssh'ed no meu servidor RHEL 6, eu estava tentando fazer com que o campo FROM imprimisse o nome do host em vez do IP do cliente SSH. Observe que eu uso 8.8.8.8 para DNS e que a resolução do google.com funciona bem com ping , por exemplo.

Então eu editei / etc / hosts no servidor SSH para incluir uma entrada para o cliente. Pingar o cliente pelo nome do host agora funciona bem, mas w ainda exibe o endereço IP no campo FROM.

Basta fazer o logout e efetuar login novamente e emitir w novamente permitiu que o campo FROM listasse o cliente SSH pelo nome do host que eu configurei em / etc / hosts.

Minha pergunta é: por que o logout / login foi necessário? O que mudou ou foi atualizado após o login?

Estou usando o bash-4.1.2-33.el6_7.1, o mais recente disponível na base do RHEL 6.

    
por JohnTheCrow 15.10.2015 / 01:22

1 resposta

3

w/var/run/utmp para descobrir quem está conectado e de onde eles fizeram login. Os registros utmp são atualizados quando um usuário efetua login ou logout.

Se não houvesse DNS ou /etc/hosts de entrada para o IP no momento em que o usuário efetuou login , o campo hostname em utmp será deixado vazio pelo processo de login (sshd neste caso ).

Quando você efetuou logout e logou novamente após adicionar a entrada /etc/hosts , sshd realizou uma pesquisa no IP e, desta vez, encontrou um nome de host, podendo adicionar os dados corretos ao campo hostname em utmp .

veja man 5 utmp para detalhes sobre o formato de arquivo de /var/run/utmp

    
por 15.10.2015 / 02:25

Tags