
Auf einigen meiner Computer wird bei unbeaufsichtigten Upgrades eine E-Mail mit der Meldung gesendet, dass ein Neustart erforderlich ist. Darin steht:
[reboot required] unattended-upgrades result for localhost: SUCCESS
Auf anderen wird der korrekte Hostname anstelle von „localhost“ angegeben. Wo kann ich das ändern, damit der Hostname richtig angegeben wird?
Antwort1
Soweit ich das beurteilen kann, wird in oder 127.0.0.1
verwendet .::1
/etc/hosts
Zeilen wie:
127.0.0.1 server.yourdomain.xx server localhost
::1 server.yourdomain.xx server localhost ip6-localhost ip6-loopback
macht es Ausgabe von Nachrichten mit server.yourdomain.xx
Getestet auf Debian-Tests
Antwort2
Auf unseren Systemen lag es offenbar an Unterschieden in der Art und Weise, wie das /usr/bin/unattended-upgrade
Python3-Skript versucht, den Namen seines Hosts herauszufinden.
Auf einigen Maschinen (Ubuntu 18.04) passiert Folgendes:
import os
#...
def host():
# type: () -> str
return os.uname()[1]
... während dies auf neueren Maschinen (Ubuntu 22.04) der Fall ist:
import socket
#...
def host():
# type: () -> str
return socket.getfqdn()
Es ist die letztere Version, host()
die einfach zurückkehrt, "localhost"
denn das ist es, wassocket.getfqdn()
ohne Argumente gibt zurück.
Diese Änderung des unattended-upgrade
Skripts wareingeführtzwischen Versionen1.3
Und1.4
.
Dieser Pull-Request enthält bereits einige Diskussionendarüber, dass es zu der beobachteten localhost
Regression kommt, und es weist auch auf einen Workaround hin, der tatsächlich funktioniert:
Anstatt den gewünschten Hostnamen /etc/hosts
wie folgt aufzulisten:
127.0.0.1 localhost
127.0.0.1 my-hostname
... listen Sie es wie folgt auf:
127.0.0.1 localhost
127.0.1.1 my-hostname
... alles was ich jetzt brauche, ist ein Verständnis vonWarumDie Verwendung 127.0.1.1
anstelle von 127.0.0.1
lässt dies funktionieren ...
https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_die_Hostnamenauflösungträgt zwar dazu bei, die Richtigkeit der Lösung glaubwürdiger zu machen, liefert meiner Meinung nach jedoch immer noch nicht genügend Hintergrundinformationen zu den beteiligten Mechanismen und der Begründung.
Die Manpage zu hostname
(1) enthält einen Abschnitt über den FQDNdas hilft, die Feinheiten der Namensauflösung in den Griff zu bekommen:
Die empfohlene Methode zum Festlegen des FQDN besteht darin, den Hostnamen mit , DNS oder NIS als Alias für den vollqualifizierten Namen festzulegen
/etc/hosts
. Wenn der Hostname beispielsweise "ursula
" lautet, könnte eine Zeile mit/etc/hosts
folgendem Inhalt vorhanden sein:127.0.1.1 ursula.example.com ursula
Technisch: Der FQDN ist der Name, den
getaddrinfo
(3) für den von (2) zurückgegebenen Hostnamen zurückgibtgethostname
. Der DNS-Domänenname ist der Teil nach dem ersten Punkt.Daher hängt es von der Konfiguration des Resolvers (normalerweise in
/etc/host.conf
) ab, wie Sie ihn ändern können. Normalerweise wird die Hosts-Datei vor DNS oder NIS analysiert, daher ist es am üblichsten, den FQDN in zu ändern/etc/hosts
.
Antwort3
Ändern Sie den Inhalt der entsprechenden Datei:etc/mailname
:
Wenn Ihr Paket wissen muss, welcher Hostname (beispielsweise) für ausgehende Nachrichten und lokal generierte E-Mail-Nachrichten verwendet werden soll, sollten Sie die Datei verwenden
/etc/mailname
. Sie enthält den Teil nach dem Benutzernamen und dem @-Zeichen (at) für die E-Mail-Adressen der Benutzer auf dem Computer (gefolgt von einer neuen Zeile).
Normalerweise ist das der FQDN-Name (derlangDer Servername (engl.: Name) des Servers, wie er von anderen Systemen aufgelöst wird.
Um die Dinge einfacher zu machen, konfigurieren Sie einfach das entsprechende Paket neu. Für die Standardeinstellung von Debian 10exim4Paket ist es eigentlichexim4-config
:
dpkg-reconfigure -pcritical exim4-config
-pcritical
stellt sicher, dass wahrscheinlich keine Frage gestellt wird. Sie können es weglassen oder verringern, um -plow
einige oder alle dieser Fragen anzuzeigen.
Da OP nicht verwendetexim4Abermsmtp, in diesem Fall kann die Konfiguration mit folgendem ausgelöst werden:
dpkg-reconfigure msmtp
Wenn dies noch nie zuvor getan wurde, ist es wichtig, dass die Create a system wide configuration file?
Antwort auf die erste Frage ( ) „Ja“ lautet, um die Folgefragen zu erhalten.
Es scheint auch, dass im Gegensatz zuexim4, das Konfigurationsskript (nach der Installation in /var/lib/dpkg/info/msmtp.config
) sucht nicht nach /etc/mailname
und befolgt somit nicht die empfohlene Debian-Richtlinie.