web-dev-qa-db-ja.com

rootの$ DISPLAYと$ XAUTHORITYを見つけて使用するにはどうすればよいですか?エラーの取得:無効なMIT-MAGIC-COOKIE

ログインリモートルートとして、Seleniumプログラムをリモートで実行したいROOTのディスプレイ(私のリモートディスプレイではありません)。私はnotssh -X(これは機能します)を実行することについて話していますが、代わりに、あるnodejsアプリケーションがSeleniumを使用する別のnodejsアプリケーションを生成し、すべてユーザーがsshを実行する必要はありません。しかし、Seleniumは、必要なjpgファイルをレンダリングするために、ある種のディスプレイを使用する必要があります。

私が見ている質問はたくさんありますが、私はまだ概念に苦労しています...私が使用している主な情報源は次のとおりです。

これが私が理解していることです:

  • Xプログラムは、Xディスプレイに接続するために2つの情報を必要とします。
    • $DISPLAY
      • 通常は:0または:1です。
      • ラップトップに物理的に移動してルートのディスプレイを表示すると(リモートでSSH接続する代わりに)、$DISPLAY:0または:1に設定されます。
    • $XAUTHORITY
      • 使用するMagicCookieは、~/.Xauthorityと環境変数$XAUTHORITYで定義されています。
      • 物理的にラップトップにアクセスすると(リモートでSSH接続する代わりに)、$XAUTHORITY/tmp/xauth-0-_0$DISPLAY=:0の場合)または/tmp/xauth-0-_1$DISPLAY=:1の場合)に設定されます。

=====================

試み

私はこれらすべてのことを試しました:

  1. スクリプトを使用して$DISPLAY$XAUTHORITYを設定する

    • NodejsSeleniumアプリケーションを生成するスクリプトがあります。 Seleniumアプリケーションを実行する前に、まずスクリプトでこれら2つの変数をエクスポートしました。

      if [ -e "/tmp/xauth-0-_0" ]
      then
        export DISPLAY=":0"
        export XAUTHORITY="/tmp/xauth-0-_0"
      Elif [ -e "/tmp/xauth-0-_1" ]
      then
        export DISPLAY=":1"
        export XAUTHORITY="/tmp/xauth-0-_1"
      fi
      
      #Then run the nodejs Selenium app
      node index.js
      
    • このメソッドを使用すると発生するエラーはInvalid MIT-MAGIC-COOKIE-1 key[10332:10332:0713/112221.602744:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: :0.0です。

  2. X11Forwarding yes/etc/ssh/sshd_configを設定しますが、これはssh -Xにのみ適用されると思います
  3. Chromeを開く他の試みは次のとおりです。

    [root@localhost test]# xauth list
    localhost:0  MIT-MAGIC-COOKIE-1  ....
    
    [root@localhost test]# export XAUTHORITY=/tmp/xauth-0-_0
    
    [root@localhost test]# export DISPLAY=localhost:0
    [root@localhost test]# google-chrome
    [10673:10673:0713/141603.418401:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: localhost:0
    
    [root@localhost test]# export DISPLAY=127.0.0.1:0
    [root@localhost test]# google-chrome
    [10859:10859:0713/141617.346302:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: 127.0.0.1:0
    

Fedora 23(Server Edition)x86_64を使用しています

1
Katie

私はこれは不可能であるという結論に達しました:(

これが機能するためには、いつかどこかでユーザーsshを使用する必要があります。

ユーザーがいなければ、rootの表示を引き継ぐことはできません。

0
Katie