!!! automatisches Einloggen mit KDE

Eigentlich schätzen wir alle Linux ja wegen seiner Sicherheit, die nicht
zuletzt darauf basiert, daß man verschiedene Nutzer einrichten kann und
man zum Einloggen jeweils ein Passwort angeben muss. Dennoch gibt es Gründe,
das der Rechner direkt ohne Eingabe eines Users und eines Passworts in eine
KDE-Oberfläche startet.

Der eine Grund ist, daß man sicher ist, daß man sowieso nur selber an den
Rechner kommt. Hierbei bleibt es dem User selbst überlassen, zwischen
Schutzbedürfnis seines Accounts und Sicherheit des Zugriffs abzuwägen. Ein
anderer Grund ist, daß man einen Standard- (Gast-) Account einrichtet, der
für normale Arbeiten benutzt werden kann, die keine User-Privilegien
benötigen. Dies kann z.B. sinnvoll sein, wenn ein Rechner hauptsächlich
genutzt wird, um als Terminal auf anderen Rechnern zu arbeiten oder nur als
Surf-Station, auf der nur ein Browser läuft, etc.

Mein eigenes Problem liegt ein bisschen dazwischen. Ich arbeite oft auf meinem
Laptop und programmiere dann meistens an irgendeinem Projekt herum, von dem
ich mir Teile auf den Laptop kopiert habe. Dabei ist dort nie irgendwas
geheimes. Dabei will ich den Rechner schnell und unproblematisch hochfahren.
Ab und zu möchte ich allerdings auch unter anderen Accounts arbeiten (z.B.
für meine Frau), um eigene Sessions und Einstellungen zu bekommen oder auch
um als root zu arbeiten.

!! Account ohne Passwort

Die einfache Lösung ist, einen Account ohne Passwort einzurichten. Obwohl
die normalen Tools meistens meckern, wenn man dies versucht, reicht doch
das Löschen des Passwort-Eintrags in der ''/etc/passwd''-Datei aus, um das
zu erreichen.

! Warum reicht das nicht?

Dennoch ist das unkomfortabel. Man schaltet den Rechner ein und dieser läuft
eine Weile, bis er hochgefahren ist. So weit - so gut. Nun muss man sich
allerdings einloggen (ohne Passwort also mindestens 2 mal "Enter" drücken)
und dann dauert es wieder eine Weile, in der man warten muss. Warum kann
nicht direkt die Oberfläche eines Standard-Benutzers geladen werden?

!! unelegante Lösungen

Die zuerst von mir erwogene Lösung ist, daß man den automatischen Start des
KDE-Logins verhindert (z.B. durch Deinstallation des Paketes ''kdm'') und
dann in den Startskripten des Systems etwas eigenes bastelt. Allerdings machte
mich das nicht so ganz glücklich, denn was macht man denn, wenn nun doch
mal ein anderer User unter KDE arbeiten will, ohne dafür erst auf die
Konsole zu müssen und einige Befehle einzugeben.

Für bestimmte Anwendungen, wie z.B. ein dedizierter Rechner, der auschließlich
für einen Zweck benutzt wird (z.B. Surfstation) mag das der richtige Weg sein,
für meinen Rechner war das jedoch nicht gut.

!! Elegante Lösung

Lange blieb diese Vision von mir unbearbeitet, bis ich irgendwann dahinterkam,
daß genau dieser Fall vom KDE-Loginmanager '''kdm''' schon längst erfasst
wird. Dann dauerte es nicht lange, bis ich herausfand, daß diese Einstellungen
auch per KDE Control Center vorgenommen werden können. Die Einstellungen
werden im Verzeichnis ''/etc/kde3/kdm/'' in verschiedenen Dateien abgelegt.
Diese sind auch halbwegs gut in den manpages dokumentiert. Eine sehr umfangreiche
Doku gibt es auch unter
http://docs.kde.org/stable/en/kdebase/kdm/kdm-files.html#kdmrc
Da das Control
Center aber der leichteste Zugang ist, und obwohl ich sonst immer ein Feind
von graphischer Konfiguration bin, habe ich mich diesmal entschlossen, hier
diesen Weg zu beschreiben:

! So wird's eingestellt

Im KDE-Kontrollzentrum wählt man "Systemverwaltung/Anmeldungsmanager", dann unten links den "Systemverwaltungsmodus". Die Registerkarte ganz rechts
befasst sich nun mit dem, was wir wollen: "Vereinfachung". :-) Oben links klickt
man dann auf "Enable auto-login" und auf "Truly automatic login". In dem
Auswahlkasten darunter setzt man nun den User, der automatisch eingeloggt
werden soll, also z.B. "gast". (Dieser muss natürlich vorher schon angelegt
worden sein.) Die Einstellung ganz unten "Automatically Log in after X Server
Crash habe ich jedoch ausgeschaltet. Danach mit "Apply" bestätigen und das
Control Center wieder schliessen.

Jetzt kann man noch mit der rechten Maustaste auf den Schließen-Button in der
Panel-Leiste klicken und dort in die Einstellungen gehen. Dort kann man
einstellen, ob die Änderungen an der Session (d.h. welches Programm wo
geöffnet ist etc.) beim herunterfahren gespeichert werden sollen und ob danach
jedesmal gefragt werden soll (auch diese Frage finde ich inzwischen recht
nervig.)

! Einstellung per Datei

Wer der graphischen Konfiguration nicht traut, benutzt entweder diff in o.g.
Verzeichnis, oder schaut von Hand in die Datei ''/etc/kde3/kdm/kdmrc''.
Achtung! Sobald diese Datei einmal vom Control Center aus neu geschrieben
wird, sind alle Kommentare und damit die Dokumentation gelöscht. (Das
bestätigt meine Argumente gegen graphische Konfigurationstools...)

! So wird's benutzt

Wer jetzt mit ''/etc/init.d/kdm restart'' den kdm neu startet, wird
automatisch eingeloggt. Fertig! Wer sich als jemand anderes einloggen will,
loggt sich zuerst mal als Gast normal aus. Danach wird das normale kdm
Login-Fenster angezeigt und man kann sich wie vorher auch als beliebiger User
(auch root) anmelden. Wer den Rechner gerade einschaltet und es eilig hat,
kann das hochfahren des Gast-Users auch mit "Strg-Alt-Del" (Stoppen des
X-Servers) abwürgen und hat dann fast genausoschnell den Login-Screen wie
vorher.

!! automatisch einloggen beim LinuxTerminalServer

Alles oben gesagte bezog sich nur auf das normale Login, das ein normaler, einzelner Benutzer bekommt. Auf einem System, das mehrere Arbeitsplätze mit Logins versieht, ist das Ganze etwas komplizierter. In der Datei ''/etc/kde3/kdm/kdmrc'' kann man Sektionen für einzelne Arbeitsplätze bilden. Dies ist genau erklärt in http://docs.kde.org/stable/en/kdebase/kdm/kdm-files.html#kdmrc.

Als Beispiel hier eine Konfiguration für ein Autologin des Arbeitsplatzes "workstation1" mit dem Benutzer "user1":

{{{
[X-workstation1.intranet:0-Core]

AutoLoginEnable=true
AutoLoginUser=user1
AutoReLogin=true
AutoLoginAgain=true
}}}

Diese Konfiguration (insbesondere die letzte Zeile) funktioniert erst in KDE-Versionen ab 2006 (also insbes. in Debian Sarge noch nicht). Hier bietet sich als einfacher Ersatz evtl. folgendes innerhalb dieser Sektion an. Es erlaubt zumindest ein schnelles Einloggen durch "Enter".

{{{
NoPassEnable=true
NoPassUsers=wohnung
}}}

!!! Sicherheit

Das ein Autologin auf LinuxTerminalServer-Systemen eine potentiell sehr gefährliche Sache ist, brauche ich wohl nicht extra zu erwähnen. Dies ist nur sinnvoll, wenn ich einen User einlogge, der absolut nichts gefährliches machen kann (der z.B. nur einen Browser öffnet als "Kiosk-System" oder eine Präsentation fürs Schaufenster abspielt) oder wenn ich allen Personen, die in die Nähe meines Terminals kommen, restlos vertraue (also nie).

[{Tag X11}]