Am Montag, 21. April 2003 19:24 schrieb Luca Bertoncello:
Bernd Ledig schrieb:
Xlib: connection to ":0.0" refused by server
Klar! Der Nutzer hat keine Rechte um ein Programm auf diesem X-Server zu starten!
Die selben Programme als normaler User aus der Konsole starten funktioniert ohne Probleme. Auch wenn ich mich als root am kde Anmelde (es läugt übrigens kdm) funktioniert es. Nun will ich mich aber nicht jedes mal ummelden, nur weil ich mal ein Programm mit root-Rechten laufen lassen (z.b. synaptic) will.
Dein Problem hat eine sehr einfache Lösung:
(als Nutzer mit dem du in KDE angemeldet hast):
xhost localhost
(als root):
export DISPLAY=localhost:0.0
Die etwas komfortablere Lösung wäre ein Eintrag in die Datei .bashrc von root (im Ordner /root) <---------------- schnipp --------------------------> # die DISPLAY-Variable setzen, damit bei Nutzung von "su" # auch mit X-Programmen gearbeitet werden kann if [ $DISPLAY ] ; then su $LOGNAME -c " xauth extract - $DISPLAY" | xauth merge - fi; <---------------- schnapp -------------------------->
Zur Erläuterung: 1. root wechselt seine Identität zu $LOGNAME (der Login-Name) 2. Nun extrahiert xauth aus der Datei .Xauthority des Benutzers den Schlüssel für den Zugriff auf den Desktop des Benutzers 3. der Schlüssel wird in die Datei .Xauthority von root hinzugefügt. ==> Root darf nun auf den Desktop des Benutzers zugreifen
Dieses Verfahren ist etwas sicherer als die Variante "xhost localhost", weil nur root Zugriff auf den Desktop bekommt und nicht jeder auf dem Rechner eingeloggter User.
Einen schönen Ostermontag noch
Jens Weiße