Starten von X

Sie können nun, falls Sie bereits einen Windowmanager installiert haben, die grafische Oberfläche mit startx starten. Wenn noch kein Windowmanager installiert ist, merken Sie das spätestens nach dem Start der grafischen Oberfläche. Sie können dann keines der Fenster verschieben, verkleinern oder sonstwie damit arbeiten. Im Abschnitt über Windowmanager finden Sie einige Vorschläge, installieren Sie mindestens eines dieser Pakete. Wenn Sie verschiedene Windowmanager installieren, können Sie (bei den meisten) während des Betriebes zwischen diesen umschalten. Sie müssen dazu weder Ihre Programme noch den X-Server oder gar den Rechner neu starten.

Wenn Ihr Monitor nach einige Sekunden kein brauchbares Bild anzeigt, können Sie den X-Server mit der Tastenkombination CTRL+ALT+BACKSPACE (oder CTRL+AUSSCHALTEN beim Macintosh) zwangsweise beenden. Versuchen Sie dann noch einmal den X-Server zu konfigurieren.

Wenn Sie sich gleich nach dem Start des Rechners auf der grafischen Oberfläche einloggen wollen, installieren Sie eines der Pakete login.app, gdm oder auch xdm. Stellen Sie aber vorher unbedingt sicher, daß der X-Server richtig konfiguriert und funktionsfähig ist. Es kann sonst dazu kommen, daß Sie sich überhaupt nicht mehr am System anmelden können!

xdm

XDM ist die älteste und auch auf anderen Unix-Systemen weit verbreitete Methode zum Anmelden am System mit einer grafischen Oberfläche. XDM wird auch häufig übers Netzwerk eingesetzt, um sich von einem X-Terminal oder einem anderen Betriebssystem mit X11-Emulation auf einem Unix-System anzumelden.

Natürlich können Sie XDM auch auf Ihrem lokalen System einsetzen, es gibt aber verschiedene andere Programme, die optisch ansprechender gestaltet sind und über mehr Funktionen verfügen.

gdm - GNOME Display Manager

GDM ist ein Ersatz für den bekannten XDM, einem Display Manager für X11. GDM wurde von Grund auf neu geschrieben und enthält keinerlei Code aus anderen Programmen.

Der GDM-Daemon

GDM wurde im Hinblick auf größtmögliche Sicherheit entworfen. Beim Start liest GDM zunächst die Konfigurationsdatei ein und startet für jedes lokale Display einen X-Server sowie einen eigenen Prozeß. Der Hauptprozeß wartet dann auf eventuelle XDMCP Requests von anderen Rechnern oder Terminals und überwacht auch die lokalen Display-Sitzungen.

Ein gestarteter GDM-Prozeß ruft nach dem Start des X-Servers das Programm gdmlogin auf, welches das eigentliche Programm zum Anmelden am System unter einer grafischen Oberfläche darstellt. Dieses Programm läuft unter einer eigenen User-ID und kommuniziert mit dem Hauptprogramm.

GDM unterstützt neben den normalen Paßwortdateien die Benutzung von Shadow-Paßwörtern sowie PAM (Pluggable Authentication Modules).

Entfernte Rechner oder X-Terminals können über den XDMCP Port auf den GDM-Daemon zugreifen. GDM erlaubt allen Rechnern, die im Abschnitt „service“ der Konfigurationsdatei des TCP Wrappers beschrieben sind, den Zugriff. Sie können die XDMCP-Unterstützung aber auch komplett deaktivieren.

Um widerstandfähiger gegen die in letzter Zeit leider sehr beliebten DOS (Denial of Service-) Angriffe zu sein, wurden einige Überprüfungen eingebaut. Sie können über die Konfiguration viele Protokollparameter u.ä. verändern. Wenn Sie sich nicht sicher sind, sollten Sie allerdings besser nichts an diesen Einstellungen verändern. Für die meisten Anforderungen sind die Standardeinstellungen gut geeignet.

Alle Zugriffe auf Dateien werden von GDM mit der User-ID des jeweiligen Benutzers ausgeführt. GDM verfügt über einen sogenannten „Face Browser“, mit diesem wird für jeden Benutzer des Systems ein Bild in der Login-Maske angezeigt. Dieses kann vom Benutzer durch ein eigenes Foto ersetzt werden, die Dateigröße kann vom Systemverwalter begrenzt werden, auf Systemen mit vielen Benutzern sollten Sie diese Funktion aus Geschwindigkeitsgründen deaktivieren.

Der „Greeter“

Der „Greeter“ dient zur „Begrüßung“ der Benutzer am System und stellt die eigentliche Eingabemaske für den Benutzernamen und das Paßwort zur Verfügung. Am oberen Rand des Fensters finden Sie ein Menü mit verschiedenen Einträgen. Das voreingestellte GNOME-Logo kann durch ein anderes ersetzt oder ganz deaktiviert werden. Ebenso können Sie den „Face-Browser“, der normalerweise nicht aktiv ist, aktivieren.

Konfiguration

Die Konfigurationsdateien zu GDM finden Sie unter /etc/gdm/. Dort befindet sich die Datei gdm.conf sowie einige Unterverzeichnisse:

	Init/
	PostSession/
	PreSession/
	Sessions/
	gdm.conf
    
In der Datei /etc/gdm/gdm.conf befinden sich die Parameter sowohl für gdmlogin als auch für gdmchooser, da sich viele Funktionen dieser beiden Programme überschneiden.

Die restliche Konfiguration wird über Scripte vorgenommen, die von den Paketen in den anderen Verzeichnissen abgelegt werden. So können von der Paketverwaltung ganz einfach zum Beispiel neue Windowmanager hinzugefügt werden, ohne daß der Systemadministrator etwas an der Konfiguration ändern muß.

Die Script-Verzeichnisse

In diesem Abschnitt werden die Verzeichnisse /Init, /PreRoot und /PostRoot beschrieben.

Wenn der X-Server erfolgreich gestartet wurde, versucht GDM das Script Init/<displayname> auszuführen. Dies wird im Normalfall Init/:0 für das erste lokale Display sein. Wenn diese Datei nicht gefunden wird, versucht GDM das Script Init/Default auszuführen. Dieses wird mit den Rechten des Superusers (root) ausgeführt und GDM wird so lange blockiert, bis das Script beendet wird. Sie können in diesem Script zum Beispiel Programme wie xconsole oder xsetroot aufrufen.

Der Systemadministrator kann bestimmen, ob Programme, die von dem Init-Script aufgerufen werden, vor dem Starten der Benutzersitzung beendet werden sollen oder nicht. Dies wird über die Variable „KillInitClients“ gesteuert. Informationen hierzu finden weiter unten.

Wenn ein Benutzer sich erfolgreich am System angemeldet hat, versucht GDM ein „PreSession Script“ zu starten. Diese Scripte verhalten sich sehr ähnlich wie die Init-Skripte, PreSession/<displayname> wird zunächst ausgeführt. Sollte diese Datei nicht existieren, versucht GDM die Datei PreSession/Default auszuführen. Auch diese Scripte werden mit „Root“-Rechten ausgeführt und GDM wird blockiert bis das Script beendet ist. Sie können dieses Script zum Beispiel für Accounting-Zwecke nutzen. Die Umgebungsvariable $USER enthält den Loginnamen des Benutzers. Wenn das Script ohne Fehler ausgeführt wurde, muß es den Wert 0 zurückgeben, andernfalls bricht GDM den Loginvorgang ab.

Danach wird das „Session Script“ ausgeführt. Dieses befindet sich im Verzeichnis etc/gdm/Session. Welches von diesen Scripten ausgeführt wird, hängt von der Auswahl des Benutzers aus dem „Session“-Menü ab. Wenn keine Auswahl getroffen wird, und der Benutzer bisher keine Session in der Datei ~/.gnome/gdm gespeichert hat, wird das Script Sessions/Default ausgeführt.

Wenn der Benutzer die Sitzung beendet, wird das „PostSession“-Script ausgeführt. Die Funktion ist ähnlich wie bei den „Init“- und den „PreSession“-Scripten. Zunächst wird versucht das Script PostSession/<displayname> auszuführen, wenn dieses nicht gefunden wird, wird mit dem Script PostSession/Default fortgefahren. Auch diese Scripte werden mit Superuser-Rechten ausgeführt, der Daemon wird während der Zeit gestoppt und die Umgebungsvariable $USER enthält den Benutzernamen desjenigen Benutzers, der die Session beendet hat.

Beachten Sie bitte, daß dieses Script auch ausgeführt wird, wenn ein Fehler (zum Beispiel ein I/O Error) aufgetreten ist. Es kann nicht immer sichergestellt werden, daß alle X-Anwendungen während der Laufzeit dieses Scriptes funktionieren.

Keines der „Init“-, „PreSession“- oder „PostSession“- Scripte ist zwingend erforderlich. GDM funktioniert hervorragend ohne diese Scripte. Allerdings benötigen Sie mindestens ein „Session“- Script, damit GDM funktioniert.

Daemon-Konfiguration

[daemon]

Chooser
Chooser=bin/gdmchooser - -disable-sound

Programmname und kompletter Pfad für das Programm gdmchooser, gefolgt von weiteren Argumenten.

DefaultPath
DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin

Hier können Sie den Suchpfad angeben, der als Umgebungsvariable gesetzt werden soll. Wenn Sie aus Ihrem System weitere Verzeichnisse mit Programmen angelegt haben, die allen Benutzern zugänglich sein sollen, so können Sie diese Verzeichnisse hier mit angeben.

DisplayInitDir
DisplayInitDir=etc/gdm/Init

Diese Variable enthält das Verzeichnis, in dem sich die „Init-Skripte“ befinden. Weiter unten finden Sie nähere Informationen zu den eigentlichen Scripten.

Greeter
Greeter=bin/gdmlogin - -disable-sound

Kompletter Pfad und Name für das Programm gdmlogin mit eventuellen weiteren Argumenten.

Group
Group=gdm

Die Benutzergruppe, unter der die Programme gdmlogin und gdmchooser laufen.

HaltCommand
HaltCommand=/sbin/shutdown -h now

Kompletter Pfad und Programmname sowie weitere Argumente, welches aufgerufen wird, wenn der Benutzer aus dem Menü die Option „Halt“ aktiviert.

KillInitClients
KillInitClients=1

Mit dieser Option aktivieren oder deaktivieren Sie das Beenden aller Programme, die über die Init-Skripte gestartet wurden, nachdem der Benutzer sich einloggt. Die Standard-Einstellung ist hier „1“, die Programme werden damit beendet.

LogDir
LogDir=var/gdm

Diese Variable enthält das Verzeichnis, in dem sich die Logdateien von GDM befinden. Wenn Sie hier keinen Wert angeben, wird der Wert der Variablen ServAuthDir verwendet. Angaben zu dieser Variablen finden Sie weiter unten.

PidFile
PidFile=var/run/gdm.pid

Name und Pfad der Datei, welche die Prozeß-ID des Programms gdm enthält.

PostSessionScriptDir
PostSessionScriptDir=etc/gdm/PostSession

Beschreibt das Verzeichnis, in dem sich die Scripte befinden, welche nach dem Ausloggen des Benutzers ausgeführt werden. Weitere Informationen hierzu finden Sie unter „Script Directories“.

PreSessionScriptDir
PreSessionScriptDir=etc/gdm/PreSession

Das Verzeichnis, in dem sich die Scripts befinden, die vor dem Einloggen des Benutzers ausgeführt werden. Auch hierzu finden Sie weitere Informationen unter „Script Directories“.

RebootCommand
RebootCommand=/sbin/shutdown -r now

Kompletter Pfad, Programmname und weitere Argumente für das Programm, welches ausgeführt wird, wenn der Benutzer aus dem „System-Menü“ die Option „Reboot“ auswählt. Dies ist normalerweise das Programm shutdown.

RootPath
RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin

Suchpfad, der für den Benutzer „root“ sowie für die Scripte (Init, PreSession, PostSession), die von GDM ausgeführt werden, gesetzt wird.

ServAuthDir
ServAuthDir=/var/gdm

Das Verzeichnis, welches die X-Authentifizierungsdateien für die einzelnen Displays enthält. Dieses Verzeichnis muß dem Benutzer und der Gruppe „gdm“ gehören und die Zugriffsrechte 750 haben.

SessionDir
SessionDir=etc/gdm/Sessions

Dieses Verzeichnis enthält die Scripte für die verschiedenen Session-Typen, die auf dem System verfügbar sind.

User
User=gdm

Der Benutzername, unter dem gdmlogin und gdmchooser laufen.

UserAuthDir
UserAuthDir=

Das Verzeichnis, in dem die .Xauthority-Dateien der einzelnen Benutzer liegen. Wenn hier kein Wert angegeben ist, wird die Datei im Homeverzeichnis des Benutzers verwendet.

UserAuthFBDir
UserAuthFBDir=/tmp

Falls GDM die Datei .Xauthority eines Benutzers nicht aktualisieren kann, wird ein „Fallback cookie“ in diesem Verzeichnis erzeugt.

UserAuthFile
UserAuthFile=.Xauthority

Dateiname, in der die benutzerspezifischen Cookies gespeichert werden.

Sicherheitsoptionen

[security]

AllowRoot
AllowRoot=0

Normalerweise sind Logins des Systemadministrators verboten. Wenn Sie diese Variable auf den Wert „1“ setzen, kann sich auch der Systemadministrator auf der grafischen Oberfläche am System anmelden.

Auf Systemen, die PAM (Plugable Authentification Modules) unterstützen, wird dieser Parameter ignoriert. Bei diesen Systemen entscheiden die PAM-Bibliotheken, ob ein Benutzer einloggen darf oder nicht.

RelaxPermissions
RelaxPermissions=0

GDM ignoriert normalerweise Dateien und Verzeichnisse, die für andere Benutzer wie den Besitzer schreibbar sind.

Wenn Sie den Standardwert verändern, können Sie die im folgenden beschriebenen Verhaltensweisen aktivieren:

0 - nur Verzeichnisse und Dateien, die dem Benutzer gehören, werden beachtet.

1 - Zugriff auf Dateien und Verzeichnisse, die von der Gruppe schreibbar sind.

2 - Zugriff auf von allen schreibbare Dateien und Verzeichnisse.

RetryDelay
RetryDelay=3

Zeit in Sekunden, die nach einem fehlgeschlagenen Login gewartet wird, bis eine erneute Eingabe im Textfeld möglich ist.

UserMaxFile
UserMaxFile=65536

Begrenzung in Byte der von GDM lesbaren Dateigröße.

Beachten Sie in diesem Zusammenhang auch die Option „RelaxPermissions“. gdm und gdmlogin sind aus Sicherheitsgründen sehr kleinlich beim Zugriff auf Dateien. Neben der Beachtung der Zugriffsrechte wird darauf verzichtet, symbolische Links zu verfolgen. Auch Dateien, die von weiteren Benutzern wie dem Besitzer der Datei schreibbar sind, können unter Umständen nicht gelesen werden.

VerboseAuth
VerboseAuth=0

Hiermit beeinflussen Sie die Anzeige der Fehlermeldungen bei der Authentifizierung im „Greeter“.

Abhängig von den Systemeinstellungen können Benutzernamen angezeigt werden, wenn Sie diese Option aktivieren.

XDCMP Support

[xdmcp]

DisplaysPerHost
DisplaysPerHost=1

Zur Verhinderung von DOS-Angriffen erlaubt GDM normalerweise nur ein Display je entferntem Host. Sie können diesen Wert erhöhen, falls dies nicht ausreichend ist.

Enable
Enable=0

Wenn Sie diesen Wert auf 1 setzen, aktivieren Sie den XDMCP Support für Remote- bzw. X-Terminals.

GDM hört auf dem UDP Port 177 auf Anfragen, hierzu finden Sie weiter unten weitere Angaben.

Wenn GDM entsprechend übersetzt (compiliert) wurde, kann der Zugriff über die TCP-Wrapper-Bibliothek gesteuert werden. Der Name für diesen Service lautet „gdm“.

Sie sollten dann:

		gdm:	.my.domain
	      

in die Datei /etc/hosts.allow eintragen. In der Man-Page zu hosts_access(5) finden Sie weitere Angaben hierzu.

HonorIndirect
HonorIndirect=1

Aktiviert XDMCP INDIRECT, also die remote Ausführung von gdmchooser, für X-Terminals, welche keinen eigenen Display Browser unterstützen.

MaxPending
MaxPending=4

Maximale Anzahl der gleichzeitig offenen Verbindungen. Dient zur Verhinderung von DOS-Angriffen.

Dieser Parameter beschränkt nicht die Anzahl der maximal möglichen Remote-Displays. Es wird lediglich die Anzahl der gleichzeitigen Verbindungen begrenzt.

MaxPendingIndirect
MaxPendingIndirect=4

Maximale Anzahl der „host chooser“.

MaxSessions
MaxSessions=16

Maximale Anzahl der gleichzeitigen Remote-Display-Verbindungen.

MaxWait
MaxWait=30

Timeout in Sekunden, wie lange auf eine Antwort von einem Remote-Display gewartet werden soll. Danach wird die Sitzung als beendet angesehen und für eine neue Anfrage freigegeben.

MaxWaitIndirect
MaxWaitIndirect=30

Maximale Zeit in Sekunden, die auf einen Display Request vom Chooser gewartet wird.

Port
Port=177

Die UDP-Portnummer, auf der GDM auf Anfragen wartet. Sie sollten diesen Wert nicht verändern.

Greeter-Konfiguration

[greeter]

Browser
Browser=0

Wenn Sie diesen Wert auf „1“ setzen, wird der „Face-Browser“ aktiviert.

DefaultFace
DefaultFace=share/pixmaps/nophoto.png

Dieses Bild wird angezeigt, wenn der Benutzer kein persönliches Bild installiert hat. Geben Sie den Pfad und Dateinamen an. Jeder Benutzer kann in seinem Homeverzeichnis unter .gnome/photo ein persönliches Bild ablegen. Dieser Pfad und die Datei muß für den Benutzer „gdm“ lesbar sein. Das Dateiformat muß von der Imlib unterstützt werden, also zum Beispiel PNG oder JPEG.

DefaultLocale
DefaultLocale=english

Die gewünschte Sprache, die für eine Session verwendet werden soll, solange keine anderen Informationen in ~user/.gnome/gdm gefunden werden und der Benutzer keine andere Sprache aus dem Menü „Locale“ im „Greeter“ ausgewählt hat.

Dies funktioniert leider in der aktuellen Version von gdm noch nicht. Eine Lösung finden Sie weiter unten.

Exclude
Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,...

Eine durch Kommata getrennte Liste der Benutzer des Systems, die nicht im „Face-Browser“ angezeigt werden sollen. Benutzer, die auf diesem Wege ausgeklammert wurden, können sich trotzdem am System anmelden.

Font
Font=-adobe-helvetica-bold-r-normal-*-*-180-*-*-*-*-*-*

Schriftart, die für den Begrüßungstext im „Greeter“ benutzt werden soll.

GlobalFaceDir
GlobalFaceDir=share/faces/

Systemweites Verzeichnis für Bilder der einzelnen Benutzer. In diesem kann der Systemadministrator für jeden Benutzer ein Photo ablegen, ohne auf die Homeverzeichnisse der Benutzer zugreifen zu müssen. Die Dateinamen entsprechen hierbei den Benutzernamen.

Ein Beispiel: <GlobalFaceDir>/fr enthält ein Photo des Benutzers „fr“. Sie müssen die Erweiterung des Dateinamens nicht angeben. Die Dateinamen entsprechen den Namen der Benutzer.

Auch diese Datei muß in einem von der Imlib lesbaren Format vorliegen.

Wenn der Benutzer eine persönliche Datei in seinem Homeverzeichnis abgelegt hat, so wird diese immer bevorzugt behandelt.

Icon
Icon=share/pixmaps/gdm.xpm

Ein Symbol, welches von gdmlogin benutzt wird, wenn das Fenster als Symbol (Icon) abgelegt wird. Auch diese Grafik muß in einem von der Imlib lesbaren Format vorliegen und für den Benutzer „gdm“ lesbar sein. Wenn keine Datei angegeben wird, ist diese Funktion (Verkleinern des Fensters) deaktiviert.

LocaleFile
LocaleFile=etc/gdm/locale.alias

Datei im GNU locale Format mit den Einträgen der unterstützten Sprachen auf dem aktuellen System.

Logo
Logo=share/pixmaps/gnome-logo-large.png

Pfad und Dateiname zur Grafik, die als Logo angezeigt wird. Wenn keine Datei angegeben wird, ist die Funktion deaktiviert. Auch diese Datei muß von der Imlib unterstützt werden und für den Benutzer „gdm“ lesbar sein.

Quiver
Quiver=1

Wenn diese Option aktiv ist, „schüttelt“ sich das Login-Fenster, wenn ein falscher Benutzername oder ein falsches Paßwort angegeben wird.

SystemMenu
SystemMenu=0

Schaltet die Menüs „Shutdown“ und „Halt“ aus.

Welcome
Welcome=Welcome to %n

Der Begrüßungstext, der im „Greeter“ in der Nähe des Logos angezeigt wird. Folgende Steuerzeichen werden unterstützt:

%% Das `%'-Zeichen

%d Der Hostname des Systems

%h der komplette Name inklusive Domain

%m Prozessor-Typ

%n Nodename (meist Hostname ohne Domain)

%r Release (Betriebssystem-Version)

%s Sysname (Betriebssystem)

GDM in deutsch

Wie schon im Abschnitt zur Konfigurationsdatei von GDM beschrieben, ist die Auswahl der Sprache momentan noch nicht komplett in GDM implementiert. Wenn Sie dennoch Wert auf eine deutschsprachige Begrüßung legen, müssen Sie am Startscript von GDM eine kleine Veränderung vornehmen.

GDM wird über die Datei /etc/init.d/gdm gestartet. Mit dem Parameter „start“ beginnt in dieser Datei der Abschnitt mit den zum Start von GDM nötigen Kommandos. Suchen Sie diesen Abschnitt und fügen Sie vor dem Start von GDM die Zeile export LANG=de ein. Hier ein Ausschnitt aus der Datei:

... 

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/gdm
NAME=gdm
DESC="GNOME Display Manager"

test -f $DAEMON || exit 0

case "$1" in
  start)
	echo -n "Starting $DESC: "
        # Ergänzung für deutsche Texte
        export LANG=de
	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON
	echo "$NAME."
	;;
  stop)

  ...
  
Wenn Sie nun GDM neu starten (mit dem Kommando: /etc/init.d/gdm stop ; /etc/init.d/gdm start), sollten die Menüs in der gewünschten Sprache erscheinen.

Als Krönung können Sie nun noch den Text „Welcome to ...“ in der GDM-Konfigurationsdatei durch einen passenden Text ersetzen.

Beachten Sie, daß dieser Eingriff die Sprache für alle Benutzer des Systems verändert und nur als Zwischenlösung zu sehen ist, bis GDM in der Lage ist, die Sprache selber zu verwalten!

Nach dem Anmelden am System werden Sie bemerken, daß Programme, die auf GNOME basieren, immer noch über englisch-sprachige Menüs verfügen. Auch dies ist auf die noch fehlende Implementation in GDM zurückzuführen. Wenn Sie die komplette Benutzeroberfläche eindeutschen möchten, finden Sie im Abschnitt über GNOME weitere Hinweise hierzu. Der Eingriff hierfür ist im Prinzip der gleiche wie hier für GDM gezeigt.

login.app

Login.app ist kein Display-Manager wie xdm oder gdm, Sie können diesen also nicht verteilt im Netz nutzen, sondern nur lokal auf einem Rechner. Dafür wurde Login.app aber auch nicht entworfen Ziel war es, ein kleines, schnelles und gut aussehendes grafisches Login zu bieten.

Sie können Ihr System auch von Login.app aus herunterfahren, geben Sie hierzu als Benutzernamen „halt“, „reboot“ oder auch „suspend“, gefolgt vom Paßwort für den Superuser, an.

Die Homepage zu Login.app finden Sie unter: http://www.fukt.hk-r.se/~per/login/.