deskTOPia
Wie Ihr Linux-Desktop aussieht, bestimmen allein Sie. Mit deskTOPia nehmen wir Sie regelmäßig mit auf die Reise ins Land der Window Manager und Desktop-Umgebungen, stellen Nützliches und Farbenfrohes, Hingucker und hübsches Spielzeug vor.
Nun gibt es zahlreiche Tools, die die Log-File-Einträge verfolgen und ihre hoffentlich frohe Botschaft verkünden. Aber wer mag ständig ein Fenster auf seinem Desktop geöffnet lassen, nur um alle 20 Minuten das Lebenszeichen des Syslogs ("—– MARK —--") zu bemerken? Viel schöner wäre dies sicher direkt auf dem Desktop: Kein eigenes Fenster, das geschlossen, geöffnet oder verschoben werden muss, und nichts, was die geliebte Hintergrundgrafik unterbricht. Ein solches Programm gibt es: root-tail.
Falls die eigene Distribution kein fertiges root-tail-Paket im Gepäck hat, hilft der Griff zum Quellcode des Programmes auf der Heft-CD – oder aber ein Blick nach http://www.goof.com/pcg/marc/root-tail.html. Installiert ist das dort erhältliche Archiv leicht: Grundvoraussetzung sind (wie immer) die X-Includes, die sich z. B. bei SuSE im Paket xdevel verstecken. Sind die X-Includes auf der Festplatte, so besteht der erste Schritt im Entpacken des Archives. Danach ein sogenanntes "Makefile" vom Tool xmkmf erstellen lassen, anhand dessen das anschließende Tool make abliest, was genau zu tun ist. Viel Erfahrung benötigt man also nicht – Ihr System erledigt alles für Sie. Danach erfolgt ein make install und make install.man, womit lediglich noch das fertige Programm und dessen Dokumentation an die richtigen Plätze kopiert und die korrekten Rechte gesetzt werden:
jo@planet ~$ tar xvzf root-tail-0.0.10.tar.gz jo@planet ~$ cd root-tail-0.0.10 jo@planet root-tail-0.0.10$ xmkmf -a jo@planet root-tail-0.0.10$ make jo@planet root-tail-0.0.10$ su - Password: root@planet ~# cd /home/jo/root-tail-0.0.10 root@planet root-tail-0.0.10# make install root@planet root-tail-0.0.10# make install.man root@planet root-tail-0.0.10# logout
Die Syntax zum Start von root-tail ist einfach: Wie bei fast allen Programmen erhalten Sie Informationen hierzu, indem Sie die Option "--help" mit auf dem Weg geben – also "root-tail --help" (wer es etwas genauer und ausführlicher mag, konsultiert die Manpage – zu finden über "man root-tail"). Wollen Sie z. B. die beliebte Log-Datei /var/log/messages auf dem Desktop plazieren, so wäre folgender Aufruf denkbar:
root-tail /var/log/messages
Doch da Sie als umsichtiger Linuxer keine X-Session als "User root" starten, ergibt sich ein Problem: root-tail antwortet mit einem knappen "/var/log/messages: Permission denied". Und das ist auch gut so, denn diese Dateien gehen den normalen User nichts an. Daher muss root-tail hierzu mit root-Rechten gestartet werden.
Ein gutes Tool, das einem User gestattet ein bestimmtes Programm mit root-Rechten zu starten, ist super. super sollte jeder Distribution beiliegen – falls nicht, so ist es ebenso auf der Heft-CD zu finden. Konfiguriert wird super mit der Datei /etc/super.tab, in der wir dem User "jo" einfach gestatten, root-tail auch als Superuser zu starten:
root-tail /usr/X11R6/bin/root-tail jo
Das erste Wort gibt an, um welchen Befehl es sich handelt (es können hierbei auch neue Namen erfunden werden), danach der auszuführende Befehl, und zuletzt der Username, der berechtigt sein soll, den Befehl als root zu starten (weitere Usernamen können einfach – mit einem Komma abgetrennt – angefügt werden). Nach dieser simplen Konfiguration startet root-tail mit root-Rechten über den Befehl
super root-tail /var/log/messages
Doch auch hier erscheint noch nicht das gewünschte Log File auf dem User Desktop, vielmehr antwortet root-tail mit "Error opening display (null).":
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].
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.
root-tail kann natürlich den eigenen Bedürfnissen angepasst werden. Am interessantesten dürften hierbei folgende Optionen sein:
-g gibt an, wo root-tail auf dem Desktop erscheinen soll, und auch die Anzahl der anzuzeigenden Zeichen wird hierüber festgelegt. Ein "-g 120x13+20+20" rückt root-tail um jeweils 20 Pixel vom Desktop-Rand weg und setzt dessen Größe auf 13 Zeilen mit je 120 Zeichen. Hilfreich ist hierzu auch die Option -frame, mittels der man sich zu Testzwecken einen Rahmen anzeigen lassen kann – so lange, bis die optimale Geometry-Angabe gefunden ist.-color setzt eine Standard-Schriftfarbe. Man kann auch jedem Log-File eine eigene geben, indem man dem Log-File-Aufruf einen Farbnamen mitgibt: "/var/log/messages,green" (vgl. Abbildung 2).-font: Naturgemäß eignen sich hier vorrangig Schriften mit fester Breite, also 5x7, 5x8, 6x10 usw. bis hin zu 12x24. Welche genau zur Verfügung stehen, hängt von der eingesetzten Distribution ab. Das Tool xfontsel kann bei der Auswahl helfen.-shade versieht die Buchstaben mit einem Schatten.Hinweis zu KDE 2
KDE 2 legt über den gesamten Desktop ein rahmenloses Fenster und überdeckt somit alles, was ein anderes Programm auf den Desktop-Hintergrund "malt". Eine Lösung zum Einsatz von root-tail in Verbindung mit KDE 2 ist mir nicht bekannt.