Wie kann der Hostname in Linux zuverlässig gesteuert werden?

Wie kann der Hostname in Linux zuverlässig gesteuert werden?

Ich versuche, den tatsächlichen Hostnamen während der DHCP-AP-Zuordnung zu ermitteln und zu kontrollieren.

Änderungen an der Datei /etc/hostname unterbrechen sudo.

Eine Überprüfung von journalctl -u NetworkManager zeigt, dass Network Manager sich selbst konsequent auf den Wert in der obigen Datei einstellt. In den Dmesg-Zuordnungsprotokollen wird der Hostname nicht erwähnt.

Laut man NetworkManager.conf enthielt Nm früher eine Hostnamenoption, mit der der Hostname pro Verbindung in der Konfigurationsdatei festgelegt werden konnte. Dies ist jedoch veraltet (aus irgendeinem Grund, was darauf hindeutet, dass es möglicherweise einen offensichtlicheren Weg gibt, dieselbe Funktionalität zu erreichen).

Eine Hostname-Option erscheint auch in dhclient.conf, ähnlich der Option NetworkManager.conf. Network Manager zeigt jedoch trotzdem an, dass der Hostname mithilfe von hostnamed auf den Wert in /etc/hostname gesetzt wird, unabhängig vom Eintrag in dhclient.conf:

NetworkManager[9405]:[1595351700.9848] settings: hostname: using hostnamed
NetworkManager[9405]: <info>  [1595351700.9849] settings: hostname changed from (none) to "debian"

Dies scheint eine Sicherheitsgrundlage zu sein, zumindest wenn der Hostname in AP-Zuordnungsprotokollen ausgelesen oder überprüft werden kann.

Welcher Wert wird bei der DHCP-Association wirklich ausgegeben und wie kann dies einfach kontrolliert werden?

Antwort1

Vielleicht haben Sie dieses Problem falsch betrachtet. Wenn Sie nur einen Hostnamen möchten, sollten Sie ihn in /etc/hostname ändern können und alles andere sollte damit funktionieren.

Mir ist aufgefallen, dass sudo sich manchmal beschwert, nachdem Sie den Hostnamen geändert haben, weil es den neuen Hostnamen nicht finden kann. Ich habe den Hostnamen zu /etc/hosts hinzugefügt und das hat das Problem behoben.

Sie können HOSTNAME zu /etc/hosts hinzufügen, indem Sie Folgendes ausführen echo "127.0.0.1 HOSTNAME" >> /etc/hosts(vergessen Sie sudo nicht, wenn Sie es brauchen). Danach hatte ich kein Problem mehr mit sudo und der Hostname in /etc/hostname wird für Netzwerke wie dhclient und dergleichen verwendet.

Hoffentlich hilft das, Ihr Problem zu beheben.

Antwort2

Die Antwort scheint richtig gewesen zu sein. Der Hostname kann mit dem obersten Eintrag in Hosts geändert werden, wobei 127.0.0.1 Hostname Debian lautet, geändert in Hostname [Name], ohne dass sudo unterbrochen wird.

$ sudo journalctl -u NetworkManager | grep hostname
NetworkManager[5592]: <info>  [1595532318.9762] settings: hostname: using hostnamed
NetworkManager[5592]: <info>  [1595532318.9763] settings: hostname changed from (none) to "debian"
NetworkManager[7887]: <info>  [1595538936.1117] settings: hostname: using hostnamed
NetworkManager[7887]: <info>  [1595538936.1117] settings: hostname changed from (none) to "vegetables"

Darüber hinaus ist klar, dass der Hostname in lokalen drahtlosen Netzwerken angemeldet ist und das Betriebssystem anscheinend Folgendes aufgelöst hat:

https://documentation.meraki.com/MR/Monitoring_and_Reporting/Hostname_Visibility

verwandte Informationen