Xubuntu: Xorg ohne LightDM und Root-Rechte ausführen

Standardmäßig wird unter Xubuntu der Xorg-Server durch den Display-Manager LightDM mit Root--Rechten ausgeführt. Aus Sicherheitsgründen ist es ratsam, jegliche Software, die nicht zwingend Root-Rechte benötigt, nur mit eingeschränkten Benutzerrechten auszuführen. Leider unterstützt LightDM derzeit kein sogenanntes "rootless Xorg" (siehe auch GitHub: LightDM - Support non-root X - Issue #18).

Grundsätzlich kann ich auf einen Display-Manager und eine Anmeldung per GUI verzichten. Aus diesem Grund habe ich derzeit mein System testweise so umgestellt, dass ich mich per virtueller Konsole (TTY) anmelde. Nach erfolgreicher Anmeldung wird dann automatisch der Xorg-Server und Xfce ohne Root-Rechte gestartet.

Verwendete Software für diesen Beitrag
  • Xubuntu v20.04 LTS

Xorg ohne Root-Rechte - Schritt für Schritt

Hinweis

Ich selbst teste das Ganze gerade auf meinem Testsystem. Ich sehe das hier eher als experimentell an und möchte erst einmal testen, ob es keine Probleme gibt, wenn Xorg nicht mehr mit Root-Rechten läuft. Die hier im Beitrag vorgestellten Änderungen können bei Problemen aber ohne Weiteres zurückgedreht werden.

Ausgangslage

Um sich anzeigen zu lassen, mit welchen Benutzerrechten Xorg läuft, kann bspw. folgender Befehl verwendet werden:

ps aux | grep 'lightdm\|xorg'
root 620  0.0  0.1 305872  7396 ?     SLsl 12:59 0:00 /usr/sbin/lightdm
root 638  0.4  2.6 883296 107116 tty7 Ssl+ 12:59 0:04 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
Terminal / Konsole

Die Ausgabe verdeutlicht, dass sowohl LightDM als auch Xorg mit Root-Rechten laufen.

Anmeldung per Konsole (TTY/VT) einstellen

Im ersten Schritt habe ich die grafische Anmeldung per LightDM via systemd deaktiviert. Dazu dient folgender Befehl (siehe auch systemd: Special System Units):

sudo systemctl set-default multi-user.target
Terminal / Konsole

Beim nächsten Boot-Vorgang landet ihr nun direkt in der Konsole und könnt euch anmelden.

Xorg automatisch nach Login starten

Als nächstes muss dafür gesorgt werden, dass nach einem erfolgreichen Login der Xorg-Server automatisch gestartet wird. Bei mir habe ich es so eingestellt, dass wenn ich mich in der Konsole TTY1/VT1 am System anmelde, dann soll in VT1 Xorg gestartet werden. Dazu habe ich die .profile in meinem home-Verzeichnis wie folgt erweitert:

[...]

if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
    exec startx
fi
Datei: ~/.profile

Details zum Code findet ihr sowohl im Arch-Linux-Wiki als auch im Gentoo-Linux-Wiki.

System neu starten

Nach einem Neustart des Rechner und der Anmeldung in TTY1 bzw. VT1 solltet ihr nun wie bei LightDM in eurer Xfce-Desktop-Umgebung landen. Nun können wir auch gleich noch sicherstellen, dass Xorg nicht mehr mit Root-Rechten ausgeführt wurde:

ps aux | grep 'lightdm\|xorg'
sl 703  2.4  3.1 953080 125528 tty1 Sl 13:24 0:08 /usr/lib/xorg/Xorg -nolisten tcp :0 vt1
Terminal / Konsole

Anstatt mit Root-Rechten läuft Xorg nun mit meinen (eingeschränkten) Benutzerrechten.

Hinweis Xubuntu-Standardeinstellungen

Die Xubuntu-spezifischen Konfigurationseinstellungen liegen unter /etc/xdg/xdg-xubuntu/. Diese wurden bei mir nicht mehr berücksichtigt. Ich habe die entsprechenden Standardeinstellungen, die ich nicht sowieso überschrieben hatte, deshalb in mein lokales Konfigurationsverzeichnis (~/config/xfce4) gemerged.

Optional: Benutzername in TTY1/VT1 vorbelegen

In LightDM war mein Benutzer bereits vorausgewählt und ich musste nur noch das Passwort eingeben. Auf diesen Komfort wollte ich dann doch nicht verzichten. Gemäß Arch-Linux-Wiki habe ich dazu eine entsprechende systemd-Konfiguration vorgenommen.

Änderungen rückgängig machen

Um wieder die grafische Anmeldung per LightDM herzustellen, müsst ihr zum einen die Änderungen in eurer .profile wieder entfernen. Des Weiteren muss folgender Befehl ausgeführt werden:

sudo systemctl set-default graphical.target
Terminal / Konsole

Fazit

Der Xorg-Server muss nicht zwangsweise mit Root-Rechten unter Xubuntu laufen, sondern kann auch mit eingeschränkten Benutzerrechten ausgeführt werden.

Aktualisierungshistorie:
  • 25. Juni 2021
    Befehl startxfce4 durch startx aufgrund von Problemen mit xfce-notifyd ersetzt
Feedback

Für Feedback zum Beitrag, seien es Fragen, Korrigierungen und/oder Anregungen, könnt ihr mir gerne eine Nachricht per E-Mail oder Mastodon schreiben (siehe Kontakt).