XDM

Aus mxlinuxusers.de
Displaymanager XDM

XDM (X-Display-Manager) ist der erste Displaymanager der für das X Window System (die grafische Oberfläche) geschrieben wurde. An seiner Funktionalität haben sich alle späteren Displaymanager orientiert. XDM bietet Unterstützung für XDMCP (»X Display Manager Control Protocol«), das bedeutet, man kann sich mit ihm sowohl am lokalen Rechner als auch an entfernten Rechnern anmelden.

Die Installation kann durch dieses Kommando erfolgen

sudo apt-get install xdm

Hat man schon einen anderen Displaymanager installiert, so wird wird man gefragt, welcher nun der Standardmanager sein soll. Der ausgewählte Displaymanager wird dann beim nächsten Boot-Vogang automatisch gestartet. Dadurch ist es möglich, XDM erst einmal auszuprobieren, ohne einen anderen Displaymanager deinstallieren zu müssen.

Optisch kommt XDM schlicht daher, was aber sicherheitstechnisch sogar ein gewisser Vorteil ist, da hier der Username nicht aus einer Liste ausgewählt wird, sondern von Hand eingegeben werden muss. Das bedeutet für einen Angreifer vor Ort, daß er nicht nur das Passwort, sondern auch den Usernamen kennen muss.

Das Aussehen lässt sich aber leicht anpassen. Überhaupt bietet XDM eine Menge von Konfigurationsmöglichkeiten, die mit Konfigurationsdateien im Verzeichnis /etc/X11/xdm/ durchgeführt werden können. In der Datei /etc/X11/xdm/xdm-config befindet sich die Hauptkonfiguration.

Meldungen von XDM (Info- und Fehlermeldungen) werden in der Datei /var/log/xdm.log protokolliert.

Wenn keine Anmeldung auf einem entfernten X-Server erfolgt werden nach dem Start von XDM folgende Dateien aus dem Verzeichnis /etc/X11/xdm/ in dieser Reihenfolge abgearbeitet:

  1. Xsetup
  2. Xstartup
  3. Xsession
  4. Xreset
Ablauf von XDM
Skript Bedeutung
XSetup wird noch vor Login-Widget als root ausgeführt und setzt z.B. Vorder- und Hintergrundfarbe des Root-Windows. Dies geschieht mit Hilfe von xsetroot, das u.a. auch Bitmaps als Hintergrund zulässt.

Da es sich bei XSetup um ein Bash-Skript handelt kann man es aber an seine eigenen Vorstellungen anpassen und z.B. statt xsetroot das Kommando display benutzen, um ein Hintergrundbild anzuzeigen

#! /usr/bin/bash
/usr/bin/display -resize 1366x768 -window root /PFAD/ZUM/HINTERGRUNDBILD.png
Xstartup wird als root nach Eingabe der Login-Daten des Users ausgeführt und kontrolliert ob der Login erfolgen kann und darf
Xsession initialisiert die XSession für den eingelogten User, indem verschiedene notwendige Funktionen und Optionen gesetzt werden und der Logfile für die Sitzung eingerichtet wird. Dann werden Skripts im Verzeichnis /etc/X11/Xsession.d/ mit Hilfe von run-parts ausgeführt. Ist dieses Verzeichnis nicht vorhanden, bricht Xsession den Loginvorgang mit einem Fehler ab. Weitere Dateien, die ausgeführt bzw. eingelesen werden können, befinden sich in /etc/X11/Xresources/ und /etc/X11/Xsession.options, sowie im Homeverzeichnis des Users die Datei ~/.xsession Diese sind jedoch optional.

Eventuelle Fehlermeldungen werden nach $HOME/.xsession-errors bzw. nach $TMPDIR/FILENAME geschrieben, wobei FILENAME ein zufällig generierter Name ist. Letztere Datei wird jedoch nur benutzt, wenn das Schreiben nach $HOME/.xsession-errors aus igendwelchen Gründen nicht möglich ist. Im Normalfall reicht es also für die Fehlersuche, sich die Dateien $HOME/.xsession-errors und /var/log/xdm.log anzusehen.

Xreset wird am Ende der Sitzung (beim ausloggen) zum Aufräumen ausgeführt, der X-Server wird zurückgesetzt und der Anmeldevorgang kann von neuem beginnen

Konfiguration[Bearbeiten | Quelltext bearbeiten]

Zuerst wird dringend empfohlen, vor jeder Änderung einer Konfigurationsdatei ein Backup der Datei anzulegen, da es bei eventuellen Fehlern möglich ist, dass man sich gar nicht mehr in eine grafische Oberfläche einloggen kann. Als Rettung kann man dann auf dem Umweg über eine Konsole die Backupdatei zurück zu kopieren.

Default Sitzung[Bearbeiten | Quelltext bearbeiten]

XDM besitzt keine Möglichkeit, die Sitzung auszuwählen. Diese kann im Homeverzeichnis des Users in der Datei .xsession in folgender Form angegeben werden:

#!/usr/bin/sh
exec startxfce4

hier um xfce zu starten. Wer nicht genau weiss, was nach exec einzutragen ist, kann mit

update-alternatives --list x-session-manager

nachsehen, oder (etwas umständlicher) mit

grep -Rh ^Exec /usr/share/xsessions/

Ist man nur der einzige User oder möchte gemäss seiner Administratorgewalt ("Ich bin Root, ich darf das!") allen anderen eine Defaultsitzung verordnen, dann kann man mit diesem Kommando eine einstellen:

sudo update-alternatives --config x-session-manager

Die User, die etwas anderes möchten als z.B. xfce als Default, könnten sich dann immer noch eine Datei ~/.xsession einrichten, da die persönliche Einstellung im Homeverzeichnis Vorrang vor der allgemeinen Einstellung hat.

Aussehen[Bearbeiten | Quelltext bearbeiten]

Aussehen von XDM
Aussehen zuständige Datei in /etc/X11/xdm/ Konfiguration
Hintergrundfarbe/Wallpaper Xsetup Das Skript ruft im Moment nur das Kommando xsetroot auf, das Farben aber auch Bitmaps als Hintergrund zulässt. Zu Details s.
man xsetroot

Da es sich bei XSetup um ein Bash-Skript handelt kann man es aber an seine eigenen Vorstellungen anpassen und z.B. statt xsetroot das Kommando display benutzen, um ein Hintergrundbild anzuzeigen

#! /usr/bin/bash
/usr/bin/display -resize 1366x768 -window root /PFAD/ZUM/HINTERGRUNDBILD.png

Überhaupt lässt sich hier jedes Programm benutzen, das einen echten Backgrund im Display setzen kann. Ein weiterer Kandidat wäre z.B. feh

Begrüssungstext Xresources die Texte nach dem Doppelpunkt können beliebig ersetzt werden
xlogin*greeting: Willkommen auf CLIENTHOST
xlogin*namePrompt: Username eingeben
xlogin*fail: Login falsch oder verboten
Schriftarten Xresources die verwendeten Schriftarten werden für jeden Text nach dem Muster von xfontsel gesetzt:
xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1
xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1
xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1
xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1
Schriftfarben Xresources Farben können für jeden Text mit den üblichen Farbnamen festgelegt werden:
# xlogin*shdColor: Rahmenfarbe rechts u. unten
xlogin*shdColor: grey30
# xlogin*hiColor: Rahmenfarbe links u. oben
xlogin*hiColor: grey90
xlogin*background: grey
# xlogin*foreground: Farbe des einzugebenden Textes (Username) 
xlogin*foreground: black
# xlogin*greetColor: Farbe des Begrüssungstextes
xlogin*greetColor: Blue3
xlogin*failColor: red
Rahmenstärke Xresources die Breite des Rahmens um die Loginbox kann in Pixeln angegeben werden:
xlogin*borderWidth: 1
# wird xlogin*frameWidth auf 0 oder false gesetzt, gibt es keinen Rahmen
xlogin*frameWidth: 5
xlogin*innerFramesWidth: 2
Logo Xresources als Logo wird der Pfad zu einer xpm-Grafik angegeben:
xlogin*logoFileName: /usr/share/X11/xdm/pixmaps/debian.xpm

möchte man kein Logo wird xlogin*logoFileName einfach mit # auskommentiert

Abstand des Logos zum Text in Pixeln:

xlogin*logoPadding: 10
Position und Grösse des Login-Fensters Xresources wird durch diese Option gesetzt
xlogin*geometry: <BREITE>x<HÖHE>+<X>+<Y>

für <BREITE>, <HÖHE>, <X> und <Y> die gewünschten Pixelwerte einsetzen. Der Ursprung des gedachten Koordinatensystems befindet sich dabei in der linken oberen Ecke des Bildschirms.

  • +<X> = Abstand vom linken Monitorrand
  • +<Y> = Abstand vom oberen Monitorrand

Werden vor <X> und <Y> statt Pluszeichen Minuszeichen gesetzt, so wird als Koordinatenursprung die rechte untere Ecke des Bildschirms benutzt.

Beispiele:

xlogin*geometry: 600x300+0+0

eine 600 Pixel breite und 300 Pixel hohe Loginbox, ganz links oben auf dem Bildschirm

xlogin*geometry: 500x400-25-25

eine 500 Pixel breite und 400 Pixel hohe Loginbox, rechts unten, 25 Pixel vom rechten und unteren Bildschirmrand entfernt

Ändert man die Grösse der Loginbox sollte man darauf achten, eventuell auch die Schrift- und Logogrösse anzupassen, damit diese noch in das Login-Fenster passen.

Wird xlogin*geometry weggelassen, so erscheint das Loginfenster in der Mitte des Bildschirms.