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.