Atualizações autônomas chamam minha máquina de "localhost" em vez de seu nome de host

Atualizações autônomas chamam minha máquina de "localhost" em vez de seu nome de host

Em algumas das minhas máquinas, as atualizações autônomas enviam um e-mail informando que é necessária uma reinicialização e dizem:

[reboot required] unattended-upgrades result for localhost: SUCCESS

Enquanto em outros, especifica o nome do host correto em vez de localhost. Onde posso alterar isso para especificar o nome do host corretamente?

Responder1

Pelo que eu sei, ele usa o 127.0.0.1or ::1in /etc/hosts.

Linhas como:

127.0.0.1  server.yourdomain.xx server localhost
::1 server.yourdomain.xx server localhost ip6-localhost ip6-loopback

faz com que ele produza mensagens com server.yourdomain.xx
testes Tested on Debian

Responder2

Em nossos sistemas, isso pareceria ser devido a diferenças em como o /usr/bin/unattended-upgradescript python3 tenta descobrir o nome de seu host.

Em algumas máquinas (Ubuntu 18.04) isso acontece:

import os

#...

def host():
    # type: () -> str
    return os.uname()[1]

... enquanto em máquinas mais recentes (Ubuntu 22.04) isso acontece:

import socket

#...

def host():
    # type: () -> str
    return socket.getfqdn()

É a última versão host()que simplesmente retorna "localhost"porque é isso quesocket.getfqdn()sem argumentos retorna.

Essa mudança no unattended-upgraderoteiro foiintroduzidoentre versões1.3e1.4.

Essa solicitação pull já inclui alguma discussãosobre isso, introduzindo a localhostregressão observada, e também sugere uma solução alternativa que realmente funciona:

Em vez de listar o nome do host desejado /etc/hostscomo:

127.0.0.1 localhost
127.0.0.1       my-hostname

... liste-o como:

127.0.0.1 localhost
127.0.1.1       my-hostname

... tudo que preciso agora é uma compreensão depor queusar 127.0.1.1em vez de 127.0.0.1faz isso funcionar ...

https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolutionserve para fornecer alguma credibilidade extra quanto à correcção da solução, mas para mim ainda não fornece informações suficientes sobre os mecanismos envolvidos e a fundamentação.

A página de manual para hostname(1) possui uma seção no FQDNisso ajuda a entender as complexidades da resolução de nomes:

O método recomendado para configurar o FQDN é fazer com que o nome do host seja um alias para o nome totalmente qualificado usando /etc/hosts, DNS ou NIS. Por exemplo, se o nome do host for " ursula", pode-se ter uma linha na /etc/hostsqual se lê

127.0.1.1 ursula.example.com ursula

Tecnicamente: O FQDN é o nome getaddrinfo(3) retornado para o nome do host retornado por gethostname(2). O nome de domínio DNS é a parte após o primeiro ponto.

Portanto, depende da configuração do resolvedor (geralmente em /etc/host.conf) como você pode alterá-lo. Normalmente o arquivo hosts é analisado antes do DNS ou NIS, por isso é mais comum alterar o FQDN no formato /etc/hosts.

Responder3

Altere o conteúdo do arquivo relevante:etc/mailname:

A política do Debian diz:

Se o seu pacote precisa saber qual nome de host usar (por exemplo) em notícias de saída e mensagens de email geradas localmente, você deve usar o arquivo /etc/mailname. Ele conterá a parte após o nome de usuário e o sinal @ (arroba) para endereços de e-mail de usuários na máquina (seguido por uma nova linha).

Geralmente esse é o nome FQDN (olongonome) do servidor conforme resolvido por outros sistemas.

Para simplificar as coisas, basta reconfigurar o pacote relevante. Para o padrão do Debian 10exim4pacote é na verdadeexim4-config:

dpkg-reconfigure -pcritical exim4-config

-pcriticalgarante que provavelmente nenhuma pergunta será feita. Você pode omiti-lo ou diminuí-lo para -plowver algumas ou todas essas perguntas.

Como o OP não está usandoexim4masmsmtp, para este caso a configuração pode ser acionada com:

dpkg-reconfigure msmtp

Se isso nunca foi feito antes, é importante que a Create a system wide configuration file?resposta da primeira pergunta ( ) seja Sim, para obter as perguntas de acompanhamento.

Parece também que, ao contrário do queexim4, o script de configuração (uma vez instalado, em /var/lib/dpkg/info/msmtp.config) não verifica /etc/mailname, portanto não segue a política Debian recomendada.

informação relacionada