Versucht man ein Programm (z.B. gedit) mit grafischer Oberfläche per sudo (eventuell auch noch über eine SSH-Verbindung) zu starten, so erhält man meistens die Fehlermeldung
benutzer@meinrechner:~$ sudo gedit X11 connection rejected because of wrong authentication. Anzeige kann nicht geöffnet werden:
Dieses Problem lässt sich auf zwei Wege lösen:
Der Parameter -E
Durch die Verwendung des Parameters -E
wird die vorhandene Umgebung des Benutzers in die sudo-Session mit übernommen und alles sollte reibungslos laufen.
benutzer@meinrechner:~$ sudo -E gedit
Es kann jedoch vorkommen, dass der Benutzer nicht die nötigen Rechte hat die Umgebung zu übernehmen. In diesem Fall sollte aber der folgende Weg funktionieren.
X-Authentifizierung übernehmen
Über den diesen Weg ist es möglich die X-Authentifizierung mit in die sudo-Session zu übernehmen, sodass alle X-Programme wie gewohnt laufen sollten.
# in eine Root-Shell wechseln benutzer@meinrechner:~$ sudo su - # xauth übernehmen root@meinrechner:~$ su - benutzer -c 'xauth list' | grep `echo $DISPLAY | cut -d ':' -f 2 | cut -d '.' -f 1 | sed -e s/^/:/` | xargs -n 3 xauth add # Programm staren root@meinrechner:~$ gedit
Hierbei ist darauf zu achten, dass bei su - benutzer [...]
der Benutzername des ursprünglichen Benutzers angegeben werden muss.
Schreibe einen Kommentar