/etc/hosts gepatcht?

Hallo,

wird bei Euren Linuxclients der korrekte Clientname in /etc/hosts gepatcht?

Bei mir:

sen@Sx109-pc01xk:~$ cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	rVirt-pc01

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
sen@Sx109-pc01xk:~$

Der korrekte Clientname Sx109-pc01xk ist da nicht drin!?

Stimmt da was nicht bei meinem System?
LMN v7.2, LinuxMint-Clients

Beste Wünsche
Stefan

Hallo Stefan,

nein, bei mir auch nicht:

root@213pc08:~# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	r213pc11

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Hat aber bisher auch nie Probleme gemacht.

Status des Systems:

linuxmuster.net packages:
-Base...........: 7.2.21-0
-Linbo..........: 4.2.16-0
-WebUI..........: 7.2.84
-Sophomorix.....: 3.92.1-3

Beste Grüße,
Jens

Hallo,

ich lasse seit Jahren die hosts Datei per postsync patchen, deswegen kann ich nciht sagen. ob das derzeit funktioniert oder nicht.

LG
Holger

Tach,

Hahaha…bei uns steht das Patchen der /etc/hosts auch in der postsync, funktioniert hat das aber glaube ich noch nie. Tut das bei Dir?

Gruss Harry

Moin!

Der Eintrag in /etc/hosts ist IMO unnötig. Linbo patcht den Hostnamen nach /etc/hostname.

VG, Thomas

Hallo Harry,

ja, das tut schon immer ohne Probleme.
in meinem postsync steht:

    # hostname in /etc/hosts patchen
    sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
    sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts

und in der durch den postsync direkt vorher auf die Clientpartition gesyncten /etc/hosts steht:

127.0.0.1 HOSTNAME.bzpf.lan HOSTNAME
#SERVERIP server.bzpf.lan server

… man beachte, dass einmal HOSTNAME ersetzt wird und das andere mal #SERVERIP … das ist natürlich ungeschickt und verwirrend: ich nenne es mal „tradition“

Aber gut: Thomas sagt, debian verwendet sowiso die /etc/hostname und die wird durch linbo gepatched: damit ist mein Patchen obsolet…
Werde ich mal testen.

LG
Holger

Hi,

die Datei /etc/hosts ist Teil der statischen DNS-Auflösung, falls man keinen DNS-Server zur Hand hat bzw. wird sie auch bei Nutzung eines DNS-Servers mit verwendet. Sie hat mit dem konfigurierten Hostnamen nicht unmittelbar zu tun. Sie enthält nur häufig (bei den meisten Distributionen) den eigenen Hostnamen für den Fall, das man keinen DNS-Server nutzen kann, denn dann ist es sinnvoll wenigstens den eigenen Hostnamen auflösen zu können, um nicht bei sämtlichen Programmen, die was mit Netzwerk machen, auf Timeouts der Namensauflösung zu warten. Ihr könnt auch 127.0.0.1 gugelhupf in /etc/hosts stehen haben und der Rechner heißt anders, aber er wird auf diesen Namen antworten.

VG
Buster

Danke für die vielen Infos!

Das erklärt auch Probleme mit meinem Kiosk-Client, wo ein lokaler root Autostart-Skripte ausführt. Wenn Netzwerk/DNS-Server noch nicht verfügbar ist und der LINBO-geklonte Client in /etc/hosts falschen Eintrag hat, dann scheitern sudo-Befehle.

Beste Wünsche
Stefan


PS: ChatGPT5 schrieb dazu:


:puzzle_piece: Unterschied zwischen /etc/hostname und /etc/hosts

Datei Zweck
/etc/hostname Enthält nur den lokalen Hostnamen als Text (z. B. kio-pc00-image). Wird vom Kernel beim Booten gelesen und setzt den Hostnamen des Systems (uname -n oder hostname).
/etc/hosts Dient der Namensauflösung (Hostname → IP-Adresse). Wird von glibc / NSS verwendet, wenn Programme versuchen, einen Hostnamen in eine IP-Adresse aufzulösen.

:gear: Was macht sudo?

Wenn du sudo startest, ruft es (intern über getaddrinfo()) eine DNS-/Hosts-Auflösung des lokalen Hostnamens auf — das passiert aus zwei Gründen:

  1. Für Logging (z. B. /var/log/auth.log)
  2. Für PAM- oder Sicherheitsprüfungen, wo der Hostname als FQDN geloggt wird

Das heißt:
sudo fragt: „Wie lautet die IP-Adresse dieses Hosts?“
:right_arrow: Dafür wird nicht /etc/hostname gelesen,
sondern die Namensauflösung über getaddrinfo() verwendet.
Und diese schaut in /etc/nsswitch.conf:

hosts: files dns

Das bedeutet:

  1. Zuerst /etc/hosts prüfen
  2. Wenn nichts gefunden → DNS

:collision: Warum also der Fehler?

Wenn /etc/hosts keinen Eintrag für $(hostname) enthält
und DNS (z. B. wegen Bootphase oder linbo-Netz) noch nicht verfügbar ist,
dann kann sudo den Hostnamen nicht auflösen.

Ergebnis:

sudo: unable to resolve host kio-pc00-image: Temporary failure in name resolution

:brain: Kurz gesagt:

  • /etc/hostname → sagt wie der Rechner heißt
  • /etc/hosts → sagt wo er ist (IP)
  • sudo braucht beides: Name + IP
  • Wenn /etc/hosts das nicht weiß → Fehler

:white_check_mark: Fix (empfohlen von Debian Maintainers)

In /etc/hosts immer eine Zeile wie diese:

127.0.1.1   $(hostname)

oder bei FQDN:

127.0.1.1   $(hostname).deinedomain.local   $(hostname)