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.


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


@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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.