Xを再起動せずに、このファイルが見つからないモニター用に新しい.Xauthorityファイルを正しく生成するにはどうすればよいですか?

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 コマンドは正常を報告します。

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値を思い出せない場合はどうなりますか?

答え1

新しいCookieを作成し、クライアントにこの新しいCookieを使用するように指示します。しかし、サーバーはまだ独自のクッキーを使用しています。 Cookieがわからない場合は、サーバーにアクセスしてCookieを検索できません。

別の方法でクッキーを取得することもできます(最終的にはサーバープロセスのメモリに常駐します)。これはXサーバーによって異なります。プロセスのメモリを検索することに加えて、Xorgを使用してこれを達成する他の方法があるかどうかわかりません。

Xサーバーの呼び出し方法によっては、Cookieがまだ存在するファイルに存在する可能性があります。サーバーのコマンドラインを確認してください。

ps ww -C Xorg

引数が存在する場合は、-authその引数の名前が付けられたファイルがまだ存在することを確認してください。たとえば、次のような場合がありますXorg … -auth /tmp/serverauth.abcdefgh

xauth merge /tmp/serverauth.abcdefgh

関連情報