Umleitung der graphischen Ausgabe eines X-Programmes

X-Programmes bestimmen den Ausgabebildschirm aus der Environmentvariable DISPLAY. Wenn diese nicht auf den lokalen Rechner weist, versucht das Programm, die Ausgabe Über den X-Server des anderen Rechners zu leiten. Diesen muss aber mitgeteilt werden, das der Rechner, auf dem das X-Programm läuft auf ihren (den X-Server) zugreifen darf. Darf man dieses nicht, bekommt man eine Fehlermeldung.

Wenn ich nun eine Programm auf einem entfernten Rechner (nennen wir ihn mal Anderer) starten möchte, die Ausgabe soll aber bei auf meinem Rechner (nennen wir ihn Meiner) erscheinen soll, so geht man wie folgt vor.

  1. Auf dem eigenen Rechner teilt man den eigenen S-Server mit, das Zugriffe von Anderer erlaubt sein sollen:
    > xhost Anderer
    Das ganze kann man mit
    > xhost -Anderer
    auch wieder rückgängig machen.
  2. Man loggt sich remote (z.B. mit ssh oder telnet) auf Anderer ein.
  3. Dort setzt man die Variable DISPLAY um:
    export DISPLAY="Meiner:0" (bash-Variante)
    setenv DISPLAY "Meiner:0" ((t)csh-Variante).
  4. Nun startet man auf Anderer das Programme und die Ausgabe wird auf dem eigenen Bildschirm erscheinen.

Ähnliches muss man tun, wenn man in einer Shell mit su den Benutzeraccount gewechselt hat. In diesem Fall, muss man in einer Shell des ursprünglichen Benutzers xhost localhost eingeben und beim neuen Benutzer export DISPLAY=":0" bzw. setenv DISPLAY=":0". Nützlich ist dies vor allem, wenn man als normaler Nutzer eingeloggt ist und schnell mal eine Administratoraufgabe zu erledigen hat.


Rüdiger Goetz
Last modified: Sun Mar 12 17:01:44 CET 2000