xauth

X-Windows-Zugriff für Root und andere Benutzer

Bei der Fehlermeldung "Can't open display: …" sind zwei Dinge zu beachten: (1) muß eine gültige Authorisierung zur Benutzung des verantwortlichen X-Servers vorliegen und (2) muß ein gültiges display angegeben werden.

(1) Zulassungsschlüssel

Der Schlüssel für den Zugriff auf den X-Server liegt in der Datei .Xauthority des Benutzers, der den Server startet.

Der Standardweg (für dauerhafte Zugriffserlaubnis) ist die Extraktion des Zugriffsschlüssels aus der .Xauthority-Datei und das Hinzufügen zur eigenen:

  1. Der Benutzer, dessen X-Server schon läuft extrahiert den Schlüssel mit
    xauth extract schluessel_datei $DISPLAY;
  2. Der andere Benutzer, der auch Anwendungen auf dem X-Server starten will (z.B. root), fügt nun den in dieser Datei enthaltenen Schlüssel zu seiner .Xauthority-Datei hinzu:
    xauth merge schluessel_datei.

(Der Benutzer root könnte auch die gesamte .Xauthority-Datei übernehmen, und in seinem Heimatverzeichnis ablegen, wenn es nur einen weiteren Benutzer auf dem System gibt, dessen X-server er sich bedienen möchte.)

(2) Zielvorgabe

Außerdem muß das "display" angegeben werden (da ein X-Server mehrere solcher displays (und screens) verwalten kann), z.B. durch Setzen der Umgebungsvariable in des entsprechenden Bernutzers shell (von der aus die Anwendung gestartet werden soll) mit:
export DISPLAY=:0.0
Für bash-Benutzer kann diese Anweisung dauerhaft in der ~/bashrc-Datei hinterlegt werden – so wird die Umgebungsvariable automatisch beim Starten von bash gesetzt.

Veraltet (als Warnung)

Achtung: Eine schnellere Variante, die als "böse", weil veraltet und gefährlich, gilt, ist:
xhost +local.