gksu: Gtk-WARNING **: impossibile aprire il display:: 0


40

Tutto l'improvviso gksu ha smesso di funzionare per me:

~$ gksu gparted

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

Lo stesso succede con gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

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

Cosa potrebbe causare questo?

Non sto eseguendo questo tramite SSH o VNC. Questo è localhost in una normale finestra terminale.


Non si lavora in un'interfaccia utente grafica o si tenta di eseguire un programma su un sistema (ad es. Via ssh) che nessuna interfaccia grafica fornisce.
AB

1
@AB Dovrei chiarire che questo non avviene tramite SSH. Si trova sull'host locale in una finestra del terminale molto normale. Infatti, l'apertura dal menu dell'applicazione ha lo stesso risultato.
d_inevitable

Non dovresti usare gksuper eseguire GParted. gpartedusa polkit per ottenere privilegi elevati.
muru,

@muru quando corro gpartedsenza di gksumeRoot privileges are required for running gparted.
d_inevitable

Ok, prova gparted-pkexec(senza gksu) o gksu gpartedbin.
muru,

Risposte:


67

Se si esegue Ubuntu 17.10 o versioni successive, questo problema può verificarsi quando un'applicazione non è stata aggiornata con il supporto completo per Wayland. Come soluzione alternativa fino all'aggiornamento dell'applicazione, è possibile eseguire

xhost +SI:localuser:root

che consentirà rootall'utente di visualizzare le applicazioni sul desktop. Vedi anche queste domande e risposte per altre possibili soluzioni: perché gksu / gksudo o l'avvio di un'applicazione grafica con sudo non funzionano con Wayland?

fonte


@MDMower Thx per l'editing, ho imparato qualcosa di nuovo =)!
Cutton Eye,

@pomsky Thx per l'aggiunta del collegamento;)!
Cutton Eye,

In 18.04 X-Org verrà riutilizzato come predefinito. Quindi questo problema dovrebbe vanis allora. vedi
Cutton Eye

11

Prova a eseguire xhost +localhostnel tuo terminale, quindi esegui nuovamente il comando. Ciò consente a tutti gli utenti del sistema (ad esempio root) di aprire finestre sullo schermo. Assicurati di utilizzare + localhost e non semplicemente +, poiché è più sicuro consentire connessioni solo da localhost che da qualsiasi luogo.

Per renderlo permanente, modifica il ~/.xinitrcfile in questo modo:

Correre gedit ~/.xinitrc

Modifica il file in questo modo (dovrebbe essere vuoto all'inizio):

#! /bin/bash
xhost +localhost &

Ora salva il file, esci e accedi. Ora tutto dovrebbe funzionare bene con sudo.

Non riesco a riprodurre il tuo problema su 14.04, ma questo ha funzionato per me in passato quando sudo / gksu ha lanciato questo errore.

fonti:

  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
Questo funziona davvero. Ciò significa che si tratta di una limitazione del controllo di accesso? Qualche idea su quale potrebbe essere la causa?
d_inevitable

Sì, è una funzionalità di sicurezza di X. Permette solo connessioni dal tuo utente a xserver fino a quando non viene detto diversamente, credo. Non sono super sicuro del perché sia ​​necessario per alcune app e non altre, e non ho idea del perché lo farebbe per parte di tutte le cose. Forse stavi armeggiando e rafforzando la sicurezza da qualche parte?
Mark Paskal,

2
Questo produce un errore: xhost: impossibile aprire display ""
IgorGanapolsky

5
Su redis , è stato suggerito di usare xhost +local:. Successivamente sono stato in grado di avviare gparted dal terminale, ma l'utilizzo xhost +localhostnon ha funzionato.
rmin

1
Infatti! xhost +local:il mio fisso! Produce non-network local connections being added to access control listciò che è necessario.
lobner,

5

Eseguire quanto segue nel terminale:

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

Aggiungi la seguente riga alla fine.

export XAUTHORITY=$HOME/.Xauthority

2
Sarebbe utile se potessi aggiungere qualche spiegazione su come questo risolve il problema e se ha effetti collaterali negativi?
Geoff
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.