Bug 28298 - Benutzeranmeldungen über Session-Skripte
Benutzeranmeldungen über Session-Skripte
Status: CLOSED FIXED
Product: Z_Univention Corporate Client (UCC)
Classification: Unclassified
Component: User logins
unspecified
Other Linux
: P5 enhancement
: UCC 1.0
Assigned To: Moritz Muehlenhoff
Stefan Gohmann
: interim-1
: 22166 (view as bug list)
Depends on:
Blocks: 28300
  Show dependency treegraph
 
Reported: 2012-08-24 13:46 CEST by Moritz Muehlenhoff
Modified: 2013-03-26 09:14 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2012-08-24 13:46:17 CEST
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.
Comment 1 Moritz Muehlenhoff univentionstaff 2012-08-27 16:53:07 CEST
Die Namen der Session-Skripte sollten in englischer Sprache gehalten werden, siehe Bug 15881
Comment 2 Moritz Muehlenhoff univentionstaff 2012-08-28 09:29:46 CEST
*** Bug 22166 has been marked as a duplicate of this bug. ***
Comment 3 Moritz Muehlenhoff univentionstaff 2012-08-30 11:01:24 CEST
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?
Comment 4 Moritz Muehlenhoff univentionstaff 2012-08-30 13:54:10 CEST
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.
Comment 5 Moritz Muehlenhoff univentionstaff 2012-08-30 13:55:02 CEST
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.
Comment 6 Moritz Muehlenhoff univentionstaff 2012-09-04 09:33:19 CEST
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.
Comment 7 Moritz Muehlenhoff univentionstaff 2012-09-04 09:38:18 CEST
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.
Comment 8 Moritz Muehlenhoff univentionstaff 2012-09-04 14:53:29 CEST
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)
Comment 9 Moritz Muehlenhoff univentionstaff 2012-09-05 12:51:56 CEST
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.
Comment 10 Stefan Gohmann univentionstaff 2012-09-08 14:45:03 CEST
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
Comment 11 Stefan Gohmann univentionstaff 2012-10-22 09:20:16 CEST
- 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
Comment 12 Stefan Gohmann univentionstaff 2012-10-22 09:22:26 CEST
(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
Comment 13 Moritz Muehlenhoff univentionstaff 2012-10-22 10:32:32 CEST
(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.
Comment 14 Moritz Muehlenhoff univentionstaff 2012-10-26 13:14:01 CEST
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.
Comment 15 Stefan Gohmann univentionstaff 2012-10-26 22:40:43 CEST
Sollte der Firefox nicht im Fullscreen gestartet werden?
Comment 16 Moritz Muehlenhoff univentionstaff 2012-10-30 15:19:56 CET
(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.
Comment 17 Stefan Gohmann univentionstaff 2012-10-31 08:08:10 CET
Bzgl. dem Passwortwechsel gibt es Bug #28896.

Bzgl. der Design Anpassung gibt es Bug #28411

Bzgl. Autostartsitzungen gibt es Bug #28329

Rest OK.
Comment 18 Moritz Muehlenhoff univentionstaff 2013-03-26 09:14:13 CET
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".