X11
如何在不重新啟動 X 的情況下為缺少它的顯示正確生成新的 .Xauthority 文件?
我因錯誤而刪除了我的
$HOME/.Xauthority
文件。我想在不重新啟動 X11 的情況下重新創建它。ATM 我已經用這個命令開始了一個新的 X11 會話startx -- :1
但我的 :0 顯示仍然沒有執行任何 X11 應用程序。我已經嘗試過這些命令
rm ~/.Xauthority touch ~/.Xauthority xauth add ${HOSTNAME}/unix:0 . $(xxd -l 16 -p /dev/urandom) xauth add ${HOSTNAME}/unix:1 . $(xxd -l 16 -p /dev/urandom) xauth add ${HOSTNAME}/unix:10 . $(xxd -l 16 -p /dev/urandom) xauth add ${HOSTNAME}/unix:12 . $(xxd -l 16 -p /dev/urandom) xauth add ${HOSTNAME}/unix:13 . $(xxd -l 16 -p /dev/urandom)
命令 xauth list 報告 ok
xauth 列表
myhost.mydomain/unix:0 MIT-MAGIC-COOKIE-1 blablabla myhost.mydomain/unix:1 MIT-MAGIC-COOKIE-1 blablabla myhost.mydomain/unix:10 MIT-MAGIC-COOKIE-1 blablabla myhost.mydomain/unix:12 MIT-MAGIC-COOKIE-1 blablabla myhost.mydomain/unix:13 MIT-MAGIC-COOKIE-1 blablabla
但..
xterm -display :0 Invalid MIT-MAGIC-COOKIE-1 keyxterm: Xt error: Can't open display: :0 xeyes -display :0 Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0
如何在不重新啟動的情況下生成良好的 Xauthority 並恢復我的“失去”:0 顯示?
編輯:我找到了一個偽解決方案。如果您將舊的 Xauthority 文件保存在某處,或者提醒正確的 cookie X11 顯示恢復工作,但如果我不提醒正確的 cookie 值?
您正在創建一個新 cookie 並告訴客戶使用這個新 cookie。但伺服器仍在使用自己的 cookie。在不知道 cookie 的情況下,您無法連接到伺服器以檢索 cookie。
您或許可以通過其他方式獲取cookie(畢竟它存在於伺服器程序的記憶體中)。這將取決於 X 伺服器。除了在程序的記憶體中搜尋之外,我不知道是否有其他方法可以使用 Xorg。
根據呼叫 X 伺服器的方式,cookie 可能位於仍然存在的文件中。檢查伺服器的命令行,例如
ps ww -C Xorg
如果有
-auth
參數,請檢查以它命名的文件是否仍然存在。例如,如果您看到Xorg … -auth /tmp/serverauth.abcdefgh
:xauth merge /tmp/serverauth.abcdefgh