desktopia.png

root-tail

Jo´s alternativer Desktop

01.04.2001 Wer kennt das nicht: Irgend etwas am System hängt, und ein – lästiger – Blick in die Log Files unter /var/log/ ist nötig, um den Übeltäter einzukreisen. Auch ohne akute Probleme ist es deutlich besser, immer informiert zu sein, um nicht erst nach einem "zu spät" in den Log-Files Ursachenforschung betreiben zu müssen. Mit "root-tail" erhalten Sie ohne Mausklicks alle gewünschten Informationen aus Log-Dateien – einfach auf dem Desktophintergrund.

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.

Something special

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.

Abbildung 1

Abbildung 1: "root-tail" auf dem Desktop-Hintergrund

Los geht's!

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

Nix los?

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.

super

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).":

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.

Personal Edition

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.
Abbildung 2

Abbildung 2: root-tail -g 120x13+20+20 -color mistyrose1 -fn 6x13 -shade /var/log/messages /var/log/kern.log,red

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.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare