root-tail
Jo´s alternativer Desktop
Zugriff auf den X-Server
Selbst root darf nicht einfach einen fremden Desktop als Ausgabemedium missbrauchen: Der X-Server hat eine eigene Zugriffskontrolle. Geregelt wird dies in der versteckten Datei ~/.Xauthority – und da der "User root" die Daten eines jeden Users lesen kann, kann er die des Users einfach mitverwenden. Die einfachste Variante hierzu ist das Setzen der Umgebungsvariablen XAUTHORITY:
export XAUTHORITY=/home/jo/.Xauthority
Damit aber nicht genug: Da root keinen X-Server gestartet hat, reicht diese Erlaubnis nicht – denn unser Programm kann diese erst nutzen, wenn es auch weiß, dass ein fremdes Display verwendet werden soll. Auch hier hilft das Setzen einer Variablen:
export DISPLAY=:0.0
Bevor das nun beschriebene zusammengefügt wird, hier ein kleiner Test, der die nötige Basis veranschaulicht – und funktionieren sollte:
jo@planet ~$ su - Password: root@planet:~# export XAUTHORITY=/home/jo/.Xauthority root@planet:~# export DISPLAY=:0.0 root@planet:~# root-tail /var/log/messages
Beenden kann man root-tail in diesem Fall mit der Tastenkombination [Strg+C].
Puzzle
Da nun als root vor dem Start von root-tail noch zwei Variablen gesetzt werden müssen, kann dies nicht mehr mit einem einfachen Aufruf geschehen. Ein kleines Skript schafft hier Abhilfe – allerdings muss dann nicht mehr root-tail, sondern das ganze Skript über super gestartet werden (auch die Variablen muss root setzen, gelten sie doch für ihn). Am Besten legen Sie eine Datei /usr/local/sbin/root-tail.username mit folgendem Inhalt an:
#!/bin/sh export XAUTHORITY=/home/username/.Xauthority export DISPLAY=:0.0 /usr/X11R6/bin/root-tail /var/log/messages
Da Skripte, die über Tools wie super aufgerufen werden, leicht durch Modifikationen missbraucht werden können, sollte die Datei nur für root les- und schreibbar sein (ansonsten könnte jeder, der die Datei ändern und über super starten kann, darin beliebige Programme durch einfaches Hinzufügen starten lassen!). Daher als root tippen:
chown root.root /usr/local/sbin/root-tail.username chmod 700 /usr/local/sbin/root-tail.username
Anschließend noch die Konfigurationsdatei super.tab anpassen:
root-tail /usr/local/sbin/root-tail.username jo
Und fortan erscheint /var/log/messages auf dem User-Desktop nach Eingabe von super root-tail.
Zugegeben, der Aufwand ist bedingt durch die User-Rechte und den Zugriff auf den X-Server zunächst beträchtlich – aber hat man das einmal verstanden und eingesetzt, so ist es einfach: super gibt beliebige Programme für einen oder mehrere User frei, und ein Skript erlaubt die grafische Ausgabe. Diese Vorgehensweise lässt sich auf zahllose Programme übertragen, so z. B. auch auf den Lieblings-Datei-Manager, den man sich somit ein zweites Mal – aber mit Root-Rechten – ins Startmenü setzen kann. Dieser startet dann ganz ohne zusätzliche Passwortabfrage. Und das ist doch allerhand Aufwand wert.



