
En algunas de mis máquinas, las actualizaciones desatendidas envían un correo electrónico para informarme que es necesario reiniciar y dice:
[reboot required] unattended-upgrades result for localhost: SUCCESS
Mientras que en otros, especifica el nombre de host correcto en lugar de localhost. ¿Dónde puedo cambiar esto para que especifique el nombre de host correctamente?
Respuesta1
Por lo que puedo decir, usa 127.0.0.1
o ::1
en /etc/hosts
.
Líneas como:
127.0.0.1 server.yourdomain.xx server localhost
::1 server.yourdomain.xx server localhost ip6-localhost ip6-loopback
hace que muestre mensajes con server.yourdomain.xx
Tested on Debian testing
Respuesta2
En nuestros sistemas, habría parecido deberse a diferencias en cómo el /usr/bin/unattended-upgrade
script python3 intenta descubrir el nombre de su host.
En algunas máquinas (Ubuntu 18.04) hace:
import os
#...
def host():
# type: () -> str
return os.uname()[1]
... mientras que en máquinas más nuevas (Ubuntu 22.04) sí lo hace:
import socket
#...
def host():
# type: () -> str
return socket.getfqdn()
Es la última versión host()
la que simplemente regresa "localhost"
porque eso es lo quesocket.getfqdn()
sin argumentos regresa.
Este cambio en el unattended-upgrade
guión fueintroducidoentre versiones1.3
y1.4
.
Esa solicitud de extracción ya incluye cierta discusión.acerca de la introducción de la regresión observada localhost
, y también sugiere una solución alternativa que realmente funciona:
En lugar de enumerar el nombre de host deseado /etc/hosts
como:
127.0.0.1 localhost
127.0.0.1 my-hostname
... enumerarlo como:
127.0.0.1 localhost
127.0.1.1 my-hostname
... todo lo que necesito ahora es comprenderpor quéusar 127.0.1.1
en lugar de 127.0.0.1
hace que esto funcione...
https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_solvingSirve para proporcionar cierta credibilidad adicional respecto de la corrección de la solución, pero en mi opinión todavía no proporciona suficientes antecedentes en cuanto a los mecanismos implicados y su justificación.
La página de manual de hostname
(1) tiene una sección sobre el FQDNque ayuda a comprender las complejidades de la resolución de nombres:
El método recomendado para configurar el FQDN es hacer que el nombre de host sea un alias para el nombre completo mediante
/etc/hosts
, DNS o NIS. Por ejemplo, si el nombre de host fuera "ursula
", uno podría tener una línea en/etc/hosts
la que se lea127.0.1.1 ursula.example.com ursula
Técnicamente: el FQDN es el nombre que
getaddrinfo
(3) devuelve para el nombre de host devuelto porgethostname
(2). El nombre de dominio DNS es la parte que sigue al primer punto.Por lo tanto, depende de la configuración del solucionador (normalmente en
/etc/host.conf
) cómo se puede cambiar. Por lo general, el archivo de hosts se analiza antes que DNS o NIS, por lo que lo más común es cambiar el FQDN en formato/etc/hosts
.
Respuesta3
Cambie el contenido del archivo relevante:etc/mailname
:
Si su paquete necesita saber qué nombre de host usar en (por ejemplo) mensajes de correo y noticias salientes que se generan localmente, debe usar el archivo
/etc/mailname
. Contendrá la parte después del nombre de usuario y el signo @ (arroba) para las direcciones de correo electrónico de los usuarios de la máquina (seguido de una nueva línea).
Generalmente ese es el nombre FQDN (ellargonombre) del servidor según lo resuelto por otros sistemas.
Para simplificar las cosas, simplemente reconfigure el paquete correspondiente. Para el valor predeterminado de Debian 10exim4paquete es en realidadexim4-config
:
dpkg-reconfigure -pcritical exim4-config
-pcritical
asegura que probablemente no se harán preguntas. Puede omitirlo o bajarlo para -plow
ver algunas o todas estas preguntas.
Como OP no está usandoexim4peromsmtp, para este caso la configuración se puede desencadenar con:
dpkg-reconfigure msmtp
Si esto nunca se hizo antes, es importante que la Create a system wide configuration file?
respuesta de la primera pregunta ( ) sea Sí, para poder recibir las preguntas de seguimiento.
También parece que, contrariamente aexim4, el script de configuración (una vez instalado, en /var/lib/dpkg/info/msmtp.config
) no comprueba /etc/mailname
, por lo que no sigue la política recomendada de Debian.