XDM

    Aus mxlinuxusers.de
    Version vom 13. Dezember 2021, 15:56 Uhr von Gosian (Diskussion | Beiträge) (→‎Aussehen)
    (Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
    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.