# GNOME-Anmeldefenster-Referenzhandbuch

## Begriffe und Schreibweisen, die in diesem Handbuch verwendet werden

Dieses Handbuch beschreibt Version 2.26.0 des GNOME-Anmeldefensters. Es wurde zuletzt am 20.07.2009 aktualisiert.

Wähler - Ein Programm, das zum Auswählen eines entfernten Rechners verwendet wird, um eine dortige Anzeige fernzusteuern (`gdm-host-chooser`).

FreeDesktop - Die Organisation, die Desktop-Standards bereitstellt, wie die Spezifikation der Desktop-Einträge, die von GDM verwendet werden. http://www.freedesktop.org.

GDM - GNOME Anmeldefenster. Diese Bezeichnung wird zur Beschreibung des Softwarepakets als Ganzes verwendet.

Begrüßer - Das Fenster zur grafischen Anmeldung (bereitgestellt durch `gnome-shell`).

PAM - Pluggable Authentication Mechanism

XDMCP - X Displaymanager-Protokoll

Xserver - Eine Implementierung des »X Window System«. Beispielsweise der Xorg Xserver, der durch die »X.org Foundation« (http://www.x.org) bereit gestellt wird.

Pfade, die mit einem Wort in eckigen Klammern beginnen, sind relativ zum Installations-Präfix. Beispielsweise bezieht sich `<share>/pixmaps/` auf `/usr/share/pixmaps`, wenn GDM mit `--prefix=/usr` konfiguriert wurde.

## Überblick

### Einführung

Das Gnome-Anmeldefenster (GDM) ist ein Anmeldebildschirm, der über alle wichtigen Merkmale verfügt, um lokale oder entfernte Anzeigen zu verwalten. GDM wurde komplett neu geschrieben und enthält keinen Code aus XDM oder anderweitig vom X-Konsortium stammenden Code.

Beachten Sie, dass GDM in hohem Maße konfigurierbar ist. Viele Einstellungen können die Systemsicherheit beeinflussen. Punkte, die Sie besonders beachten sollten, werden in diesem Dokument hervorgehoben dargestellt.

Bitte beachten Sie, dass GDM auf einigen Betriebssystemen abweichend von den in diesem Dokument beschriebenen Standardwerten vorkonfiguriert wird. Falls GDM von diesem Dokument abzuweichen scheint, dann prüfen Sie bitte, ob die diesbezügliche Konfiguration von der hier beschriebenen abweichen darf.

Weitere Informationen über GDM finden Sie auf der Projekt-Website: http://wiki.gnome.org/Projects/GDM.

Für Anfragen oder Diskussionen über GDM wenden Sie sich bitte an das Diskussionsforum auf https://discourse.gnome.org/tag/gdm. Die Archive der früheren Mailingliste sind ebenfalls eine hervorragende Quelle für Antworten auf allgemeine Fragen. Die Liste wurde auf https://mail.gnome.org/archives/gdm-list/ archiviert und bietet eine Suchfunktion für Schlüsselwörter und Textpassagen.

Bitte senden Sie alle Fehlermeldungen oder Verbesserungsvorschläge an https://gitlab.gnome.org/GNOME/gdm/-/issues/.

### Stabilität der Schnittstelle

GDM 2.20 und ältere Versionen unterstützen stabile Schnittstellen zur Konfiguration. Die Codebasis wurde jedoch für GDM 2.22 vollständig neu geschrieben und ist nicht gänzlich kompatibel mit älteren Versionen. Dies liegt einerseits daran, dass es anders arbeitet und einige Optionen überflüssig werden oder noch nie sinnvoll waren und andererseits, dass einige Funktionalität noch nicht wieder implementiert worden ist.

Schnittstellen, die auch in Zukunft fortlaufend unverändert unterstützt werden, beinhalten die Init-, PreSession-, PostSession-, PostLogin- und Xsession-Skripte. Einige Konfigurationsoptionen des Daemon in der Datei `<etc>/gdm/custom.conf` werden fortlaufend unterstützt. Ebenfalls werden die Datei `~/.dmrc` und die Speicherorte der Fotos des Benutzeralbums weiterhin unterstützt.

GDM 2.20 und ältere verfügten über die Fähigkeit, mehrere Bildschirme über verschiedene Grafikkarten anzusteuern. Sie kommt zur Anwendung in Umgebungen mit Terminal Server, einem Anmeldefenster mittels eines Programms wie Xnest oder Xephyr, dem Programm »gdmsetup«, XML-basierten Themen des Begrüßungsbildschirms. Es wurde auch die Fähigkeit unterstützt, den XDMCP-Wähler vom Anmeldebildschirm aus zu starten. Diese Merkmale wurden nicht während der Neuprogrammierung für 2.22 hinzugefügt.

### Funktionsbeschreibung

GDM ist für die Verwaltung der Anzeigen des Systems zuständig. Dies beinhaltet die Legitimation der Benutzer, den Start und das Beenden der Benutzersitzung. GDM ist konfigurierbar, die diesbezüglichen Möglichkeiten werden im Abschnitt »GDM konfigurieren« in diesem Dokument beschrieben. GDM ist auch von Benutzern mit Behinderungen nutzbar.

GDM ermöglicht die Verwaltung der Hauptanzeige und über VT (Xserver Virtual Terminal) gestarteter Anzeigen. Es ist integriert in andere Anwendungen wie dem Benutzerwechsel und dem GNOME Bildschirmschoner, um mehrere Anzeigen auf der lokalen Konsole über die VT-Schnittstelle zu verwalten. Es kann auch XDMCP-Anzeigen verwalten.

Unabhängig von deren Typ führt GDM folgendes bei der Verwaltung der Anzeige aus: GDM startet den X-Server-Prozess, führt danach mit Systemverwalterrechten das `Init`-Skript aus, und startet dann auf der Anzeige das Begrüßer-Programm.

Das Begrüßer-Programm wird mit den Rechten des unprivilegierten Benutzers/der Gruppe »gdm« ausgeführt. Die Hauptfunktion des Begrüßer-Programms besteht in der Legitimation des Benutzers. Der Legitimationsprozess wird durch PAM (Pluggable Authentication Modules) gesteuert. Die PAM-Module stellen fest, welche Eingabeaufforderungen (falls vorhanden) dem Benutzer angezeigt werden sollen. Auf einem gewöhnlichen System fordert das Begrüßer-Programm die Eingabe von Benutzername von Passwort zur Legitimation an. Wie auch immer, einige Systeme können auch so konfiguriert sein, dass sie andere Legitimationsmechanismen wie Fingerabdruckerkennung oder SmartCard-Leser nutzen. GDM kann so konfiguriert werden, dass diese Anmeldemethoden parallel zu den Anmeldeerweiterungen des Begrüßers und der Option `--enable-split-authentication` für `./configure` unterstützt werden, oder einmalig über die PAM-Konfiguration des Systems.

Die Smartcard-Erweiterung kann über den GSettings-Schlüssel `org.gnome.display-manager.extensions.smartcard.active` aktiviert oder deaktiviert werden.

Ebenso ist das für die Fingerabdruckleser-Erweiterung über den Schlüssel `org.gnome.display-manager.extensions.fingerprint.active` möglich.

GDM und PAM können so konfiguriert werden, dass keinerlei Eingabe erforderlich ist und automatisch ein Benutzer angemeldet und eine Sitzung gestartet wird. Das kann in bestimmten Umgebungen sinnvoll sein, zum Beispiel auf Systemen mit einem einzigen Benutzer oder für öffentlich aufgestellte Rechner.

Zusätzlich zur Legitimation ermöglicht das Begrüßer-Programm dem Benutzer die Auswahl der zu startenden Sitzung und der zu verwendenden Sprache. Sitzungen werden in Dateien mit der Endung ».desktop« definiert. Weitere Informationen finden Sie im Abschnitt »Konfiguration der GDM-Benutzersitzung und Sprache« dieses Dokuments. Per Vorgabe ist GDM so konfiguriert, dass ein Benutzeralbum angezeigt wird, in welchem der Benutzer sein Benutzerkonto durch Anklicken eines Bildes auswählen kann, anstatt seinen Benutzernamen einzugeben. GDM speichert die voreingestellte Sitzung und Sprache des Benutzers in der Datei `~/.dmrc`. Falls der Benutzer keine Sitzung oder Sprache in der grafischen Anmeldung auswählt, verwendet GDM diese Vorgabewerte.

Nach der Legitimierung eines Benutzers führt der Dämon das `PostLogin`-Skript und dann das `PreSession`-Skript als »root« aus. Danach wird die Benutzersitzung gestartet. Sobald der Benutzer die Sitzung beendet wird das `PostSession`-Skript als »root« ausgeführt. Diese Skripte werden als Ansatzpunkt für Distributionen und Endanwender zur Verfügung gestellt, um den Ablauf von Sitzungen anzupassen. Zum Beispiel könnten Sie diese Ansatzpunkte zum automatischen Erstellen des persönlichen Ordners und automatischen Löschen bei Abmeldung verwenden. Der Unterschied zwischen dem `PostLogin`- und dem `PreSession`-Skript ist, dass das `PostLogin`-Skript vor dem Aufruf »pam_open_session« gestartet wird, d.h. dort ist der richtige Ort um alles zu erledigen, was vor der Initialisierung der Benutzersitzung erledigt werden soll. Das `PreSession`-Skript wird nach der Initialisierung aufgerufen.

### Das Panel des Begrüßers

Das GDM-Anmeldefenster zeigt ein Panel auf dem unteren Bildschirmrand, das weitere Funktionen zur Verfügung stellt. Sobald ein Benutzer ausgewählt wurde, ermöglicht das Panel die Wahl einer Sitzung, einer Sprache und einer Tastaturbelegung für den Zeitraum nach der Anmeldung. Der Belegungswähler belegt die Tastatur entsprechend auch bei Eingabe des Passwortes. Das Panel beinhaltet ebenfalls einen Bereich für Statussymbole von Anmeldediensten. Beispiele für Statussymbole sind ein Symbol für den Ladezustand des Akkus und die Aktivierung der Barrierefreiheit. Im Anmeldefenster werden auch Knöpfe zum Herunterfahren oder Neustart des Systems angezeigt.GDM kann nach Wunsch so konfiguriert werden, dass die Knöpfe nicht angezeigt werden. GDM kann auch mittels »PolicyKit« (oder mittels »RBAC« in Oracle Solaris) so eingestellt werden, dass eine Legitimierung für ein Herunterfahren oder für einen Neustart angefordert wird.

Beachten Sie, dass die Merkmale zur Tastaturbelegung nur auf Systemen verfügbar sind, die »libxklavier« unterstützen.

### Barrierefreiheit

GDM unterstützt die »Barrierefreie Anmeldung«, welche den Benutzern die Anmeldung an ihrer Sitzung erlaubt, die nicht auf die übliche Weise den Bildschirm, die Maus oder die Tastatur nutzen können. Barrierefreiheits-(AT)-Technologien wie Bildschirmtastatur, Bildschirmleser, Bildschirmlupe und der AccessX-Tastaturzugriff des X-Servers sind verfügbar. Es ist ebenso möglich, den Text zu vergrößern oder kontrastreiche Symbole oder Bedienelemente zu verwendet, falls dies erforderlich ist. Ziehen Sie den Abschnitt »Konfiguration der Barrierefreiheit« dieses Dokuments zu Rate, um weitere Informationen über die verschiedenen Barrierefreiheitsfunktionen zu erhalten.

Auf einigen Betriebssystemen kann es notwendig sein, dass der Benutzer »gdm« Mitglied der Gruppe »audio« ist, um Barrierefreiheits-Programmen die Audioausgabe (z.B. bei Umwandlung von Text in Sprache) zu ermöglichen.

### Das GDM-Benutzeralbum

Das Benutzeralbum ist die Oberfläche, welche es Benutzern ermöglicht, Ihren Benutzernamen durch Klicken mit der Maus auf ein Foto auszuwählen. Dieses Sondermerkmal kann über den GSettings-Schlüssel »org.gnome.login-screen disable-user-list« ein- oder ausgeschaltet werden. Wenn es ausgeschaltet ist, müssen die Benutzer Ihren vollständigen Benutzernamen eingeben. Wenn es eingeschaltet ist, werden alle lokalen Benutzer angezeigt, die sich am System anmelden dürfen (alle Benutzerkonten, die in der Datei »/etc/passwd« definiert sind und eine gültige Shell und eine genügend große Benutzerkennzahl haben) sowie entfernte Benutzer, die sich vor kurzem angemeldet haben. Die Benutzeralben in GDM 2.20 und ältere versuchen alle entfernten Benutzer anzuzeigen, was zu Problemen in großen Unternehmensnetzen führte.

Im Benutzeralbum werden die Benutzer mit den häufigsten Anmeldungen im oberen Bereich der Liste angezeigt. Dadurch wird sichergestellt, dass die Benutzer mit den häufigsten Anmeldungen ihr Bild schneller finden können.

Das Benutzeralbum unterstützt Suchen-beim-Eingeben, was dynamisch die Auswahl anpasst, während der Benutzer seinen entsprechenden Benutzernamen aus der Liste eingibt. Dies bedeutet, dass ein Benutzer mit einem langem Benutzernamen nur die ersten Buchstaben eingeben muss, um den gewünschten Eintrag in der Liste auszuwählen.

Die von GDM verwendeten Symbole können systemweit vom Systemverwalter installiert oder auch in den persönlichen Ordnern der Benutzer gespeichert werden. Bei systemweiter Installation sollten sich die Symbole im Ordner `<share>/pixmaps/faces/` befinden. Der Dateiname sollte dem jeweiligen Benutzernamen entsprechen. Die Bilddateien sollten in einem von GTK+ lesbaren Format vorliegen, wie beispielsweise PNG oder JPEG. Wenn die Symbole systemweit installiert werden, muss der Benutzer »gdm« in diesem Ordner Leserechte haben.

Falls es kein globales Symbol für den Benutzer gibt, sucht GDM im persönlichen Ordner des Benutzers ($HOME) nach der Bilddatei. Zunächst wird nach der Bilddatei des Benutzers in `~/.face` gesucht. Falls diese nicht gefunden wird, wird nach `~/.face.icon` gesucht. Falls auch diese Datei nicht gefunden wird, wird der in der Datei `~/.gnome2/gdm` für »face/picture« gespeicherte Wert verwendet.

Falls ein Benutzer keine definierte Bilddatei hat, verwendet GDM das Symbol »stock_person« des aktuellen GTK+-Themas. Wenn ein solches Bild nicht definiert ist, dann wird ein generisches Benutzerbild verwendet.

Bitte beachten Sie, dass das Laden und Skalieren der Benutzerbilder aus entfernten persönlichen Ordnern viel Zeit in Anspruch nehmen kann. Weil es unpraktikabel ist, Bilder über NIS oder NFS zu laden, versucht GDM keine Bilder aus entfernten persönlichen Ordnern zu laden.

Wenn das Benutzeralbum aktiviert ist, werden auf dem Computer vorhandene gültige Benutzernamen für jeden sichtbar dargestellt. Dies schränkt natürlich in gewissem Maße die Sicherheit ein, weil ein böswilliger Benutzer die gültigen Benutzernamen nicht sehen sollte. In einigen sehr sicherheitskritischen Umgebungen sollte das Benutzeralbum nicht verwendet werden.

### XDMCP

Der GDM-Dienst kann so eingestellt werden, dass auf »X Display Manage Protocol (XDMCP)«-Anfragen von entfernten Anzeigen reagiert wird und diese bearbeitet werden. Nach Vorgabe ist die Unterstützung für XDMCP nicht abgeschaltet, kann aber auf Wunsch aktiviert werden. Wenn GDM mit Unterstützung für »TCP Wrapper« erstellt wurde, so wird der Dienst nur Zugriff von Rechnern zulassen, die im Abschnitt »GDM service« in der Konfigurationsdatei von »TCP Wrappers« festgelegt sind.

GDM enthält verschiedene Mechanismen, die es robuster gegenüber Überlastungsangriffen auf den XDMCP-Dienst machen. Sehr viele Protokollparameter wie Handshake-Zeitabläufe usw. können fein abgestimmt werden. Die vorausgewählte Konfiguration sollte auf den meisten Systemen vernünftig funktionieren.

Laut Voreinstellung lauscht GDM auf XDMCP-Anfragen auf dem für XDMCP üblichen Port 177 und antwortet auf »QUERY«- und »BROADCAST_QUERY«-Anfragen mit einem »WILLING«-Paket an den Initiator.

GDM kann auch konfiguriert werden, um »INDIRECT«-Anfragen zu berücksichtigen und eine Rechnerauswahl dem entfernten Bildschirm zu präsentieren. GDM wird sich die Benutzerwahl merken und folgende Anfragen an den gewählten Verwalter weiterleiten. Es unterstützt ebenfalls eine Erweiterung zum Protokoll, die die Umleitung bei erfolgreicher Verbindung vergisst. Diese Erweiterung wird nur unterstützt, wenn beide Dienste durch GDM bereit gestellt werden. Sie ist transparent und wird von XDM oder anderen XDMCP-Diensten ignoriert.

Falls XDMCP nicht zu funktionieren scheint, stellen Sie bitte sicher, dass alle betreffenden Rechner in der Datei `/etc/hosts` benannt sind.

Informationen über Sicherheitsaspekte bei der Verwendung von XDMCP finden Sie im Abschnitt »Sicherheit«.

### Protokollführung

Zur Fehler- und Statusprotokollierung wird »syslog« von GDM verwendet. Es können auch Diagnosemeldungen protokolliert werden, die zur Fehlersuche nützlich sein können, falls GDM nicht richtig funktioniert. Die Diagnoseausgabe kann durch Setzen des Schlüssels »debug/Enable« auf »wahr« in der Datei `<etc>/gdm/custom.conf` aktiviert werden.

Die Ausgaben verschiedenster XServer werden im GDM-Protokollordner abgelegt, welcher normalerweise `<var>/log/gdm/` ist. Jede Meldung des Xserver wird in einer Datei abgespeichert, die mit dem Anzeigewert `<display>.log` verknüpft ist.

Die Sitzungsausgabe wird durch den GDM-Dienst in die Datei `~/`$XDG_CACHE_HOME`/gdm/session.log` weitergeleitet. Das ist üblicherweise die Datei `~/.cache/gdm/session.log`. Die Datei wird bei jeder Anmeldung neu überschrieben, was bedeutet, dass durch Ab- und Anmelden mit GDM mit dem gleichem Benutzernamen Nachrichten aus der vorhergehenden Sitzung verloren gehen.

Beachten Sie: Falls GDM aus irgendwelchen Gründen diese Datei nicht erstellen kann, wird eine Fallback-Datei namens `~/`$XDG_CACHE_HOME`/gdm/session.log.XXXXXXXX` angelegt, wobei `XXXXXXXX` aus zufällig erzeugten Zeichen generiert wird.

### Schneller Benutzerwechsel

GDM ermöglicht es, dass mehrere Benutzer gleichzeitig angemeldet sind. Sobald ein Benutzer angemeldet ist, können sich weitere Benutzer über den Benutzerwechsler, über das GNOME-Panel oder über den Knopf »Benutzer wechseln« im Dialog des Bildschirmschoners anmelden. Die aktive Sitzung kann beliebig mit dem selben Verfahren gewählt werden. Beachten Sie, dass einige Distributionen den Benutzerwechsler nicht per Vorgabe zum Panel hinzufügen. Er kann über das Panelmenü jederzeit hinzugefügt werden.

Beachten Sie, dass diese Funktion nur auf Systemen verfügbar ist, die »Virtuelle Terminals« unterstützen. Falls diese nicht unterstützt werden, arbeitet diese Funktion nicht.

## Sicherheit

### Der Benutzer GDM und die Gruppe GDM

Aus Sicherheitsgründen werden ein dedizierter Benutzer und eine Gruppenkennung für den ordnungsgemäßen Betrieb empfohlen. Benutzer und Gruppe heißen normalerweise »gdm« auf den meisten Systemen, können aber beliebig benannt werden. Alle grafischen GDM-Benutzeroberflächen werden unter diesem Benutzerkonto gestartet, das heißt alle Programme laufen in der eigenen Umgebung des Benutzerkontos. Das Konto und die Gruppe sollten eingeschränkte Rechte haben.

Das einzige spezielle vom Benutzer »gdm« benötigte Privileg sind Lese- und Schreibrechte für die Xauth-Dateien im Ordner `<var>/run/gdm`. Der Ordner `<var>/run/gdm` sollte dem Benutzer root und der Gruppe gdm gehören und die oktalen Zugriffsrechte 1777 haben.

Sie sollte unter keinen Umständen GDM ein Benutzerkonto und eine Gruppenkennung zuweisen, zu denen ein Benutzer leicht Zugang bekommen kann, wie z.B. das Benutzerkonto `nobody`. Jeder Benutzer, der Zugriff auf einen Xauth-Schlüssel erlangt, kann in der zugehörigen Sitzung eine Benutzeroberfläche belauschen und steuern oder einen Überlastungsangriff auf diese Sitzung starten. Es ist wichtig sicherzustellen, dass das System richtig konfiguriert ist, sodass nur das »gdm«-Benutzerkonto Zugriff auf diese Dateien hat und eine Anmeldung mit diesem Konto nicht einfach möglich ist. Zum Beispiel sollte das Konto nicht ohne Passwort angelegt sein oder eine Anmeldung anderer als Administratoren erlauben.

Die Konfiguration des GDM-Begrüßers wird in GConf gespeichert. Um dem Benutzer »gdm« die Speicherung der Konfiguration zu ermöglichen, benötigt dieser einen schreibbaren persönlichen Ordner ($HOME). Die Benutzer dürfen die vorgegebenen GConf-Einstellungen dahingehend ändern, dass der Benutzer »gdm« auf einen solchen Ordner verzichten kann. Allerdings könnten einige GDM-Funktionen nicht verfügbar sein, falls das Speichern von Statusinformationen in den GConf-Einstellungen nicht möglich ist.

### PAM

GDM verwendet PAM für die Legitimation beim Anmelden. Die Abkürzung PAM steht für »Pluggable Authentication Module« und wird von den meisten Programmen auf Ihrem Computer verwendet, die eine Legitimation erfordern. Dies ermöglicht dem Systemverwalter, ein spezifisches Anmeldeverhalten für verschiedene Anmeldeprogramme einzustellen, wie beispielsweise SSH, grafische Anmeldung, Bildschirmschoner usw.

PAM ist kompliziert und umfangreich konfigurierbar. Diese Dokumentation beabsichtigt nicht die Konfiguration detailliert zu erklären, es wird jedoch ein Überblick gegeben, wie sich die PAM-Konfiguration auf GDM bezieht, und wie PAM allgemein mit GDM konfiguriert wird. Es wird vorausgesetzt, dass jemand, der PAM konfigurieren will, sich auch weiter in die PAM-Dokumentation vertiefen müsste, um die Konfiguration von PAM und die in diesem Abschnitt verwendeten Begriffe zu verstehen.

Die Konfiguration von PAM hat verschiedene, aber ähnliche Schnittstellen auf unterschiedlichen Betriebssystemen. Lesen Sie die Hilfeseiten zu pam.d und pam.conf für weitere Details. Lesen Sie unbedingt die Dokumentation zu PAM und machen Sie sich mit den Auswirkungen beabsichtigter Konfigurationsänderungen auf die Sicherheit vertraut.

Beachten Sie, dass GDM per Vorgabe den PAM-Dienstnamen »gdm« für die normale Anmeldung und den PAM-Dienstnamen »gdm-autologin« für die automatische Anmeldung verwendet. Diese Dienste dürften nicht in Ihren Konfigurationsdateien »pam.d« oder »pam.conf« definiert sein. Falls dort kein Eintrag existiert, wendet GDM das vorgegebene PAM-Verhalten an. Auf den meisten Systemen funktioniert das recht gut. Allerdings funktioniert die automatische Anmeldung nicht, wenn der Dienst »gdm-autologin« nicht definiert ist.

Das `PostLogin`-Skript wird ausgeführt, bevor pam_open_session aufgerufen wird, das `PreSession`-Skript danach. Dies ermöglicht dem Systemverwalter, diverse Skripte zum Anmeldeprozess hinzuzufügen, entweder bevor oder nachdem PAM die Sitzung initialisiert.

Wenn Sie möchten, dass GDM mit anderen Authentifizierungsmechanismen wie Fingerabdruckerkennung oder SmartCard-Lesegeräten zusammenarbeitet, sollten Sie dies als PAM-Servicemodul implementieren, anstatt den GDM-Code direkt zu verändern. Ziehen Sie die PAM-Dokumentation Ihres Systems zu Rate.

PAM hat einige Einschränkungen bezüglich der Fähigkeit, mit mehreren Legitimationsarten gleichzeitig umzugehen, wie die Unterstützung für sowohl die Anmeldung mittels SmartCard als auch über die Eingabe von Benutzername und Passwort im Anmeldeprogramm. Es gibt jedoch Möglichkeiten, dass auch das funktioniert. Am besten ist es, beim Erstellen einer solchen Konfiguration zunächst nach allgemein funktionierenden Lösungen für dieses Problem zu suchen.

Falls die automatische Anmeldungen auf einem System nicht funktioniert, überprüfen Sie, ob der Abschnitt »gdm-autologin« in der Konfiguration von PAM definiert ist. Damit sie funktioniert, ist es erforderlich ein PAM-Modul zu verwenden, das gar keine Legitimierung durchführt, oder das einfach »PAM_SUCCESS« aus allen öffentlichen Schnittstellen zurückgibt. Wenn man davon ausgeht, dass ein System das PAM-Modul »pam_allow.so« installiert hat, welches genau dies tut, so würde eine PAM-Konfiguration zum Einschalten von »gdm-autologin« folgendermaßen aussehen:

           gdm-autologin auth  required    pam_unix_cred.so.1
           gdm-autologin auth  sufficient  pam_allow.so.1
           gdm-autologin account  sufficient  pam_allow.so.1
           gdm-autologin session  sufficient  pam_allow.so.1
           gdm-autologin password  sufficient  pam_allow.so.1

Die obige Konfiguration wird keinen lastlog-Eintrag erzeugen. Falls ein Eintrag gewünscht wird, verwenden Sie die folgende für die Sitzung:

           gdm-autologin session required pam_unix_session.so.1

Wenn der Computer von verschiedenen Benutzern verwendet wird, ist eine automatische Anmeldung nicht sinnvoll, aber vielleicht möchten Sie einigen Benutzern eine Anmeldung ohne Passwort ermöglichen. Dieses Merkmal kann einzeln für jeden Benutzer mit dem Werkzeug »Benutzer und Gruppen« aktiviert werden; es wird durch Zuweisen des Benutzers zur Benutzergruppe »nopasswdlogin« vor Eingabe eines Passwortes erreicht. Damit es funktioniert muss die PAM-Konfigurationsdatei für den Service »gdm« z. B. folgende Zeile enthalten:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp und wtmp

GDM erstellt utmp- und wtmp-Einträge in der Benutzerdatenbank bei Anmeldung und Abmeldung von einer Sitzung. Die utmp-Datenbank enthält Informationen zu Benutzerrechten und -konten, auf die solche Befehle wie `finger`, `last`, `login`, und `who` zugreifen. Die wtmp-Datenbank enthält die Chronik der Benutzerrechte und -konten für die utmp-Datenbank. Schauen Sie für weitere Informationen in die Handbücher von utmp und wtmp.

### Legitimierungsschema des XServer

Die Dateien des XServer zur Legitimierung werden beim Start in einem neu erstellten Unterordner von `<var>/run/gdm` abgelegt. Die Dateien werden zum Hinterlegen und Austauschen eines »Passworts« zwischen X-Clients und dem XServer verwendet. Dieses »Passwort« ist für jede laufende Sitzung eindeutig, sodass Benutzer aus einer Sitzung nicht die eines anderen Benutzers belauschen können.

GDM unterstützt nur das Legitimierungsschema »MIT-MAGIC-COOKIE-1« des Xserver. Normalerweise ist der Mehrwert anderer Schemata gering. Daher wurden bisher keine Anstrengungen unternommen, sie zu implementieren. Seien Sie beim Einsatz von XDMCP vorsichtig, weil der Xserver Legitimations-Cookie unverschlüsselt gesendet wird. Falls ein Mithören möglich ist, kann ein Angreifer das Legitimationspasswort während der Anmeldung unabhängig vom verwendeten Schema erspähen. Wenn ein Belauschen möglich, aber unerwünscht ist, dann sollte eine X-Verbindung getunnelt werden, anstatt dem XDMCP einzusetzen. Sie können sich XDMCP als eine Art grafisches Telnet mit den gleichen Sicherheitsproblemen vorstellen. In dem meisten Fällen sollte »ssh -Y« dem Leistungsmerkmal XDMCP vorgezogen werden.

### XDMCP-Sicherheit

Obwohl Ihre Anzeige durch Cookies geschützt wird, werden XEvents und damit auch Tastatureingaben von Passwörtern unverschlüsselt versendet. Sie können sehr leicht belauscht werden.

XDMCP ist vorrangig nützlich zum Betreiben von Thin Clients an Terminal-Servern. Diese Thin Clients benötigen lediglich ein Netzwerk, um auf den Server zugreifen zu können. Daher scheint es die sicherheitstechnisch beste Lösung zu sein, die Thin Clients in einem separaten Netzwerk zu belassen, das keine Verbindung zur Außenwelt hat und sich nur mit dem Server verbinden kann. Der einzige Zugangspunkt nach außen ist der Server. In dieser Art der Konfiguration gibt es keinen unverwalteten Hub oder ein anderes ausspähbares Netzwerk.

### XDMCP-Zugangskontrolle

Die XDMCP-Zugangskontrolle geschieht mittels TCP-Wrappern. Es ist möglich, GDM ohne Unterstützung für TCP-Wrapper zu konfigurieren, sodass diese Funktion auf manchen Betriebssystemen vielleicht nicht unterstützt wird.

Sie sollten den Dienstnamen `gdm` in den Dateien `<etc>/hosts.allow` und `<etc>/hosts.deny` verwenden. Um zum Beispiel die Anmeldung von Computern aus der Domäne `.evil.domain` zu verhindern, fügen Sie

    gdm: .evil.domain

der Datei `<etc>/hosts.deny` hinzu. Sie können auch

    gdm: .your.domain

der Datei `<etc>/hosts.allow` hinzufügen, wenn Sie normalerweise alle Dienste von allen Rechnern erlauben. Lesen Sie die Hilfeseiten zu hosts.allow(5) für weitere Informationen.

### Firewall-Sicherheit

Obwohl GDM bemüht ist, mögliche Angreifer auf XDMCP auszutricksen, ist es dennoch ratsam, dass der XDMCP-Port (normalerweise UDP Port 177) durch Ihre Firewall geblockt wird, falls Sie es nicht unbedingt benötigen. GDM schützt vor verteilten Überlastungsangriffen, aber das X-Protokoll ist von Natur aus unsicher und sollte nur in sicheren Umgebungen verwendet werden. Ebenfalls werden durch jede entfernte Verbindung viele Systemressourcen belegt, was einen Überlastungsangriff mittels XDMCP leichter macht als gegen einen Webserver.

Es ist ratsam, alle Ports des XServer zu blockieren. Das sind die TCP-Ports 6000+ (einer für jede Anzeige) auf Ihrer Firewall. Bedenken Sie, dass GDM die Anzeigennummern 20 und höhere für die flexiblen Bedarfsserver verwendet.

X ist kein besonders sicheres Protokoll im Netz, und XDMCP ist sogar noch unsicherer.

### PolicyKit

GDM kann so konfiguriert werden, das PolicyKit verwendet wird. Dies ermöglicht dem Systemverwalter die Entscheidung darüber, ob der Anmeldebildschirm die Knöpfe zum Ausschalten und Neustart des Rechners im Begrüßer anzeigen soll oder nicht.

Diese Knöpfe werden durch die Aktionen `org.freedesktop.consolekit.system.stop-multiple-users` und `org.freedesktop.consolekit.system.restart-multiple-users` gesteuert. Die Richtlinie für diese Aktionen kann mit dem Werkzeug »Zugriffsberechtigungen« (polkit-gnome-authorization) oder mit dem Befehlszeilenprogramm »polkit-auth« festgelegt werden.

### RBAC (Role Based Access Control)

GDM kann so konfiguriert werden, dass RBAC anstelle von PolicyKit verwendet wird. In diesem Fall wird die RBAC-Konfiguration verwendet, um festzulegen, ob im Begrüßungsbildschirm die Knöpfe für Herunterfahren und Neustart angezeigt werden.

Zum Beispiel wird bei Oracle Solaris die Legitimation »solaris.system.shutdown« zum Steuern verwendet. Ändern Sie einfach die Datei `/etc/user_attr` so, dass der Benutzer »gdm« diese Legitimation hat.

## Unterstützung für ConsoleKit

GDM unterstützt das Veröffentlichen von Benutzerkontoinformationen mit dem Framework Consolekit. ConsoleKit ermöglicht die Mitverfolgung aller angemeldeter Benutzer. In dieser Hinsicht kann es als Ersatz für utmp- und utmpx-Dateien verwendet werden, die auf den meisten Unix-Betriebssystemen zur Verfügung stehen.

Wenn GDM einen neuen Anmeldeprozess für einen Benutzer erstellt ruft es eine privilegierte Methode von ConsoleKit auf, um eine neue Sitzung für den Benutzer zu öffnen. Zu diesem Zeitpunkt liefert GDM auch Informationen über die Benutzersitzung an ConsoleKit wie z.B.: Die Benutzerkennung, der Name der X11-Anzeige der zugehörigen Sitzung, der Rechnername, auf dem die Sitzung läuft (nützlich bei XDMCP-Sitzungen), ob die Sitzung angebunden ist usw. GDM ist als die Instanz, die den Benutzerprozess startet, in einer einzigartigen Lage über alle Vorgänge zu wissen und ihm wird vertraut, die Informationen über die Sitzung geben zu können. Der Gebrauch der privilegierten Methode wird durch die Richtlinien des System-Nachrichtenbus D-Bus eingeschränkt.

Wenn sich ein Benutzer mit einer bereits bestehenden Sitzung bei GDM authentifiziert hat und die Sitzung fortsetzen möchte, dann wird von GDM eine privilegierte Methode von ConsoleKit zum Entsperren der Sitzung aufgerufen. Die genauen Details was passiert, wenn die Sitzung das Signal zum Entsperren erhält, sind nicht festgelegt und von der Sitzung abhängig. Allerdings werden die meisten Sitzungen darauf hin den Bildschirmschoner entsperren.

Wenn sich der Benutzer abmeldet oder GDM oder die Sitzung unerwartet beendet wird, so wird die ConsoleKit-Registrierung der Sitzung gelöscht.

## Konfiguration

GDM verfügt über eine Reihe von Konfigurationsschnittstellen. Diese beinhalten Integrationspunkte für Skripte, die Daemon-Konfiguration, die Begrüßer-Konfiguration, allgemeine Sitzungseinstellungen, die Einbindung der Konfiguration des »gnome-settings-daemon« und die Sitzungskonfiguration. All diese Konfigurationsarten werden nachfolgend detailliert beschrieben.

### Skripting-Integrationspunkte

Die Integrationspunkte für Skripte von GDM können im Ordner `<etc>/gdm/` gefunden werden:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Die `Init`-, `PostLogin`-, `PreSession`- und `PostSession`-Skripte arbeiten alle wie unten beschrieben.

Für jeden Typ Skripts wird das Vorgabe-Skript, das ausgeführt wird, »Default« genannt und es wird in einem Ordner abgelegt, der mit dem Skripttyp assoziiert ist. D.h. das Vorgabe-Skript von `Init` lautet `<etc>/gdm/Init/Default`. Es kann ein Skript je Anzeige verwendet werden, und falls es existiert wird es an Stelle des Vorgabe-Skripts ausgeführt. Diese Skripte werden im selben Ordner abgelegt und haben den selben Namen wie der »DISPLAY«-Wert des Xserver für diese Anzeige. Falls zum Beispiel das Skript `<Init>/:0` existiert wird es für die Anzeige »:0« ausgeführt.

Alle diese mit Systemverwalterrechten ausgeführten Skripte geben den Wert 0 zurück, falls die Ausführung erfolgreich war. Falls ein Fehler auftrat, der zum Abbruch der Anmeldesitzung führte, wird ein von 0 verschiedener Wert zurückgegeben. Beachten Sie auch, dass GDM bis zum Beenden der Skripte blockiert ist. Wenn eines dieser Skripte hängt, dann bleibt der Anmeldevorgang ebenfalls hängen.

Wenn der Xserver für den Anmeldebildschirm erfolgreich gestartet wurde, aber vor der Darstellung des Bildschirms, wird das Skript `Init` von GDM ausgeführt. Dieses Skript ist zum Starten von Programmen nützlich, die ausgeführt werden sollen, während der Anmeldebildschirm angezeigt wird, oder - falls erforderlich - für beliebige Initialisierungen.

Nachdem der Benutzer erfolgreich authentifiziert wurde wird von GDM das Skript `PostLogin` ausgeführt. Dies wird vor dem Aufsetzen einer Sitzung getan, auch vor dem Aufruf von »pam_open_session«. Dieses Skript ist nützlich für Initialisierungen, die vor dem Start der Sitzung geschehen müssen. Zum Beispiel könnte hier der persönliche Ordner des Benutzers angelegt werden.

Nach der Initialisierung der Sitzung wird das Skript `PreSession` von GDM ausgeführt. Dieses Skript ist nützlich für Initialisierungen, die nach dem Start der Sitzung geschehen müssen. Zum Beispiel kann es für die Sitzungsverwaltung oder die Benutzerverwaltung verwendet werden.

Wenn der Benutzer seine Sitzung beendet, führt GDM das Skript `PostSession` aus. Beachten Sie, dass der XServer gestoppt wird und während der Ausführung des Skripts nicht läuft. Daher kann in dieser Zeit nicht auf den X-Server zugegriffen werden.

Bedenken Sie, dass das Skript `PostSession` selbst dann ausgeführt wird, wenn die Anzeige z.B. wegen eines Ein-/Ausgabefehlers oder ähnlichem nicht mehr reagiert. Somit gibt es keine Garantie, dass X-Anwendungen während der Skriptausführung funktionieren.

Alle der oben genannten Skripte setzen die Umgebungsvariable `$RUNNING_UNDER_GDM` auf `yes`. Falls die Skripte auch durch andere Anmeldefenster genutzt werden, ermöglicht Ihnen dies die eindeutige Identifizierung des Aufrufs durch GDM. Auf diese Weise können Sie bestimmten Code ausführen, wenn GDM zum Einsatz kommt.

### Autostart-Einstellungen

Der Ordner `<share>/gdm/autostart/LoginWindow` enthält Dateien im Format der »FreeDesktop.org Desktop Application Autostart Specification«. Funktionsmerkmale der Spezifikation können verwendet werden, um Programme anzugeben, die automatisch neugestartet oder ausgeführt werden sollen, wenn ein bestimmter Wert in der GConf-Konfiguration festgelegt ist usw.

Alle `.desktop`-Dateien in diesem Ordner werden einen automatischen Start der verknüpften Programme bei Erscheinen des Begrüßers auslösen. Von Haus aus wird GDM mit Dateien geliefert, die den einfachen grafischen Begrüßer, die Energieverwaltung, den Einstellungsdienst und den Fensterverwalter Metacity automatisch starten. Jene Programme werden vom Begrüßer benötigt. Zusätzlich werden Desktop-Dateien zum Starten verschiedener AT-Programme geliefert, wenn die im Abschnitt zur Barrierefreiheit angegebenen Konfigurationswerte eingestellt sind.

### Xsession-Skript

Es gibt auch ein Skript `Xsession` im Ordner `<etc>/gdm/Xsession`, das zwischen den Skripten `PreSession` und `PostSession` aufgerufen wird. Dieses Skript unterscheidet nicht zwischen verschiedenen Anzeigen im Gegensatz zu den anderen. Es wird zum eigentlichen Starten der Benutzersitzung verwendet. Das Skript wird mit den Rechten des Benutzers ausgeführt und führt die Sitzung aus, die in der gewählten Desktop-Sitzungsdatei des Benutzers festgelegt ist.

### Daemon-Konfiguration

Der GDM-Daemon wird über die Datei `<etc>/gdm/custom.conf` konfiguriert. Die voreingestellten Werte sind in der GConf-Datei `gdm.schemas` hinterlegt. Es wird empfohlen, dass Endanwender die Datei `/etc/gdm/custom.conf` anpassen, weil die Datei mit den Schemata überschrieben werden könnte, wenn die installierte Version von GDM aktualisiert wird.

Beachten Sie, dass ältere Versionen von GDM zusätzliche Einstellungsoptionen unterstützen, die in neueren GDM-Versionen nicht mehr verfügbar sind.

Die Datei `<etc>/gdm/custom.conf` ist im Schema `keyfile` formatiert. Schlüsselwörter in eckigen Klammern legen Gruppenabschnitte fest, Zeichenketten vor einem Gleichheitszeichen »=« sind Schlüssel und der zugehörige Wert steht hinter dem Gleichheitszeichen. Leere Zeilen und mit einer Raute (»#«) eingeleitete Zeilen werden ignoriert.

In der Datei `/etc/gdm/custom.conf` werden die Gruppenabschnitte »[daemon]«, »[security]« und »[xdmcp]« erkannt. Innerhalb jeder Gruppe legen bestimmte Paare aus Schlüsselwort und Wert das Verhalten von GDM fest. Zum Beispiel muss die Datei folgende Zeilen für eine automatische Anmeldung des Benutzers »Mustermann« enthalten:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=Mustermann

Es folgt die vollständige Liste unterstützter Konfigurationsschlüssel:

#### [chooser]

Multicast

-     Multicast=false

  Falls wahr und IPv6 aktiviert ist, so sendet der Wähler Multicast-Anfragen ins lokale Netzwerk und sammelt Antworten von den Rechnern, die der Multicast-Gruppe beigetreten sind.

MulticastAddr

-     MulticastAddr=ff02::1

  Dies ist die Link-Local Multicast-Adresse.

#### [daemon]

TimedLoginEnable

-     TimedLoginEnable=false

  Legt fest, ob der mit `TimedLogin` festgelegte Benutzer nach einer bestimmten Anzahl inaktiver Sekunden (definiert durch `TimedLoginDelay`) auf dem Anmeldebildschirm angemeldet werden soll. Diese Funktion ist für öffentliche Zugangsrechner oder sogar für Heimanwender nützlich. Sobald der Benutzer die Tastatur benutzt oder Menüs öffnet, wird der Zähler auf 30 Sekunden oder auf `TimedLoginDelay` zurück gesetzt, je nachdem, welche Zahl größer ist. Wenn der Benutzer trotz Aufforderung keinen Benutzernamen eingibt und die Eingabetaste drückt, dann geht GDM davon aus, dass der Benutzer mit automatischer Anmeldung sich sofort anmelden möchte. Bedenken Sie, dass für diesen Benutzer kein Passwort abgefragt wird. Seien Sie also vorsichtig, auch wenn bei Verwendung von PAM eine Passworteingabe bei Anmeldung erzwungen werden kann. Lesen Sie im Handbuch den Abschnitt »Sicherheit - PAM« für weitere Informationen oder für Hilfe, wenn dieses Merkmal nicht zu funktionieren scheint.

TimedLogin

-     TimedLogin=

  Dieser Benutzer wird nach einer bestimmten Anzahl inaktiver Sekunden automatisch angemeldet.

  Wenn der Wert mit einem senkrechten Strich »|« (Unix-Umleitung) endet, dann wird GDM das angegebene Programm ausführen und die Standardausgabe des Programms als Benutzernamen verwenden. Das Programm wird mit gesetzter Variable »DISPLAY« ausgeführt, sodass es möglich ist, je nach Anzeige einen anderen Benutzer zu haben. Zum Beispiel für den Fall, dass der Wert »/usr/bin/getloginuser|« ist, wird das Programm »/usr/bin/getloginuser« ausgeführt, um den Benutzer zu ermitteln.

TimedLoginDelay

-     TimedLoginDelay=30

  Verzögerung in Sekunden, bevor der durch `TimedLogin` festgelegte Benutzer angemeldet wird.

AutomaticLoginEnable

-     AutomaticLoginEnable=false

  Legt fest, ob der durch `AutomaticLogin` festgelegte Benutzer sofort angemeldet werden soll. Dieses Merkmal entspricht einer verzögerten Anmeldung mit einer Verzögerung von 0 Sekunden.

AutomaticLogin

-     AutomaticLogin=

  Dieser Benutzer wird sofort angemeldet, wenn `AutomaticLoginEnable` wahr ist.

  Wenn der Wert mit einem senkrechten Strich »|« (Unix-Umleitung) endet, dann wird GDM das angegebene Programm ausführen und die Standardausgabe des Programms als Benutzernamen verwenden. Das Programm wird mit gesetzter Variable »DISPLAY« ausgeführt, sodass es möglich ist, je nach Anzeige einen anderen Benutzer zu haben. Zum Beispiel für den Fall, dass der Wert »/usr/bin/getloginuser|« ist, wird das Programm »/usr/bin/getloginuser« ausgeführt, um den Benutzer zu ermitteln.

User

-     User=gdm

  Der Benutzername, unter dem der Begrüßer und andere grafische Programme ausgeführt werden. Lesen Sie für weitere Informationen über den Konfigurationsschlüssel `Benutzer` und im Abschnitt »Sicherheit - GDM-Benutzer und Gruppen«.

Group

-     Group=gdm

  Die Gruppe, unter welcher der Begrüßer und andere grafische Programme ausgeführt werden. Lesen Sie für weitere Informationen über den Konfigurationsschlüssel `Gruppe` und im Abschnitt »Sicherheit - GDM-Benutzer und Gruppen«.

#### Optionen zur Fehlerdiagnose

#### [debug]

Enable

-     Enable=false

  Um die Diagnoseausgabe zu aktivieren, setzen Sie den Schlüssel »debug/Enable« in der Datei `<etc>/gdm/custom.conf` auf »wahr« und starten Sie GDM neu. Dann wird die Fehlerdiagnoseausgabe in der Systemprotokolldatei gespeichert, entweder `<var>/log/messages` oder `<var>/adm/messages`, abhängig von Ihrem Betriebssystem.

#### Sicherheitsoptionen

#### [security]

DisallowTCP

-     DisallowTCP=true

  Falls aktiviert, wird beim Starten verbundener X-Server immer ein `-nolisten tcp` an die Befehlszeile angehängt, was eine TCP-Verbindung verhindert. Diese Konfiguration ist sicherer, wenn Sie keine entfernten Verbindungen verwenden.

#### XDMCP-Unterstützung

#### [xdmcp]

DisplaysPerHost

-     DisplaysPerHost=1

  Um Angriffe durch Füllen der Warteschlange zu verhindern, erlaubt GDM nur eine Verbindung für jeden entfernten Rechner. Wenn Sie Anzeigedienste für Rechner mit mehr als einem Bildschirm bereitstellen möchten, sollten Sie diesen Wert entsprechend erhöhen.

  Beachten Sie, dass die Anzahl erlaubter angebundener Anzeigen nicht beschränkt ist. Nur entfernte Verbindungen mittels XDMCP werden durch diese Option beschränkt.

Enable

-     Enable=false

  Legt fest, ob Unterstützung für XDMCP aktiviert wird, sodass entfernte Anzeigen/X-Terminals durch GDM verwaltet werden.

  `gdm` horcht nach Anfragen am UDP-Port 177. Weitere Informationen finden Sie in den Port-Optionen.

  Falls GDM mit Unterstützung dafür kompiliert wurde, kann der Zugriff auf entfernte Displays mithilfe der Bibliothek »TCP Wrappers« gesteuert werden. Der Name des Dienstes lautet `gdm`

  Sie sollten

      gdm:.my.domain

  zu Ihrer Datei `<etc>/hosts.allow`, in Abhängigkeit zur Konfiguration der TCP-Wrappers hinzufügen. Lesen Sie die Hilfeseite zu hosts.allow für genauere Informationen.

  Bitte beachten Sie, dass XDMCP kein ausgesprochen sicheres Protokoll ist. Es könnte daher eine gute Idee sein, in Ihrer Firewall-Konfiguration den UDP-Port 177 zu blockieren, falls Sie ihn nicht wirklich unbedingt brauchen.

HonorIndirect

-     HonorIndirect=true

  Aktiviert den Wähler durch »XDMCP INDIRECT« (d.h. ein entferntes Ausführen von `gdmchooser`) für X-Terminals, die keinen eigenen Wähler bereit stellen.

MaxPending

-     MaxPending=4

  Zur Vermeidung von massiven Überlastungsangriffen besitzt GDM eine Warteschlange fester Länge von ausstehenden Verbindungen. Es können höchstens so viele Anzeigen gleichzeitig gestartet werden, wie in »MaxPending« angegeben ist.

  Bitte beachten Sie, dass dieser Parameter nicht die Anzahl der verwaltbaren entfernten Displays begrenzt, sondern lediglich die Anzahl der Displays, die eine Verbindung gleichzeitig initiieren.

MaxSessions

-     MaxSessions=16

  Bestimmt die maximale Anzahl Verbindungen zu entfernten Displays, die gleichzeitig verwaltet werden. Anders ausgedrückt, die Gesamtzahl entfernter Displays, die Ihr Rechner nutzen kann.

MaxWait

-     MaxWait=30

  Wenn GDM zur Verwaltung einer Anzeige bereit ist , wird an diese ein »ACCEPT«-Paket mit einer eindeutigen Sitzungskennung gesendet, die bei weiterer Kommunikation verwendet wird.

  GDM wird dann die Sitzungskennung in die Liste ausstehender Verbindungen einfügen und auf eine »MANAGE«-Anfrage als Antwort der Anzeige warten.

  Wenn keine Antwort innerhalb »MaxWait« Sekunden empfangen wird, dann wird GDM die Anzeige als verschwunden ansehen und den Eintrag aus der Liste ausstehender Verbindungen entfernen und einen freien Platz für eine andere Anzeige schaffen.

MaxWaitIndirect

-     MaxWaitIndirect=30

  Der Parameter »MaxWaitIndirect« bestimmt die maximale Anzahl erlaubter Sekunden zwischen der Rechnerauswahl eines Benutzers und der folgenden indirekten Anfrage an den Rechner, wo der Benutzer verbunden ist. Wenn der Zähler abläuft, werden die Informationen über den gewählten Rechner verworfen und der indirekte Platz für andere Anzeigen frei gemacht. Die Informationen können früher verworfen werden falls mehr Rechner versuchen indirekte Anfragen zu senden, als durch `MaxPendingIndirect` erlaubt.

Port

-     Port=177

  Die UDP-Portnummer, auf der `gdm` nach XDMCP-Anfragen horchen soll. Ändern Sie den Wert nur dann, wenn Sie genau wissen, was Sie tun.

Willing

-     Willing=<etc>/gdm/Xwilling

  Wenn der Rechner ein »WILLING«-Paket nach einem »QUERY« zurücksendet, so wird eine Zeichenkette gesendet, die den aktuellen Status des Server vermittelt. Die vorgegebene Nachricht ist die Systemkennung, aber es ist möglich ein Skript zu erstellen, das angepasste Nachrichten anzeigen lässt. Wenn das Skript nicht vorhanden ist oder der Schlüssel leer ist, so wird die Vorgabenachricht gesendet. Wenn das Skript existiert und eine Ausgabe zurückgibt, dann wird (nur) die erste Zeile der Ausgabe gesendet. Es wird höchstens alle 3 Sekunden ausgeführt, um eine möglich Überlastung des Rechners durch eine Flut von »QUERY«-Paketen zu verhindern.

### Einfache Konfiguration des Begrüßers

Der voreingestellte GDM-Begrüßer heißt »einfacher Begrüßer« und wird mit GConf konfiguriert. Die Vorgabewerte werden in GConf in der Datei `gdm-simple-greeter.schemas` hinterlegt. Diese Werte können aufgehoben werden, wenn der Benutzer »gdm« einen schreibbaren persönlichen Ordner zum Speichern der GConf-Einstellungen besitzt. Die Werte können mit den Programmen `gconftool-2` oder `gconf-editor` bearbeitet werden. Die folgenden Einstellungsoptionen werden unterstützt:

### Konfigurationsschlüssel für den Begrüßer

/apps/gdm/simple-greeter/banner_message_enable

-     falsch (Boolesche Variable)

  Legt fest, ob die Bannernachricht angezeigt wird.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (Zeichenkette)

  Legt die Textnachricht im Banner des Begrüßerfensters fest.

/apps/gdm/simple-greeter/disable_restart_buttons

-     falsch (Boolesche Variable)

  Legt fest, ob die Knöpfe für den Neustart im Anmeldefenster angezeigt werden.

/apps/gdm/simple-greeter/disable_user_list

-     falsch (Boolesche Variable)

  Legt fest, ob das Benutzeralbum mit bekannten Benutzern nicht im Anmeldefenster angezeigt wird.

/apps/gdm/simple-greeter/logo_icon_name

-     computer (Zeichenkette)

  Legt den Symbolnamen des Themas für das Logo im Begrüßer fest.

/apps/gdm/simple-greeter/recent-languages

-     [] (Liste aus Zeichenketten)

  Legt die Liste aller Sprachen fest, die als Voreinstellung im Anmeldefenster angezeigt werden. Der Vorgabewert ist »[]«. Mit dem Vorgabewert wird nur die systemweit voreingestellte Sprache angezeigt und die Option »Weitere …«, die ein Dialogfenster mit allen verfügbaren Sprachen zum Auswählen einblendet.

  Benutzer sollten diese Einstellung nicht manuell ändern. GDM merkt sich die gewählten Sprachen in diesem Konfigurationsschlüssel und sie werden im Auswahlfeld zusammen mit den Sprachen aus dem Dialogfeld »Weitere …« angezeigt. Auf diese Weise können oft gewählte Sprachen leichter ausgewählt werden.

/apps/gdm/simple-greeter/recent-layouts

-     [] (Liste aus Zeichenketten)

  Legt die voreingestellte Liste der im Panel angezeigten Tastaturbelegungen fest. Mit dem Vorgabewert wird nur die systemweit voreingestellte Tastaturbelegung angezeigt und die Option »Weitere …«, die ein Dialogfenster mit allen verfügbaren Belegungen zum Auswählen einblendet.

  Benutzer sollten diese Einstellung nicht manuell ändern. GDM merkt sich die gewählten Tastaturbelegungen in diesem Konfigurationsschlüssel und sie werden im Auswahlfeld zusammen mit den Belegungen aus dem Dialogfeld »Weitere …« angezeigt. Auf diese Weise können oft gewählte Tastaturbelegungen leicht ausgewählt werden.

/apps/gdm/simple-greeter/wm_use_compiz

-     falsch (Boolesche Variable)

  Legt fest, ob Compiz als Fenstermanager anstelle von Metacity verwendet wird.

### Konfiguration der Barrierefreiheit

Dieser Abschnitt beschreibt die Konfiguration der Einstellungen der Barrierefreiheit in GDM.

#### GDM-Dialog zur Barrierefreiheit und GConf-Schlüssel

Das Begrüßer-Panel von GDM zeigt im Anmeldebildschirm ein Barrierefreiheits-Symbol. Ein Klick auf das Symbol öffnet den Dialog der GDM-Barrierefreiheit. Im Dialog gibt es eine Liste von Ankreuzfeldern zum Aktivieren und Deaktivieren verschiedener Hilfstechnologien.

Die Ankreuzfelder für die Hilfswerkzeuge Bildschirmtastatur, Bildschirmlupe und Bildschirmleser wirken sich auf drei GConf-Schlüssel aus, die im nächsten Abschnitt der Hilfeseite beschrieben werden. Durch Auswählen der Ankreuzfelder wird der entsprechende GConf-Schlüssel auf »wahr« oder »falsch« eingestellt. Wenn der GConf-Schlüssel auf wahr gesetzt ist, werden die mit diesem Schlüssel verknüpften Hilfswerkzeuge gestartet. Wenn der GConf-Schlüssel auf falsch gesetzt ist, werden alle mit diesem Schlüssel verknüpften Hilfswerkzeuge beendet. Diese Schlüssel werden nicht automatisch auf eine Voreinstellung zurückgesetzt, nachdem sich ein Benutzer angemeldet hat. Das bedeutet, dass die aktiven Hilfstechnologien der letzten GDM-Sitzung auch automatisch in folgenden Sitzungen gestartet werden.

Die anderen Ankreuzfelder im GDM-Dialog zur Barrierefreiheit haben keine zugeordneten GConf-Schlüssel, weil kein zusätzliches Programm zur Aktivierung der Merkmale gestartet werden muss. Sie entsprechen Merkmalen der Barrierefreiheit, die vom Xserver bedient werden können, der immer während einer GDM-Sitzung läuft.

#### GConf-Schlüssel der Barrierefreiheit

GDM bietet die folgenden GConf-Schlüssel zur Steuerung der Barrierefreiheit:

#### Konfigurationsschlüssel von GDM

/desktop/gnome/interface/accessibility

-     falsch (Boolesche Variable)

  Legt fest, ob die Barrierefreiheits-Infrastruktur zusammen mit der GDM-Benutzeroberfläche gestartet werden soll. Dies ist für die Funktion von Barrierefreiheits-Anwendungen notwendig.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     falsch (Boolesche Variable)

  Legt fest, ob die mit diesem GConf-Schlüssel verknüpften Hilfstechnologien mit der GDM-Oberfläche gestartet werden. Die Voreinstellung ist eine Bildschirmlupe.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     falsch (Boolesche Variable)

  Legt fest, ob die mit diesem GConf-Schlüssel verknüpften Hilfstechnologien mit der GDM-Oberfläche gestartet werden. Die Voreinstellung ist eine Bildschirmtastatur.

/desktop/gnome/applications/at/screen_reader_enabled

-     falsch (Boolesche Variable)

  Legt fest, ob die mit diesem GConf-Schlüssel verknüpften Hilfstechnologien mit der GDM-Oberfläche gestartet werden. Die Voreinstellung ist ein Bildschirmleser.

#### GConf-Schlüssel mit Werkzeugen der Barrierefreiheit verknüpfen

Bei den GConf-Schlüsseln »screen_magnifier_enabled«, »the screen_keyboard_enabled« und »screen_reader_enabled« hängt das Hilfswerkzeug, das gestartet wird, von den .desktop-Dateien im Autostart-Ordner von GDM ab, wie es im Abschnitt »Autostart-Einstellungen« dieses Handbuchs beschrieben wird. Jede .desktop-Datei im Autostart-Ordner von GDM kann mit diesen GConf-Schlüsseln verknüpft werden über den Eintrag »AutostartCondition« in der .desktop-Datei. Eine Zeile mit dem Eintrag »AutostartCondition« könnte genau so aussehen wie eine der Folgenden:

    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled

Wenn ein Schlüssel der Barrierefreiheit auf wahr festgelegt ist, dann wird jedes Programm gestartet, dass in einer .desktop-Datei von GDM mit dem Schlüssel verknüpft ist (es sei denn, der Schlüssel ist in einer .desktop-Datei auf »Hidden« (versteckt) gesetzt). Ein einziger GConf-Schlüssel kann sogar mehrere Hilfswerkzeuge starten, wenn mehrere .desktop-Dateien mit diesem Schlüssel »AutostartCondition« im Autostart-Ordner von GDM sind.

#### Beispiel zur Bearbeitung der Einstellungen eines Werkzeuges der Barrierefreiheit

Wenn zum Beispiel GOK in Ihrer GNOME-Version als Bildschirmtastatur voreingestellt ist, dann könnte es durch ein anderes bevorzugtes Programm ersetzt werden. Um GOK durch die Bildschirmtastatur »onboard« zu ersetzen und zusätzlich das Hilfswerkzeug »mousetweaks« zur Unterstützung des verzögerten Klicks zu aktivieren, wird die folgende Konfiguration benötigt.

Erstellen Sie eine .desktop-Datei für »onboard« und eine zweite für »mousetweaks«, zum Beispiel mit den Namen »onboard.desktop« und »mousetweaks.desktop«. Diese Dateien müssen im Autostart-Ordner von GDM abgelegt werden und im wie in Abschnitt »Autostart-Einstellungen« beschriebenen Format vorliegen.

Im Folgenden ist ein Beispiel für eine Datei `onboard.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Comment=Use an on-screen keyboard
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Im Folgenden ein Beispiel der Datei `mousetweaks.desktop` :

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Comment=Perform clicks by dwelling with the pointer
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Beachten Sie die Zeile mit »AutostartCondition«, die beide .desktop-Dateien mit dem GConf-Schlüssel für die Bildschirmtastatur verknüpft.

Um den Start von GOK zu verhindern, muss die .desktop-Datei für die GOK-Bildschirmtastatur entfernt oder deaktiviert werden. Anderenfalls würden onboard und GOK zugleich gestartet werden. Dies kann durch Löschen der Datei »gok.desktop« aus dem Autostart-Ordner von GDM erzielt werden, oder durch Hinzufügen der Schlüsseleinstellung »Hidden=true« in der Datei »gok.desktop«.

Nach dem Durchführen diese Änderungen wird GOK nicht mehr gestartet, wenn der Benutzer die Bildschirmtastatur in der GDM-Sitzung aktiviert; jedoch werden stattdessen »onboard« und »mousetweaks« gestartet.

### Allgemeine Sitzungseinstellungen

Der GDM-Begrüßer verwendet einen Teil des Framework, das Ihre Sitzung verwendet. Einige GConf-Einstellungen werden gemeinsam verwendet. Der Begrüßer verwendet die Vorgabewerte, wenn diese nicht explizit durch a) zwingende GDM-Richtlinien oder b) zwingende Systemrichtlinien überschrieben werden. GDM installiert eine eigene zwingende Richtlinie zum Einschränken des Zugriffs auf einige Sicherheitseinstellungen.

### GNOME-Einstellungsdaemon

GDM aktiviert die folgenden Plugins von gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.

Diese sind verantwortlich für Dinge wie das Hintergrundbild, die Schrift, die Einstellungen für das Thema, Klänge etc.

Plugins können auch mittels GConf deaktiviert werden. Wenn Sie beispielsweise das Sound-Plugin deaktivieren wollen, dann deaktivieren Sie den folgenden Schlüssel: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### GDM-Sitzungseinstellungen

GDM-Sitzungen werden durch die Spezifikation zum FreeDesktop.org Desktop-Eintrag angegeben, welche unter der folgenden Adresse abgerufen werden kann: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

By default, GDM will install desktop files in the `<share>/xsessions` directory. GDM will search the following directories in this order to find desktop files: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/gdm/BuiltInSessions`, and `<share>/xsessions`. By default the `<dmconfdir>` is set to `<etc>/dm/` unless GDM is configured to use a different directory via the "--with-dmconfdir" option.

Eine Sitzung kann deaktiviert werden, indem Sie die Desktop-Datei bearbeiten und die folgende Zeile hinzufügen: `Hidden=true` .

Die Desktop-Dateien von GDM unterstützen eine GDM-spezifische Erweiterung, einen Schlüssel namens »X-GDM-BypassXsession«. Falls der Schlüssel in einer *.desktop-Datei nicht enthalten ist, wird der Wert per Vorgabe auf »falsch« gesetzt. Falls der Schlüssel in einer *.desktop-Datei enthalten ist, startet GDM das Programm, welches im »Exec«-Schlüssel der *.desktop-Datei angegeben ist, direkt nach dem Start der Benutzersitzung. Das Programm wird nicht über das `<etc>/gdm/Xsession`-Skript ausgeführt, was normalerweise geschieht. Durch Umgehen des `<etc>/gdm/Xsession`-Skripts wird vermieden, die Benutzersitzung mit den normalen System- und Benutzereinstellungen zu starten. Auf diese Weise gestartete Sitzungen können für die Fehlerdiagnose des Systems genutzt werden oder zum Test von Benutzerskripten, die möglicherweise einen Benutzer am Start einer Sitzung hindern.

### Konfiguration der GDM-Benutzersitzung und Sprache

Die Standardsitzung des Benutzers und die Sprachauswahl werden in der Datei `~/.dmrc` gespeichert. Wenn sich ein Benutzer erstmalig anmeldet, wird diese Datei anhand der vom Benutzer eingegebenen Werte angelegt. Der Benutzer kann diese Standardwerte jedes Mal beim Anmelden durch einfache Neueingabe ändern. GDM speichert diese Änderungen für folgende Anmeldungen.

Die Datei `~/.dmrc` wird im `INI`-Format gespeichert. Sie beinhaltet einen mit `[Desktop]` bezeichneten Abschnitt, welcher zwei Schlüssel enthält: `Session` und `Language`.

Der Schlüssel `Session` definiert den Basisnamen der `.desktop`-Datei, die der Benutzer normalerweise verwenden will, aber ohne die Erweiterung »`.desktop`«. Der Schlüssel `Language` legt die voreingestellte Sprache fest, die der Benutzer verwenden möchte. Wenn irgendein Schlüssel fehlt, so wird die systemweite Vorgabe verwendet. Die Datei sieht normalerweise folgendermaßen aus:

    [Desktop]
    Session=gnome
    Language=de_DE.UTF-8

## GDM-Befehle

### GDM-Systemverwalter-Befehle

Das GDM-Paket stellt in `sbindir` folgende verschiedene Befehle bereit, die mit den Rechten des Systemverwalters ausgeführt werden:

#### `gdm`-Befehlszeilenoptionen

`gdm` ist der Hauptdienst, der einen grafischen Anmeldebildschirm bereit stellt und notwendige Hilfsprogramme startet.

#### `gdm`-Befehlszeilenoptionen

-?, --help

- Zeigt einen Überblick der Befehlszeilenoptionen an.

--fatal-warnings

- Alle Warnungen führen zum Beenden von GDM.

--timed-exit

- Abbruch nach 30 Sekunden. Dies ist nützlich für die Fehlerdiagnose.

--version

- Zeigt die Version des GDM-Daemons.

#### `gdm-restart`-Befehlszeilenoptionen

Der Befehl `gdm-restart` beendet GDM und startet ihn neu, indem an den GDM-Daemon ein HUP-Signal gesendet wird. Dieser Befehl beendet unmittelbar alle Sitzungen der Benutzer, die gegenwärtig über GDM angemeldet sind.

#### `gdm-safe-restart`-Befehlszeilenoptionen

Der Befehl `gdm-safe-restart` beendet GDM und startet ihn neu, indem an den GDM-Daemon ein USR1-Signal gesendet wird. GDM wird neu gestartet, sobald sich alle Benutzer abgemeldet haben.

#### `gdm-stop`-Befehlszeilenoptionen

Der Befehl `gdm-stop` beendet GDM, indem an den GDM-Daemon ein TERM-Signal gesendet wird.

## Fehlerbehandlung

Dieser Abschnitt bietet nützliche Tipps, wie Sie GDM zum Laufen bringen. Allgemein können Sie bei Problemen bei der Benutzung von GDM einen Fehlerbericht einschicken oder eine Nachricht an die Mailingliste »gdm-list« senden. Weitere Informationen finden Sie im Abschnitt »Einführung« dieses Dokuments.

Falls GDM nicht richtig arbeitet, sollten Informationen zur Fehlerdiagnose erhoben werden. Um die Fehlerdiagnose zu aktivieren, setzen Sie den Schlüssel »debug/Enable« in der Datei `<etc>/gdm/custom.conf` auf »wahr« und starten Sie GDM neu. Bringen Sie dann GDM zu dem Punkt des Versagens, und die Diagnosemeldungen werden im Systemprotokoll gespeichert (abhängig vom Betriebssystem `<var>/log/messages` oder `<var>/adm/messages`). Wenn Sie diese Ausgaben in der GDM-Gemeinschaft durch einen Fehlerbericht oder eine E-Mail veröffentlichen, dann legen Sie bitte nur die für GDM relevanten Diagnosemeldungen und nicht die vollständige Datei bei. Falls Sie keine Ausgaben von GDM im Protokoll sehen, müssen Sie eventuell syslog konfigurieren (Lesen Sie dazu die Hilfeseiten von syslog).

### GDM startet nicht

Es gibt viele Probleme, die GDM am Starten hindern können. In diesem Abschnitt werden einige allgemeine Probleme behandelt, sowie die Möglichkeiten, wie man den Gründen für diese Startprobleme auf die Spur kommen kann. In einigen Fällen meldet sich GDM bei einem missglückten Startversuch mit einer Fehlermeldung zu Wort. Wenn der GDM-Start allerdings ohne Fehlermeldung abgebrochen wird, kann die Problemsuche schwierig werden.

Zunächst stellen Sie bitte sicher, dass der X-Server sauber konfiguriert ist. Die GDM-Konfigurationsdatei enthält einen Befehl im Abschnitt [server-Standard], der für den Start des X-Servers verwendet wird. Stellen sie sicher, dass dieser Befehl auf Ihrem System funktioniert. Wenn Sie diesen Befehl in einer Textkonsole ausführen, sollte der X-Server starten. Falls der Start scheitert, liegt das Problem möglicherweise in der Konfiguration Ihres X-Servers. Ziehen Sie die X-Server-Logdatei zu Rate, um festzustellen, wo das Problem liegen könnte. Es könnte beispielsweise sein, dass der X-Server abweichende Befehlszeilenoptionen benötigt. In diesem Fall ändern Sie bitte bitte den X-Server-Befehl in der GDM-Konfigurationsdatei so ab, wie es Ihr System erfordert.

Stellen Sie ebenfalls sicher, dass das `/tmp`-Verzeichnis die richtigen Eigentumsverhältnisse und Zugriffsrechte hat, und dass das Dateisystem nicht voll ist. Solche Probleme werden den Start von GDM verhindern.

## Lizenz

Dieses Programm ist freie Software; Sie können es weiterverbreiten und/oder ändern unter den Bedingungen der GNU General Public License wie sie von der Free Software Foundation veröffentlicht wurde; entweder in Version 2 der Lizenz oder (nach Ihrer Wahl) jeder neueren Version.

Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich ist, aber OHNE JEGLICHE GARANTIE; auch ohne eine GEBRAUCHSTAUGLICHKEITSGARANTIE oder eine Garantie über die TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK. Lesen Sie die GNU General Public License für genauere Hinweise.

Eine Kopie der GNU General Public License ist im Anhang des GNOME Benutzerhandbuchs enthalten. Sie können außerdem eine Kopie der GNU General Public License von der Free Software Foundation erhalten, indem Sie auf ihre Internetseite gehen oder schreiben Sie an die

          Free Software Foundation, Inc.
          51 Franklin Street, Fifth Floor
          Boston, MA 02110-1301
          USA