Neuinstallation: keine Anmeldung am Linux-Client möglich

Hallo Zusammen,
ich richte gerade eine neue LMN7.0 mit Proxmoxx 6.2 für eine kleine Grundschule ein und habe ein Problem mit dem Anmelden von Benutzern, aber von Anfang an:

  1. LMN7.0 auf Proxmox 6.2 importiert (Server+OpenSense)
  2. Aptdates installiert.
  3. linuxmuster-setup ausgeführt
  4. Betankung von virtuellen Client mit Linbo gemäß https://docs.linuxmuster.net/de/latest/getting-started/linuxclient.html#masterclient-aufnehmen

Linuxmuster-cloop-turnkey läuft erfolgreich durch

  1. geprüft, ob lml-bionic-200507.cloop.macc existiert: nein, Sie existiert nicht. dafür existiert lml-bionic-200507.cloop.macc**t** nach linuxmuster-cloop-turnkey/image hochladen
  2. geprüft, ob sich Schüler an SK anmelden kann: ja. geht.
  3. Client neugestartet, oben Links steht „client1.meinedomain“
  4. Image zurückgespielt
  5. Anmeldung, mit angelegetem Nutzer: „Passwort ungültig, bitte wiederholen“
  6. Keine Logeinträge zum Loginversuch auf Client oder auf Server zum Benutzer zu finden. (oder ich habe in den Falschen logs gesucht… cat /var/log/* | grep benutzername)

Hat jemand eine Idee, woran das liegen könnte?

Hallo Timo,

  1. LMN7.0 auf Proxmox 6.2 importiert (Server+OpenSense)

  2. Aptdates installiert.

  3. linuxmuster-setup ausgeführt

  4. Betankung von virtuellen Client mit Linbo gemäß
    https://docs.linuxmuster.net/de/latest/getting-started/linuxclient.html#masterclient-aufnehmen

    Linuxmuster-cloop-turnkey läuft erfolgreich durch

  5. geprüft, ob |lml-bionic-200507.cloop.macc| existiert: nein, Sie
    existiert nicht
    .

da ist wohl ein Tippfehler: die Datei neußt immer macct und nie macc

dafür existiert
>lml-bionic-200507.cloop.macct| nach
linuxmuster-cloop-turnkey/image hochladen
5. geprüft, ob sich Schüler an SK anmelden kann: ja. geht.
6. Client neugestartet, oben Links steht „client1.meinedomain“
7. Image zurückgespielt
8. Anmeldung, mit angelegetem Nutzer: „Passwort ungültig, bitte
wiederholen“
9. Keine Logeinträge zum Loginversuch auf Client oder auf Server zum
Benutzer zu finden. (oder ich habe in den Falschen logs gesucht… cat
/var/log/* | grep benutzername)

Hat jemand eine Idee, woran das liegen könnte?

wie heißt den eure Domain?
(cat /etc/hosts auf dem server eingeben)

Was steht den in der /srv/linbo/linuxmuster-client/bionic/common/etc/hosts
?

Ist die /srv/linbo/.cloop.postsync
vorhanden?
Kannst du den Inhalt hier posten?

Stimmt die Systemzeit auf dem Client?

Und zuletzt: was steht den in der /etc/hosts auf dem Client?

LG

Holger

Hallo Holger,
danke schon mal für deine Antwort.

die Domain heißt tts.lan:

root@server:~# cat /etc/hosts

modified by linuxmuster-prepare at 20200822222137

/etc/hosts

thomas@linuxmuster.net

20160902

127.0.0.1 localhost
10.0.0.1 server.tts.lan server

> Was steht den in der /srv/linbo/linuxmuster-client/bionic/common/etc/hosts
> ?

root@server:~# cat /srv/linbo/linuxmuster-client/lmn-bionic-200507/common/etc/hosts

/etc/hosts

Diese Datei wird per postsync gepatcht.

Pfad: ${linbodir}/${postsyncdir}/${patchclass}/common/etc/hosts → /mnt/etc/hosts in LINBO

########## DO NOT EDIT START

HOSTNAME wird im Postsyncskript mit dem echten Namen gepatcht

127.0.0.1 localhost
127.0.0.1 HOSTNAME.tts.lan HOSTNAME

#Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind…
10.0.0.1 server.tts.lan server

damit CUPS zufrieden ist, muss noch diese Zeile hier dazu:

10.0.0.1 server.lokal server.loca

Ist die /srv/linbo/.cloop.postsync
vorhanden?
Kannst du den Inhalt hier posten?
Ja, sie ist vorhanden, hier der Inhalt:

root@server:~# cat /srv/linbo/lmn-bionic-200507.cloop.postsync 
echo "##### POSTSYNC BEGIN #####" 
LOG=/mnt/var/log/postsync.log
export LOG
echo "##### POSTSYNC BEGIN #####" >  $LOG
NOW=$(date +%Y%m%d-%H%M)
export NOW
echo $NOW | tee -a $LOG

# IP-Adresse des Servers
SERVERIP=$(nslookup dummy 2> /dev/null | head -n 1 | awk -F: '{print $2}' | sed "s/\s*//g")
export SERVERIP

# Die Hostgruppe des aktuellen Rechners
HOSTGROUP=$(hostgroup)
export HOSTGROUP

# Raum feststellen. Dieses Skript geht davon aus
# dass die Rechner Namen der Form
# raumname-hostname haben, also z.B. cr01-pc18
RAUM=${HOSTNAME%%-*}
# wenn der string leer ist, raum auf unknown setzen
if [ "x${RAUM}" == "x" ]; then 
    RAUM="unknown"
fi
export RAUM

# UVZ für die Patches auf dem Server. Mit dieser Variablen 
# kann man verschiedene Patches, z.B. für unterschiedliche
# Linux-Versionen bereitstellen.
# Wenn man hier $HOSTGROUP einträgt, erhält jede Rechnerklasse 
# ein eigenes Patchklassenverzeichnis auf dem Server.
# Damit kann man verschiedene Patchklassen mit derselben cloop-Datei
# bedienen, wenn man das benötigt.
PATCHCLASS="lmn-bionic-200507"
export PATCHCLASS

# Das Verzeichnis, in dem die Serverpatches
# im lokalen Clientcache synchronisiert werden.
PATCHCACHE=/linuxmuster-client/serverpatches
export PATCHCACHE

echo "" | tee -a $LOG
echo "Hostname:      ${HOSTNAME}" | tee -a $LOG
echo "Raum:          ${RAUM}" | tee -a $LOG
echo "Patchcache:    ${PATCHCACHE}" | tee -a $LOG
echo "Hostgruppe:    ${HOSTGROUP}"   | tee -a $LOG
echo "Patchclass:    ${PATCHCLASS}" | tee -a $LOG
echo "" | tee -a $LOG

# -----------------------------------------
# Patchdateien auf das lokale Image rsyncen
# ----------------------------------------- 
echo " - getting patchfiles" | tee -a $LOG

# RAUM     -> Raumname
# HOSTNAME -> Rechnername
# Verzeichnis anlegen, damit es sicher existiert
mkdir -p /cache/${PATCHCACHE}
rsync --delete --progress --exclude "- *~" -lr "${SERVERIP}::linbo/linuxmuster-client/${PATCHCLASS}" "/cache/${PATCHCACHE}" | tee -a $LOG

echo " - patching local files"  | tee -a $LOG

# common: Bekommen alle clients der Patchklasse
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common ]; then 
    echo "   - patching common to /mnt" | tee -a $LOG
      ## copy all files in common/*
      cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/common/* /mnt/ | tee -a $LOG
      ## rsync (with delete) all postsync.d-files
      rsync --delete -lr /cache/${PATCHCACHE}/${PATCHCLASS}/common/postsync.d/ /mnt/postsync.d/ | tee -a $LOG
fi

# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common/tarpacks ]; then
  echo "   - unpacking tarpacks from common/tarpacks to /mnt" | tee -a $LOG
  for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/common/tarpacks/*; do
     echo "     - unpacking: $pack" | tee -a $LOG
     tar xvzf $pack -C /mnt | tee -a $LOG
  done
fi

# Raum: Nur die Clients des Raums
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM} ]; then 
    echo "   - patching ${RAUM} to /mnt" | tee -a $LOG
    cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/* /mnt/ | tee -a $LOG
fi

# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/tarpacks ]; then
  echo "   - unpacking tarpacks from ${RAUM}/tarpacks to /mnt" | tee -a $LOG
  for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/tarpacks/*; do
     echo "     - unpacking: $pack" | tee -a $LOG
     tar xvzf $pack -C /mnt | tee -a $LOG
  done
fi

# Host: Nur der Rechner
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME} ]; then 
    echo "   - patching ${HOSTNAME} to /mnt"  | tee -a $LOG
    cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/* /mnt/ | tee -a $LOG
fi

# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/tarpacks ]; then
  echo "   - unpacking tarpacks from ${HOSTNAME}/tarpacks to /mnt" | tee -a $LOG   
  for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/tarpacks/*; do
     echo "     - unpacking: $pack" | tee -a $LOG
     tar xvzf $pack -C /mnt | tee -a $LOG
  done
fi

# Hook, um eigene Skripte auszuführen
if [ -d /mnt/postsync.d ]; then
    for SCRIPT in /mnt/postsync.d/*[^~]
    do
        chmod 755 $SCRIPT
        echo "Executing: $SCRIPT" | tee -a $LOG
        #$SCRIPT > /dev/null 2>&1
        . $SCRIPT | tee -a $LOG
        echo " ...done." | tee -a $LOG
    done
    rm -rf /mnt/postsync.d
fi

# wenn es /mnt/tarpacks gibt - löschen
rm -rf /mnt/tarpacks

# Zeitstempel letzter sync hinterlegen
echo $NOW > /mnt/.lastsync
# Hostgroup hinterlegen
echo ${HOSTGROUP} > /mnt/.hostgroup
# /mnt/.linbo wurde von Linbo hinterlegt
image=$(cat /mnt/.linbo)
# Image Beschreibung hinterlegen
cp /cache/${image}.cloop.desc /mnt/.description

echo "##### POSTSYNC END #####" | tee -a $LOG

Stimmt die Systemzeit auf dem Client?
Tatsächlich hat die Systemzeit nicht mit der des Servers übereingestimmt, daher
root@server:~# sudo timedatectl set-timezone Europe/Berlin
Zeiten stimmen jetzt überein, eine Anmeldung ist aber weiter nicht möglihc.

Und zuletzt: was steht den in der /etc/hosts auf dem Client?
[linuxadmin@client1 .ssh]$ cat /etc/hosts
# /etc/hosts
# Diese Datei wird per postsync gepatcht.
# Pfad: ${linbodir}/${postsyncdir}/${patchclass}/common/etc/hosts → /mnt/etc/hosts in LINBO

########## DO NOT EDIT START
# client1 wird im Postsyncskript mit dem echten Namen gepatcht
127.0.0.1 localhost
127.0.0.1 client1.tts.lan client1

#Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind...
10.0.0.1 server.tts.lan server

## damit CUPS zufrieden ist, muss noch diese Zeile hier dazu:
10.0.0.1  server.lokal server.local
########## DO NOT EDIT END

Ich hoffe ich konnte die Fragen beantworten. Danke schon mal für deine Hilfe.
Timo

Hallo Timo,

das sieht alles ganz gut aus.

Bitte aktualisier mal den Client mittels
apt update
apt dist-upgrade

  1. linux gesynct starten
  2. lokal als linuxadmin anmelden
  3. /etc/kbr5.keytab (so ungefähr) löschen
  4. linuxmuster-client-adsso aufrufen
  5. /srv/linbo/.cloop.macct Datei löschen
  6. linux rebooten und Image erstellen + hochladen
  7. wurde eine neue macct Datei erstellt?
  8. testen

LG

Holger

apt update
apt dist-upgrade
erl.
(als root kriege ich "HTTP/1.1 407 Proxy Authentication Required ", obwohl der Client in noproxy-gruppe steckt - als linuxadmin gehts aber)

Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
libegl1-mesa libllvm9 libllvm9:i386
Verwenden Sie »sudo apt autoremove«, um sie zu entfernen.
Die folgenden Pakete werden aktualisiert (Upgrade):
geogebra-classic ghostscript ghostscript-x libgs9 libgs9-common libsane-common libsane1 libsane1:i386
libsnmp-base libsnmp30 sane-utils

/etc/kbr5.keytab (so ungefähr) löschen
Hat genau gepasst: :slight_smile:

root@client1:/etc# rm krb5.keytab

linuxmuster-client-adsso aufrufen
> [linuxadmin@client1 ~]$ linuxmuster-client-adsso
> linuxmuster-client-adsso: Befehl nicht gefunden

[linuxadmin@client1 ~]$ sudo apt install linuxmuster-client-adsso
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen… Fertig
linuxmuster-client-adsso ist schon die neueste Version (0.9-3focal).

[linuxadmin@client1 ~]$ linuxmuster-client-adsso-setup

linuxmuster-client-adsso-setup

Trying to get network information:
Hostname: client1.tts.lan
Servername: server.tts.lan
REALM: TTS.LAN

Processing configuration templates:

  • linuxmuster-proxy.sh
    Failed!

(hab mal in das proxyscript rein gehscua,t eigentlich setzt das nur ein paar Umgebungsvariablen. erschließt sich mir nicht, warum das fehlschlägt :S)

Daraufhin Linuxmuster-cloop-turnkey (wie in der Anleitung) ausgeführt:

[linuxadmin@client1 ~]$ sudo linuxmuster-cloop-turnkey
[sudo] Passwort für linuxadmin:
Das hat nicht funktioniert, bitte nochmal probieren.
[sudo] Passwort für linuxadmin:
(pam_mount.c:365): pam_mount 2.16: entering auth stage
Creating SSH2 RSA key; this may take some time …
2048 SHA256:CU2gpNkEQFfektwYjVCZOVFX1eC8KKj6QzwOP1nA+cw root@client1 (RSA)
Creating SSH2 ECDSA key; this may take some time …
256 SHA256:VQMyLO0KkstYi8zxg0pXEEYf1U37vdeFLKBJKTa/j/A root@client1 (ECDSA)
Creating SSH2 ED25519 key; this may take some time …
256 SHA256:/WxRT+86rVc7aNAdr4EaacfF5VffLXbMcddGEf59H1s root@client1 (ED25519)
Ich vermute, dass das generische Postsyncskript verwendet wurde
und für linuxadmin ein Passwort gesetzt wurde.
Das Setzen des Passwortes für den Benutzer kann daher übersprungen werden.
Möchtest du ein neues Passwort für linuxadmin vergeben? [j/N] N

Wir empfehlen dringend, jetzt das System zu updaten, dann
der Domäne beizutreten und danach ein neues Image zu erstellen.

Upgrade durchführen [j/N] ?N

linuxmuster-client-adsso-setup

Trying to get network information:
Hostname: client1.tts.lan
Servername: server.tts.lan
REALM: TTS.LAN

Processing configuration templates:

  • linuxmuster-proxy.sh
  • sssd.conf
  • cifs.spnego.conf
  • linuxmuster-session
  • lightdm.conf
  • pam_mount.conf.xml
  • krb5.conf
  • adsso.conf
  • greeter.dconf-defaults
  • common-session
  • smb.conf

Deleting krb5.keytab if it exists …
Setting sssd.conf permissions … Done!
Writing hostname … Done!
Updating pam configuration … Creating sysvol folder … Done!
Enabling login scripts … Sudo for global-admin … Done!

Enabling services:
Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable smbd
Synchronizing state of nmbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nmbd
Synchronizing state of sssd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable sssd

Restarting services:

Joining domain TTS.

Note that you have to input the password of the global-admin.

Passwort für global-admin@TTS.LAN:
Using short domain name – TTS
Joined ‚CLIENT1‘ to dns domain ‚tts.lan‘

Installing server certificate … Success!

All done! Now reboot the client, please.

(pam_mount.c:133): clean system authtok=0x55c144d67be0 (1073741824)

* linux rebooten und Image erstellen + hochladen
* wurde eine neue macct Datei erstellt?

Ja, wurde erstellt

Problem besteht aber weiterhin.

ich habe gerade nochmal etwas „rumjemacht“ - kann es sein, dass

sudo linuxmuster-cloop-turnkey

fehlschlägt, wenn man das Passwort von Linuxadmin nicht ändert? Das hatte ich nämlich bis eben nie getan (ich dachte immer: ach, noch ist ja kein Produktivsystem),… Jetzt hab ich es gehändert und siehe da, prombt konnte ich mich anmelden.

später Gruß,
Timo

Oh man,… heute habe ich das Image auf einen anderen Client zurück syncronosiert,… Acuh auf dem Masterclient ist nach Syncornisation keine Anmeldung mehr möglich.

@baumhof hast du noch einen Tip :(?

Nachtrag: ich habe mal eben ein Lubuntu vom Scratch in das Cloop installiert und dann mittels linuxmuster-client-adsso in die Domäne integriert. Auch hier ist keine Anmeldung möglich.

Hallo Timo,

Oh man,… heute habe ich das Image auf einen anderen Client zurück
syncronosiert,… Acuh auf dem Masterclient ist nach Syncornisation keine
Anmeldung mehr möglich.

@baumhof https://ask.linuxmuster.net/u/baumhof hast du noch einen Tip :(?

eine fehlgeschlagene Anmeldung muss nicht unbedingt am Maschinenpasswort
und/oder der macct Datei hängen.

Wenns mit der Domäne nicht klappt, dann schaut man erst mal folgendes nach:

  1. stimmt die Systemzeit mit der des Servers überein (auf max 3 Minuten
    genau!)
  2. stimmt der Rechnername des Clients in der /etc/hosts

Wenn das alles stimmt und die Anmeldung, auch mit einem zweiten oder
dritten Testaccount, nicht geht, dann beschreib nochmal genauer, wovon
wir hier reden: Testsystem?
Name der Domäne?
Woher stammt das cloop?
Wie sehen die Zeilen in der
/etc/linuxmuster/sophomorix/default-school/devices.csv aus?

LG

Holger

Hallo Holger,

  1. ja, die Systemzeit stimmt ziemlcih genau
  2. ja, der Rechnername stimmt

Zunächst war es noch ein Testsystem, mitlerweile ist es aber bei der Schule verbaut. Das cloop habe ich mit „linuxmuster-client -l“ heruntergeladen.
Zwischenzeitlich habe ich aber ein Lubuntu in dau in das Cloop reininstalliert (sagt man das so? :S), und als ein neues (eigenes) Image verteilt - das funktioniert bisher mal ohne Probleme.