Hallo,
ich bin inzwischen einen erheblichen Schritt weiter. Ich weiß jetzt, wodurch /etc/hostname gesetzt wird. Bei mir (linuxmuster-client-pakete auf linux-mint draufgestöpselt) vermurkst das linuxmuster-client-Skript in /etc/linuxmuster-client/boot.d/01-ldap
die mühsam per postsync-Skript korrekt gesetzte /etc/hostname.
Und zwar ist es die Zeile
clientname=`host $clientip | awk ‚{print $5}‘ | cut -d. -f1`
Damit ist es nun etwas seltsam: offenbar liefert diese Zeile clientname=no wenn 01_ldap sie aufruft. Deswegen schreibt dieses Skript wenige Zeilen später:
if [ ! -z $clientname ]; then
echo $clientname > /etc/hostname
fi
diesen idiotisch Clientnamen „no“ in /etc/hostname. Seltsam wird es dadurch, dass das Skript, das wenige Millisekunden später ausgeführt wird, nämlich 02-pam_mount, mit exakt der gleichen Methode, den clientnamen zu ermitteln, Erfolg hat. 02-pam_mount allerdings ändert /etc/hostname nicht mehr, weshalb es beim falschen hostname bleibt.
Warum der Befehl host
einmal Blödsinn liefert und einmal korrekt läuft, das weiß ich nicht. Möglicherweise ist die Namensauflösungsmethode, auf die host
zurückgreift einfach noch nicht arbeitsfähig beim ersten Aufruf und ist dies erst beim zweiten durch 02-pam_mount.
Nachdem ich /etc/hostname per postsync-Skript setze, bin ich versucht die Zeile clientname=...
zu ersetzen durch
clientname=$(cat /etc/hostname)
Was haltet ihr davon?
Gruß, Uwe.