OK, sorry, Kommando zurück. Ich hatte $SERVERHOME einfach im Terminal eingegeben und bekam die entsprechende Meldung ohne H: zurück. Bei einem Script mit echo $SERVERHOME schreibt er den korrekten Pfad hin. Aber wenn ich das im Script als Pfadangabe wie bei ln $SERVERHOME/Einstellungen/firefox $HOME/.mozilla/firefox
verwende, funktioniert es nicht, dann bekomme ich ein Unterverzeichnis H: direkt ins Homeverzeichnis des Users…
Falls Interesse besteht, poste ich hier kurz unser Skript welches wir aus logon.sh aufrufen:
(Anmerkung: Die Konfig-Verzeichnisse sollten im Einstellungen-Verzeichnis am Server genau so benannt werden wie im User-Homeverzeichnis, d.h. die führenden Punkte nicht entfernen bei .config oder .mozilla. Alte Einstellungen-Verzeichnisse müssen entspr. migriert werden.)
Die Systemvorlagen liegen bei uns unter /srv/samba/schools/default-school/program/Profilvorlage/
Die Vorlagen einfach einmalig verschieben z.B. von /home/linuxadmin/.mozilla nach /srv/samba/schools/default-school/program/Profilvorlage/
#!/bin/bash
#
# Programm-Einstellungs-Vorlagen aus Systemvorlagen under Benutzervorlagen verwenden
# fuer das Werdenfels-Gymnasium Garmisch-Partenkirchen
# Angepasst nach Skript-Vorlage von Dominik/foer Linuxmuster
#
# 2021-11-03 Thomas Schaefer Fachbuero fuer Informationstechnik GbR
#
# Dieses Script geht von folgedem Workflow aus:
# /home/linuxadmin wird als skel-Verzeichnis verwendet um neue lokale Home-Verzeichnisse anzulegen,
# d.h. hier können Programm-Voreinstellungen vorgegeben werden, welche nicht "servergespeichert" sein sollen (unabhängig von diesem Script)
# Programs (K:)/Profilvorlage/ beinhaltet die Programm-Voreinstellungen welche später individuell pro Benutzer "servergespeichert" abgelegt werden sollen
# Obiges Verzeichnis bitte "schlank" halten um unötige Wartezeiten beim erstmaligen Login eines Benutzers zu reduzieren.
# H:/Einstellungen/ beinhaltet die indivduellen Programm-Einstellungen der Benutzer welche in das lokale Home-Verzeichnis verlinkt werden
# Das Login-Log-File findet man unter /tmp/Username.Einstellungen
TEMPLATE="/home/$USER/media/Programs (K:)/Profilvorlage/"
USERTEMPLATE="$SERVERHOME/Einstellungen/"
LOG=/tmp/$USER.Einstellungen
echo `date` "Verarbeite $TEMPLATE" > "$LOG"
cd "$TEMPLATE"
if [ -d "$USERTEMPLATE" ]; then #prüfen ob es schon generell remote Profil gibt
mkdir -p "$USERTEMPLATE" #ansonsten remote Ordner "Einstellungen" anlegen
fi
for filename in .[a-z]* *; do
echo `date` "Bearbeite $filename ..." >> "$LOG"
rm -rf "$HOME/$filename" #ggf. lokale Konfig-Verzeichnis oder Link löschen (falls aus skel bzw. linuxadmin kopiert)
if [ ! -e "$USERTEMPLATE$filename" ]; then #prüfen ob es schon ein remote Profil fuer dieses Programm gibt
echo "Kopiere $TEMPLATE$filename nach $USERTEMPLATE" >> "$LOG"
cp -r "$TEMPLATE$filename" "$USERTEMPLATE" #TemplateProfil in das remote Userprofil kopieren
fi
ln -s "$USERTEMPLATE$filename" "$HOME/$filename" #Link vom remote Profilordner zum lokalen Profilordner erzeugen
done
echo "Fertig " `date` >> "$LOG"
mit dem Firefox-Profil komme ich noch nicht so recht weiter und die hier angebotenen Lösungen funktionieren bei mir nicht oder ich kann sie nicht richtig umsetzen.
Am ehesten funktioniert noch Dominiks Lösung (weiter oben Beitrag 28) , wenn ich sie „manuell“ unterstütze, d. h. z. B. vorher Verzeichnisse von Hand lösche.
Seine Zeilen habe ich zu folgendem Skript verarbeitet, dass dann unter /etc/linuxmusterLinuxclient7/onLogin.d liegt:
#!/bin/bash
# firefox profile on user share
if [ -d "$SERVERHOME/Einstellungen/firefox" ]; then #prüfen ob es schon ein remote Profil gibt
rm -rf "$HOME/.mozilla/firefox" #wenn ja lokales Profil löschen
ln -s "$SERVERHOME/Einstellungen/firefox" "$HOME/.mozilla/" #Link vom remote Profilordner zum lokalen Profilordner erzeugen
else
mkdir -p "$SERVERHOME/Einstellungen/firefox" #ansonsten remote Ordner anlegen
mv "$HOME/.mozilla/firefox" "$SERVERHOME/Einstellungen/" #lokales Profil auf den Server verschieben
ln -s "$SERVERHOME/Einstellungen/firefox" "$HOME/.mozilla/" #Link vom remote Profilordner zum lokalen Profilordner erzeugen
fi
Das läuft nicht rund, weil z. B. die User alle schon Profile vom „alten“ Client haben, die aber nicht im „neuen“ Firefox starten. Selbst wenn ich das alte Profil auf dem Serverhome vor der Anmeldung lösche, kommt es nicht zu einer sauberen Verlinkung des Einstellungsverzeichnisses. Die „besten“ Ergebnisse erziele ich, wenn ich das das alte Profil im Serverhome lösche und anschließend das Profil des linuxadmin dorthin kopiere. Dann scheint auch das Skript zu funktionieren, zumindest bleiben neue Bookmarks auch nach dem Syncen erhalten.
habe mir das Ganze heute nochmal genauer angeschaut und dabei festgestellt, dass es doch funktioniert, wenn man vor dem ersten Einsatz die vorhandenen Einstellungen im Homeverzeichnis des users löscht. Und das ist an und für sich auch nachvollziehbar. Ich hoffe, Dominik u. a. haben nichts dagegen, dass ich es auf Github hochgeladen habe;