Linux

如何找到和使用 root 的我_小號磷LAY_一個__D一世小號磷大號一種是一種ndDISPLAY and權威?出現錯誤:MIT-MAGIC-COOKIE 無效

  • July 21, 2017

以 ROOT遠端登錄時,我想在ROOT 的顯示器(而不是我的遠端顯示器)**上遠端執行我的 selenium 程序。**我不是在談論做ssh -X(可行),而是我有一個 nodejs 應用程序生成另一個使用 selenium 的 nodejs 應用程序,所有這些都是自動的,沒有任何使用者 ssh’ing。但是 selenium 需要使用某種顯示來渲染我需要的一些 jpg 文件。

我一直在研究很多問題,但我仍在為這個概念而苦苦掙扎……我一直在使用的主要資訊來源是:

以下是我的理解:

  • X 程序需要兩條資訊才能連接到 X 顯示器。

    • $DISPLAY
      • 通常:0:1
      • 當我親自去筆記型電腦並查看 root 的顯示(而不是遠端 ssh’ing)時,$DISPLAY設置為:0or :1
    • $XAUTHORITY
      • 要使用的 Magic Cookie 在~/.Xauthority和 環境變數中定義$XAUTHORITY
      • 當我親自去筆記型電腦(而不是遠端登錄)時,$XAUTHORITY設置為/tmp/xauth-0-_0(何時$DISPLAY=:0)或/tmp/xauth-0-_1(何時$DISPLAY=:1)。

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

嘗試

我已經嘗試了所有這些事情:

  1. 設置$DISPLAY$XAUTHORITY通過腳本
  • 我有一個生成 nodejs selenium 應用程序的腳本。在執行 selenium 應用程序之前,我首先在腳本中導出了這兩個變數:
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(伺服器版)x86_64

如果您只需要一個用於 selenium 的 X 顯示器,您還可以使用Xvfb(“virtual framebuffer X server”)啟動第二個獨立的 X 伺服器。這個 X 伺服器使用一塊記憶體作為不可見的幀緩衝區,並允許 selenium 假裝它連接到 X 伺服器。

有關詳細資訊,請參閱man Xvfb,尤其是。範例部分。您可以在未啟用授權的情況下啟動它,因此任何人都可以連接到它。

請注意,這將不允許 3D 加速 (OpenGL),這是完全不同的蠕蟲罐。

一般來說,試圖接管另一台顯示器,尤其root是已登錄的顯示器,是一個巨大的安全風險:連接到該顯示器的任何人都可以擷取按鍵(和密碼),以 root 身份執行命令等。這就是為什麼通常你可以’不要這樣做。

引用自:https://unix.stackexchange.com/questions/378338