Ubuntu 17.10 (Wayland) - Grafisches Programm als Administrator

FranzvonAssisi

Admiral
Registriert
Dez. 2013
Beiträge
7.441
Hey,

ich habe einige Zeit gebraucht, um eine Lösung zu finden (Ich bin Linux-Anfänger :D) und wollte sie hier nur mit euch teilen, um hoffentlich irgendwann mal jemandem zu helfen ;).

Wer unter Ubuntu 17.10 versucht ein Programm mit eigenem Fenster (grafischer Oberfläche) zu starten bekommt eine Fehlermeldung:
Code:
Gtk-WARNING **: cannot open display: 0
wobei 0 hier das entsprechende Display ist.

Um das ganze trotzdem ausführen zu können (Z.B. GEdit oder das Xampp-Control-Panel), muss man dem Admin die entsprechenden Rechte geben via
Code:
xhost +local

Um das ganze einfach zu verwenden und den eigentlichen Sinn (Sicherheit) dieser Beschränkung aufrecht zu erhalten, sollte man die Berechtigung nur für das eine Programm benutzen (und nicht dauerhaft aktiv lassen), weshalb man das ganze dann etwas ausbauen und in ein Skript packen kann:

Code:
#!/bin/bash
#Skript um Rootzugriff auf xwindows-Systeme zu erlauben
xhost +SI:localuser:root
sudo $1
#Rootzugriff wieder deaktivieren
xhost -SI:localuser:root
#Zugriffsrechte ausgeben, um Rechte zu überprüfen
xhost

und dann kann man einfach per
Code:
wsudo Dateipfad/name
auf die Programme zugreifen!

Finde ich sehr praktisch, auch wenn ich mich frage, warum sowas nicht schon existiert (als Befehl)? Oder habe ich das übersehen? :confused_alt:
Das das Problem auftreten wird, war doch hoffentlich vorhersehbar für die Entwickler?

Wenn ich etwas falsch verstanden habe oder ihr noch Tipps wisst, immer her mit eurem Wissen :D :freaky:

Lg
 
Zuletzt bearbeitet:
Solange du der einzige Benutzer des Rechners bist und nur anderen lokalen Accounts Zugriff auf deinen X-Server verschaffen möchtest, ist das mit xhost +irgendwas schon in Ordnung. Statt mit xhost zu arbeiten, kannst du auch dein "Magic Cookie" aus der ~/.Xauthority auf den anderen Account kopieren. Etwa so: xauth nextract - $DISPLAY |ssh zweitaccount xauth nmerge -

Gehts wirklich übers Netz, sollte man was anderes verwenden. Am angenehmsten dürfte "ssh -X nutzer@rechner programm" sein. Und wenn man sowieso "ssh -X ..." für X über Netz verwendet, kann man es für den lokalen Sonderfall, um den es dir eigentlich geht, auch gleich nutzen. Der Overhead durch ssh spielt nur selten eine Rolle.
 
Zuletzt bearbeitet:
Zurück
Oben