Univention Bugzilla – Bug 28298
Benutzeranmeldungen über Session-Skripte
Last modified: 2013-03-26 09:14:13 CET
UCC sollte wie TCS/UCD verschiedene Benutzeranmelde-Skripte unterstützen, die über UMC konfigurierbar sind. Es sollte vorher geprüft werden, ob lightdm (Standard bei Ubuntu) oder kdm (Standard bei Kubuntu) bessere Alternativen zum GDM sind.
Die Namen der Session-Skripte sollten in englischer Sprache gehalten werden, siehe Bug 15881
*** Bug 22166 has been marked as a duplicate of this bug. ***
Kriterien für die Auswahl eines Login-Managers: - Internationalisierbarkeit - Ist Standard-Benutzern ein Neustart/Shutdown/Suspend des Systems am Login-Manager möglich (und wenn ja, ist es konfigurierbar?) - Werden Anmelde-Skripte unterstützt und wenn ja in welchen Stufen (vor/nach der Benutzeranmeldung)? Kann der Benutzer die Session-Skripte direkt auswählen? - Existiert eine PAM-Schnittstelle? - Wie einfach ist der Login-Manager konfigurierbar? - Gibt es eine Möglichkeit das Theme des Logins anzupassen? - Existiert eine Möglichkeit für Autostart-Skripte?
KDM: > Internationalisierbarkeit Über gettext. > Ist Standard-Benutzern ein Neustart/Shutdown/Suspend des Systems am Login-Manager möglich (und wenn ja, ist es konfigurierbar?) Es existiert ein System-Menü, das ein Herunterfahren des Systems etc. erlaubt. Der Shutdown kann auf einzelne Benutzer beschränkt werden: AllowShutdown=Root # Who is allowed to abort active sessions when shutting down. # "None" - no forced shutdown is allowed at all # "Root" - the root password must be entered to shut down forcibly # "All" - everybody > Werden Pro/Post-kripte unterstützt und wenn ja in welchen Stufen (vor/nach > der Benutzeranmeldung)? Es gibt vier Skripte, die aufgerufen werden: /etc/kde4/kdm/Xreset : Aufruf als root nach Beendigung der Sitzung /etc/kde4/kdm/Xsession : Aufruf als Benutzer nach Anmeldung /etc/kde4/kdm/Xsetup : Aufruf als root vor Anzeige des Anmeldedialogs (würde auch Autostart-Skripte erlauben) /etc/kde4/kdm/Xstartup : Aufruf als root bevor die Sitzung startet > Werden Session-Skripte unterstützt und kann der Benutzer die Session-Skripte direkt auswählen? Benutzer-spezifische Session-Skripte können unter /usr/share/xsessions abgelegt werden. Beispiel für den Aufruf eines Standard-xterm. Die Namen und Beschreibungen der Skripte sind direkt internationalisierbar: [Desktop Entry] Encoding=UTF-8 Type=XSession Exec=/usr/bin/xterm TryExec=/usr/bin/xterm Name=Plain X-Term Name[de]=X-Terminal Comment=Standard terminal Comment[de]=Das klasssiche Terminal > Existiert eine PAM-Schnittstelle? Ja, /etc/pam.d/kdm > Wie einfach ist der Login-Manager konfigurierbar? kdm ist ausführlich konfigurierbar über /etc/kde4/kdm/kdmrc > Gibt es eine Möglichkeit das Theme des Logins anzupassen? Der Anmeldebildschirm lässt sich über eine XML-Konfigurationsdatei definieren, die über UCR managebar wäre.
lightdm: > Internationalisierbarkeit Über gettext. > Ist Standard-Benutzern ein Neustart/Shutdown/Suspend des Systems am Login-Manager möglich (und wenn ja, ist es konfigurierbar?) Es gibt ein Systemmenü, um den Button auszublenden müsste der KDE-Greeter in QML über UCR konfiguriert werden, so dass der Button nicht mehr abgezeigt wird: http://askubuntu.com/questions/137336/how-do-i-remove-the-shutdown-button-only-on-the-login-screen > Werden Pro/Post-kripte unterstützt und wenn ja in welchen Stufen (vor/nach > der Benutzeranmeldung)? Es existieren mehrere Pre- und Postlogin-Skripte, die in der /etc/lightdm.conf konfiguriert werden können: # display-setup-script = Script to run when starting a greeter session (runs as root) # greeter-setup-script = Script to run when starting a greeter (runs as root) # session-setup-script = Script to run when starting a user session (runs as root) # session-cleanup-script = Script to run when quitting a user session (runs as root) #session-setup-script= #session-cleanup-script= > Werden Session-Skripte unterstützt und kann der Benutzer die Session-Skripte direkt auswählen? Lightdm liest ebenfalls die Session-Skripte unter /usr/share/xsessions aus. Sie können in der Anmeldemaske ausgewählt werden: Beispiel: [Desktop Entry] Encoding=UTF-8 Type=XSession Exec=/usr/bin/xterm TryExec=/usr/bin/xterm Name=Plain X-Term Name[de]=X-Terminal Comment=Standard terminal Comment[de]=Das klasssiche Terminal > Existiert eine PAM-Schnittstelle? Ja, /etc/pam.d/lightdm > Wie einfach ist der Login-Manager konfigurierbar? Es gibt eine Standard-Konfigurationsdatei, eine Übersicht der Optionen findet sich unter /usr/share/doc/lightdm/lightdm.conf.gz > Gibt es eine Möglichkeit das Theme des Logins anzupassen? Die Login-Funktionalität ist getrennt vom eigentliche Display-Manager. Jede Desktopoberfläche stellt einen eigenen Greeter bereit. Diese Greeter stellen Themes bereit. Der KDE-Greeter ist in QML geschrieben (http://en.wikipedia.org/wiki/QML) > Existiert eine Möglichkeit für Autostart-Skripte? Es gibt eine eigene Autologin-Session und ein eigenes PAM-Modul: # autologin-user = User to log in with by default (overrides autologin-guest) # autologin-user-timeout = Number of seconds to wait before loading default user # autologin-session = Session to load for automatic login (overrides user-session) Bonus: lightdm bietet integrierten VNC-Support.
lightdm unterstützt aktuell keine Passwort-Wechsel; ist ein Passwort abgelaufen, wird das dem Benutzer nicht angezeigt, sondern die Anmeldung schlägt fehl. Lauchpad-Bug dazu: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/972537 GDM 3 ist zum Großteil nur noch über Gconf konfigurierbar und daher keine Option, GDM 2 ist in Ubuntu nicht mehr enthalten.
Folgendes Verhalten trat unter Kubuntu auf, wenn ein Passwort abgelaufen war und der Passwortwechsel vom Benutzer eingeleitet wurde: Das Eingabefestern, in dem das Passwort doppelt eingegeben werden muss, wird angezeigt, nimmt aber keine Tastatureingaben entgegen (Mauseingabe funktionieren). Ich dachte erst, das sei ein Problem mit der PAM-Konfiguration oder einem nicht erreichbaren Kerneros-Server, aber das stellt sich nach einiger Recherche als lang anhaltener kdm/Kubuntu-Bug heraus: (min. seit Ubuntu 10.10) https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/641712 Mit dem dort beschriebenen Workaround in der /etc/kde4/kdm/kdmrc funktioniert es: GrabInput=Always GrabServer=true GrabTimeout=3 Das sollte dann auch so im UCR-Template für KDM festfelegt werden.
KDM wurde über das Paket univention-kdm integriert: Es wird ein Autostart-Skript für Firefox mitgeliefert, das einen automatischen Login durchführt und direkt Firefox startet. Mit den folgenden UCR-Variablen kann das Autostart-Skript aktiviert werden: kdm/autostart/session: /etc/kde4/kdm/firefox kdm/autostart: yes Der Benutzer für den Autostart wird im postinst angelegt und ist über die UCR-Variable kdm/autostart/user konfigurierbar. univention-kdm bringt unter /usr/share/kde4/apps/kdm/themes/ucc als Voreinstellung ein Dummy-Theme mit, das initial eine Kopie des Standard-Kubuntu-Themes ist. Darauf aufbauend muss ein UCC-Theme erstellt werden, siehe Bug 28411 Das Theme ist über die UCR-Variable kdm/theme anpassbar (z.B. für Kunden mit eigenen lokalen Designs)
Die folgenden Session-Verzeichnisse werden jetzt über run-parts integriert, so dass verschiedene Pakete oder ein lokaler Administrator dort Skripte integrieren können: /etc/kde4/kdm/sessions/xreset : Aufruf nach Sitzungsende (root) /etc/kde4/kdm/sessions/xsetup : Aufruf vor Anzeige des Login-Screens (root) /etc/kde4/kdm/sessions/xstartup : Aufruf vor Sitzungsaufbau (root, der aktuelle Benutzer ist in der Umgebungsvariable $USER referenziert) Über ein Skript in /etc/kde4/kdm/sessions/xstartup werden nun die Richtlinien des anmeldenden Benutzers ausgewertet und in /tmp/$USER-policy.txt gespeichert.
Der KDM benötigt schon deutlich mehr Platz: Durch die Installation von KDM: After this operation, 316 MB of additional disk space will be used. Vorher lightdm-gtk-greeter: After this operation, 28.8 MB of additional disk space will be used
- kdm fehlt als Abhängigkeit - Aus der kdm.log: - ldapsearch wird nicht gefunden - univention-policy-result command not found - univention-run-kdm-sessions-xreset: 32: / Permission denied
(In reply to comment #11) > - kdm fehlt als Abhängigkeit > > - Aus der kdm.log: > - ldapsearch wird nicht gefunden > - univention-policy-result command not found > - univention-run-kdm-sessions-xreset: 32: / Permission denied Direkt aus der Logdatei kopiert: /usr/bin/univention-ldapsearch: line 22: exec: ldapsearch: not found /etc/kde4/kdm/sessions/xstartup//010_univention-ucc-fetch-user-policies: line 40: univention-policy-result: command not found /usr/bin/univention-run-kdm-sessions-xreset: 32: /usr/bin/univention-run-kdm-sessions-xreset: /: Permission denied
(In reply to comment #12) > (In reply to comment #11) > > - kdm fehlt als Abhängigkeit Abhängigkeit wurde hinzugefügt. > > - Aus der kdm.log: > > - ldapsearch wird nicht gefunden > > - univention-policy-result command not found > > - univention-run-kdm-sessions-xreset: 32: / Permission denied > > Direkt aus der Logdatei kopiert: > /usr/bin/univention-ldapsearch: line 22: exec: ldapsearch: not found Bug 28851, wurde in UCC über einen Patch gefixt. > /etc/kde4/kdm/sessions/xstartup//010_univention-ucc-fetch-user-policies: line > 40: univention-policy-result: command not found Abhängigkeit wurde hinzugefügt. > /usr/bin/univention-run-kdm-sessions-xreset: 32: > /usr/bin/univention-run-kdm-sessions-xreset: /: Permission denied Fixed.
Als Login-Manager wird jetzt lightdm verwendet, die Konfiguration erfolgt über das Paket univention-lightdm. Auf einem ungejointen System wird ein automatischer Login konfiguriert, dabei wird der Ubuntu-guest-User verwendet. Wird ein System gejoint, wird die UCR-Variable lightdm/autologin wieder auf "no" gesetzt und es findet ein interaktiver Login statt. Für MS1 fehlt eigentlich nur noch die Vorkonfiguration des Session-Skriptes über die Richtlinie.
Sollte der Firefox nicht im Fullscreen gestartet werden?
(In reply to comment #15) > Sollte der Firefox nicht im Fullscreen gestartet werden? Dazu gibt es einen separaten Bug. univention-lightdm ist jetzt erstmal soweit paketiert. Weitere Anpassungen später anhand der weiteren Anforderungen wenn in MS2 weitere Sessions integriert werden.
Bzgl. dem Passwortwechsel gibt es Bug #28896. Bzgl. der Design Anpassung gibt es Bug #28411 Bzgl. Autostartsitzungen gibt es Bug #28329 Rest OK.
UCC 1.0 has been released: http://forum.univention.de/viewtopic.php?f=26&t=2417 http://forum.univention.de/viewtopic.php?f=54&t=2418 If this error occurs again, please use "Clone This Bug".