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:
- Xsetup
- Xstartup
- Xsession
- Xreset
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 | 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.
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. |
Weblinks[Bearbeiten | Quelltext bearbeiten]
XDM (dt. Ubuntu-Wiki)