Mirへの接続に失敗しました:サーバーソケットへの接続に失敗しました:そのようなファイルまたはディレクトリはありません


18

別のユーザーとしてログインした後、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:~$ 

回答:


13

export DISPLAY=:0私のために働いた。接続しているシステムではなく、接続しているシステムでコマンドを実行してください。


2
接続先のマシンではなく、接続に使用していたマシン上。
user2938093

ああ、これは同じボックスにあります。diffアカウント。
-Thufir

1
コンピューターに影響がなかった
ComputerScientist

私のために働かない。これがなぜ私に起こっているのか分かりません。
チャンキム

6

この回答は、私のUbuntu 16.04とMirで動作します(わずかな変更が必要です):

xauthを使用して別のユーザーとしてxコマンドを実行します

ラッパーbashスクリプト:

便宜上、ラッパーbashスクリプトを作成しました。これをダウンロードし/usr/local/bin/xsudoて実行可能ファイルをマークすることもできます(chmod +x /usr/local/bin/xsudo)。

次に、単に実行します:

xsudo hawat firefox

潜在的な代替案:

  • はるかに簡単な代替手段として、あなたはpam_xauth(s。この答え)を調べるかもしれませんが、これは何らかの理由で私にとってはうまくいきません。(Firefoxが:0でディスプレイに接続できないというエラーが引き続き表示されます)
  • フォーラムの多くでは、コマンド表示される場合がありますxhost +local:類似または、します作るgksudo -u hawat firefox任意のラッパースクリプトなしで仕事を。ただし、これによりセキュリティの抜け穴が開くことに注意してください。ローカルホスト上のアクティブなユーザーは、キーボード、マウス、画面などにアクセスできます。
  • 以前はsuxがありましたが、何らかの理由で廃止されました-それでもダウンロードして使用できる場合があります。私が知る限り、それは私のスクリプトに似た何かをしました。残念ながら、なぜこれが維持されないのかわかりませんでした。(おそらく、代わりにpam_xauthを使用する必要があるためです-s。最初の選択肢)

3

これにあまりにも多くの時間を費やした後、Ubuntu 16.04のGnomeでは、正しい値が太古の昔からではDISPLAY=:1なくDISPLAY=:0、であることを発見しました。


1

export DISPLAY =:0は正常に機能しますが、これは一時的な解決策です。ターミナルを開くたびにこれを入力する必要があるためです。

永続的な解決策: 問題は、/ etc / sudoersのenv_keep変数が原因である可能性があります。geditまたはsudo visudoを使用して、/ etc / sudoersの最後に次の行を追加します

デフォルトenv_keep + = "DISPLAY"

注: env_keepに追加するときは 常に「+ =」を使用することに注意してください。場合と、他のenv_keepがある場合は、「=」に変更し、それらを「+ =」使用しているため「=」他の値を上書きします。


参考までに、sudoersファイルを直接編集するのではなく、visudoラッパーを使用することで、新しいsudoersファイルを書き込む前に健全性チェックを行うことに注意してください。
ガブリエルフェア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.