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.