Mir'e bağlanılamadı: Sunucu soketine bağlanılamadı: Böyle bir dosya veya dizin yok


18

Başka bir kullanıcı olarak oturum açtıktan sonra GUI programlarını nasıl çalıştırabilirim?

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:~$ 

Yanıtlar:


13

export DISPLAY=:0benim için çalıştı. Komutu, bağlandığınız sistemde değil, bağlantı sisteminde uyguladığınızdan emin olun!


2
Bağlanmak için kullandığınız makinede değil, bağlanmak için kullandığım makinede.
— user2938093

ahhh, bu aynı kutuda. fark hesapları.
— Thufir


benim için çalışmıyor. Bunun neden başıma geldiğini bilmiyorum.
— Chan Kim

6

Bu cevap benim Ubuntu 16.04 ve Mir (hafif uyarlamalar ile) üzerinde çalışır:

Xauth kullanarak x komutunu başka bir kullanıcı olarak çalıştırın

Sarıcı bash betiği:

Kolaylık sağlamak için, yürütülebilir ( ) indirmek ve işaretlemek isteyebileceğiniz bir sarıcı bash betiği oluşturdum ./usr/local/bin/xsudochmod +x /usr/local/bin/xsudo

Sonra sadece çalıştırın:

xsudo hawat firefox

Potansiyel Alternatifler:

  • Çok daha basit bir alternatif olarak, bu cevaba bakabilirsiniz pam_xauth(ama bu benim için bir sebepten dolayı işe yaramıyor). (Hala firefox'un ekrana şu adresten bağlanamamasıyla ilgili hatayı alıyorum: 0)
  • Forumlarda bir sürü size komutu görebilirsiniz xhost +local:benzer veya, olacaktır yapmak gksudo -u hawat firefoxherhangi sarıcı komut dosyası olmadan çalışmalarını. Ancak bunun bir güvenlik boşluğu açtığını unutmayın: Yerel ana makinenizdeki tüm aktif kullanıcılar klavyenize, farenize, ekranınıza vb. Erişebilir.
  • Bir zamanlar bırakılmış olan sux vardı - yine de indirip kullanabilirsiniz. Anlayabildiğim kadarıyla, senaryomuza benzer bir şey daha yaptı. Maalesef bunun neden devam ettiğini bulamadım. (Belki de şimdi pam_xauth kullanmalıyız çünkü ilk alternatif)

3

Bunun üzerinde çok fazla zaman geçirdikten sonra Ubuntu 16.04 üzerinde Gnome ile doğru değerin, eskiden beri olduğu DISPLAY=:1gibi olmadığını keşfettim DISPLAY=:0.


1

export DISPLAY =: 0 iyi çalışıyor, ancak terminali her açtığınızda bunu yazmanız gerektiğinden bu geçici bir çözümdür.

Kalıcı Çözüm: Sorun, / etc / sudoers içindeki env_keep değişkeninden kaynaklanıyor olabilir. / Etc / sudoers sonuna gedit veya sudo visudo kullanarak aşağıdaki satırı ekleyin

Varsayılanlar env_keep + = "DISPLAY"

Not: env_keep öğesine eklerken daima "+ =" ifadesini kullanmayı unutmayın. Durumda olan başka env_keep varsa "=" Değişikliğin onları "+ =" kullanılarak çünkü "=" diğer değerleri geçersiz kılar.


Bilginize: sudoers dosyasını doğrudan düzenlemeniz gerekmediğini, ancak visudoyeni bir sudoers dosyası yazmadan önce bazı akıl sağlığı kontrolleri sağlayan sarıcıyı kullanmanız gerektiğini unutmayın.
— Gabriel Fuarı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.