Impossibile connettersi a Mir: impossibile connettersi al socket del server: nessun file o directory


18

Dopo aver effettuato l'accesso come un altro utente, come posso eseguire i programmi della GUI?

thufir@doge:~$ 
thufir@doge:~$ sudo -u hawat -i
hawat@doge:~$ 
hawat@doge:~$ whoami
hawat
hawat@doge:~$ 
hawat@doge:~$ pwd
/home/hawat
hawat@doge:~$ 
hawat@doge:~$ echo $HOME
/home/hawat
hawat@doge:~$ 
hawat@doge:~$ firefox
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
hawat@doge:~$ 

Risposte:


13

export DISPLAY=:0ha funzionato per me. Assicurati di eseguire il comando sul sistema di connessione, non sul sistema a cui ti stai connettendo!


2
Sulla macchina che stavo usando per connettermi, non sulla macchina a cui ti stai connettendo.
user2938093

ahhh, questo è sulla stessa scatola. conti diff.
Giovedì

1
Non ha avuto alcun effetto sul mio computer
ComputerScientist il

non funziona per me. Non so perché mi stia succedendo questo.
Chan Kim,

6

Questa risposta funziona su Ubuntu 16.04 e Mir (con lievi adattamenti):

Esegui il comando x come altro utente usando xauth

Wrapper bash script:

Per comodità, ho creato uno script bash wrapper , che potresti voler scaricare /usr/local/bin/xsudoe contrassegnare eseguibile ( chmod +x /usr/local/bin/xsudo).

Quindi esegui semplicemente:

xsudo hawat firefox

Potenziali alternative:

  • Come alternativa molto più semplice, potresti esaminare pam_xauth( vedi questa risposta ) Tuttavia, per qualche motivo, ciò non funziona per me. (Ottengo ancora l'errore su Firefox che non è in grado di connettersi al display su: 0)
  • In un sacco di forum si potrebbe vedere il comando xhost +local:o simili, che farà fare gksudo -u hawat firefoxil lavoro senza alcun script wrapper. Tuttavia, tieni presente che ciò apre una falla nella sicurezza : qualsiasi utente attivo sul tuo host locale sarà in grado di accedere a tastiera, mouse, schermo ecc.
  • C'era sux , che è stato sospeso per qualche motivo - potresti comunque essere in grado di scaricarlo e usarlo. Per quanto ne so, ha fatto qualcosa di simile alla mia sceneggiatura solo molto di più. Purtroppo non sono riuscito a scoprirlo, perché questo non viene più mantenuto. (Forse perché ora dovremmo usare pam_xauth invece - la prima alternativa)

3

Dopo aver trascorso troppo tempo su questo, ho scoperto che con Gnome su Ubuntu 16.04, il valore corretto è DISPLAY=:1, non DISPLAY=:0come è stato da tempo immemorabile.


1

export DISPLAY =: 0 funziona bene ma questa è una soluzione temporanea poiché è necessario digitarla ogni volta che si apre il terminale.

Soluzione permanente: il problema potrebbe essere dovuto alla variabile env_keep in / etc / sudoers. Aggiungi la seguente riga alla fine di / etc / sudoers usando gedit o usando sudo visudo

Valori predefiniti env_keep + = "DISPLAY"

Nota: tieni presente di utilizzare sempre "+ =" durante l'aggiunta a env_keep. Nel caso in cui vi siano altri env_keep con "=", modificali in "+ =" perché l'utilizzo di "=" sostituirà altri valori.


Cordiali saluti: tieni presente che non dovresti modificare direttamente il file sudoers, ma utilizzando il visudowrapper, che fornisce alcuni controlli di integrità prima di scrivere un nuovo file sudoers.
Gabriel Fair,
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.