Xforwarding 不允許切換用戶

Xforwarding 不允許切換用戶

我透過 ssh 連接到遠端計算機,並且 xforwarding 工作正常...但是一旦我“sudo su -”或“sudo su user2”,它就不再 Xforwards 任何給我錯誤的東西:

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0

有任何想法嗎?

謝謝

答案1

  1. 在您的用戶端中啟用 X-11 轉發
  2. 以普通用戶身分登入
  3. echo $DISPLAY取得關聯的顯示
  4. xauth list,找到與 #3 中找到的內容相對應的顯示編號並複製它
  5. 須藤到 rootxauth add <paste in what you copied from #4>
  6. 現在您可以以 root 身分執行命令,並且能夠設定 X11 轉送連接

答案2

在您之前sudo,請執行以下操作:

$ xauth extract /tmp/xauthstuff $DISPLAY

之後sudo,執行以下操作:

# xauth merge /tmp/xauthstuff

這對你有用嗎?

PS記得rm /tmp/xauthstuff事後

答案3

我無權存取 root 帳戶來執行上述任何操作,因此這是我使用的解決方法。

首先,像平常一樣透過 ssh 連接到您的帳戶並測試一切是否正常。

ssh -Y <you>@<your_server>

我通常只是啟動 XTerm 來確保連線。如果一切順利,請複製主目錄中的 .XAuthority 檔案<you>並將其放入公共目錄中。

cp ~/.Xauthority /tmp/tempXAuth

確保對公共目錄中的該檔案執行 chmod 777 操作,以便 sudo 帳戶可以在後續步驟中使用它。

chmod 777 /tmp/tempXAuth

現在 sudo 到您需要執行工作的用戶

sudo su - <other_user>

完成後<other_user>,備份現有的 .Xauthority,然後複製「好的」檔案。

cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority

您應該能夠運行任何 X 程式並讓它們通過您當前的 XServer 會話進行身份驗證。

答案4

作為您通常登入的用戶,輸入:

cd

sudo cp .Xauthority /root/

然後你可以使用以下命令切換到root:

sudo su

相關內容