Impossibile connettersi a X Server quando si esegue app con sudo


29

Quando eseguo alcuni software usando il sudocomando mostra errori come

cannot connect to X server

Ad esempio, se eseguo il comando seguente:

$ sudo gedit /etc/profile

Sto ottenendo il seguente comando

(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --binary-syntax --close-stderr' 
exited with non-zero exit status 1: 
Autolaunch error: X11 initialization failed. 
Cannot open display:
Run 'gedit --help' to see a full list of available command line options.

O se sto correndo super-boot-managerricevo il seguente errore

buc: cannot connect to X server

Per favore aiuto.


Da dove scappi super-boot-manger?
Thor,

Per prima cosa ho provato a correre super-boot-managerdirettamente dall'unità luncher, non ha funzionato. Poi l'ho provato dal terminale, poi ho avuto quel massaggio di errore.
Apurba,

Come in un terminale all'interno dell'ambiente utente grafico? Cosa significa: echo $DISPLAYdire? È consigliabile eseguire senza sudocome super-boot-managercorre sudointernamente.
Thor,

echo $DISPLAYsta dando :0.0. E non sto correndo super-boot-managercome sudo. Sto correndo solo usando il comando super-boot-managerdal terminale.
Apurba,

1
Finalmente il problema è risolto. Ho appena aggiunto la riga: Defaults env_keep="DISPLAY XAUTHORITY"alla fine di visudo. Grazie a tutti, specialmente @Thor per il gentile aiuto.
Apurba,

Risposte:


39

Devi consentire all'utente root di accedere al server X:

xhost local:root

E punta il comando a destra DISPLAY:

sudo DISPLAY=$DISPLAY gedit /etc/profile

Ciò ha risolto il problema con l'apertura geditcome sudo, ma non è ancora possibile pranzare super-boot-manager. Sta mostrando lo stesso errore
Apurba

15

Finalmente il problema è risolto. Ho appena aggiunto la riga:

Valori predefiniti env_keep = "DISPLAY XAUTHORITY"

alla fine di visudo.

Per farlo devi correre

sudo visudo

aprirà il file quindi aggiungerà la riga sopra alla fine.

Grazie a tutti, specialmente @Thor per il gentile aiuto


1
Valori predefiniti env_keep = "DISPLAY" funziona per me.
Bagustris

Ho cercato per sempre questa risposta. Vorrei poter votare entrambi più volte per le vostre risposte. Grazie mille! :)
Ev-

4

Completando la risposta di @ Thor:

Esegui xhost local:rootprima sudo gedit. Per renderlo permanente, aggiungi la linea

xhost local:root

al file ~ / .xinitrc 1 . Crea il file se non esiste.


[1] https://askubuntu.com/a/720120/452398


Grazie per aver fornito una risposta che fornisce una soluzione non permanente.
2NinerRomeo
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.