gksu: Gtk-WARNING **: Anzeige kann nicht geöffnet werden:: 0

40

Plötzlich hörte gksu auf, für mich zu arbeiten:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

Das gleiche passiert mit gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

Was könnte dies möglicherweise verursachen?

Ich verwende dies nicht über SSH oder VNC. Dies ist localhost in einem normalen Terminalfenster.

d_inevitable
quelle
Sie arbeiten nicht in einer grafischen Benutzeroberfläche oder versuchen, ein Programm auf einem System (z. B. über ssh) auszuführen, das keine grafische Oberfläche bietet.
AB
1
@AB Ich sollte klarstellen, dass dies nicht über ssh geht. Es befindet sich auf einem lokalen Host in einem ganz normalen Terminalfenster. Das Öffnen von Infact über das Anwendungsmenü führt zum gleichen Ergebnis.
D_inevitable
Sie sollten gksuGParted nicht verwenden müssen, um es auszuführen. gpartedverwendet Polkit, um erhöhte Berechtigungen zu erhalten.
Muru
@muru wenn ich gpartedohne laufe gksubekomme ichRoot privileges are required for running gparted.
d_inevitable
Ok, probiere gparted-pkexec(ohne gksu) oder gksu gpartedbin.
muru

Antworten:

67

Wenn Ubuntu 17.10 oder neuer ausgeführt wird, kann dieses Problem auftreten, wenn eine Anwendung nicht mit vollständiger Unterstützung für Wayland aktualisiert wurde. Um dieses Problem zu umgehen, können Sie die Anwendung ausführen, bis sie aktualisiert wurde

xhost +SI:localuser:root

Dadurch kann der rootBenutzer Anwendungen auf Ihrem Desktop anzeigen. Weitere mögliche Problemumgehungen finden Sie in diesen Fragen und Antworten : Warum funktioniert gksu / gksudo oder das Starten einer grafischen Anwendung mit sudo nicht mit Wayland?

Quelle

Cutton Eye
quelle
@MDMower Thx zum bearbeiten, etwas neues gelernt =)!
Cutton Eye
@pomsky Thx für das Hinzufügen des Links;)!
Cutton Eye
In 18.04 wird X-Org wieder als Standard verwendet. Also sollte dieses Problem dann verschwinden. siehe
Cutton Eye
11

Versuchen Sie, xhost +localhostdas Terminal auszuführen, und führen Sie den Befehl erneut aus. Auf diese Weise können alle Benutzer auf Ihrem System (z. B. Root) Fenster auf Ihrem Bildschirm öffnen. Stellen Sie sicher, dass Sie + localhost und nicht nur + verwenden, da es sicherer ist, Verbindungen nur von localhost als von überall zuzulassen.

Um dies dauerhaft zu machen, bearbeiten Sie die ~/.xinitrcDatei wie folgt:

Lauf gedit ~/.xinitrc

Bearbeiten Sie die Datei so, dass sie so aussieht (sie sollte zu Beginn leer sein):

#! /bin/bash
xhost +localhost &

Speichern Sie nun die Datei, melden Sie sich ab und wieder an. Jetzt sollte alles mit sudo funktionieren.

Ich kann Ihr Problem am 14.04 nicht reproduzieren, aber das hat in der Vergangenheit bei mir funktioniert, als sudo / gksu diesen Fehler verursachte.

Quellen:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession
Mark Paskal
quelle
1
Das funktioniert in der Tat. Bedeutet das also, dass es sich um eine Zugriffsbeschränkung handelt? Irgendwelche Ideen, woran das liegen könnte?
d_inevitable
Ja, es ist ein Sicherheitsfeature von X. Es erlaubt nur Verbindungen von Ihrem Benutzer zum xserver, bis es anders angegeben wird, denke ich. Ich bin mir nicht sicher, warum es für einige Apps und nicht für andere erforderlich ist, und ich habe keine Ahnung, warum es dies für bestimmte Dinge tun würde. Vielleicht haben Sie irgendwo an der Sicherheit gebastelt und sie verschärft?
Mark Paskal
2
Dies führt zu einem Fehler: xhost: Anzeige "" kann nicht geöffnet werden
IgorGanapolsky
5
Bei Redis wurde die Verwendung empfohlen xhost +local:. Danach konnte ich gparted vom Terminal aus starten, aber die Verwendung xhost +localhostfunktionierte nicht.
6.
1
Tatsächlich! xhost +local:reparierte meine! Es non-network local connections being added to access control listgibt nach, was gebraucht wird.
Lobner
5

Führen Sie in Ihrem Terminal Folgendes aus:

nano /home/user/.bashrc # user = name of your user

Fügen Sie am Ende die folgende Zeile hinzu.

export XAUTHORITY=$HOME/.Xauthority
Wilder Hernández García
quelle
2
Wäre nützlich, wenn Sie eine Erklärung hinzufügen könnten, wie das Problem gelöst wird und ob es irgendwelche nachteiligen Nebenwirkungen hat?
Geoff