MIT-MAGIC-COOKIE-1: GUI コマンドを root として実行できません。これを修正するにはどうすればいいですか?

MIT-MAGIC-COOKIE-1: GUI コマンドを root として実行できません。これを修正するにはどうすればいいですか?

私は PureOS GNU/Linux ディストリビューション (Debian/Ubuntu ベース) を使用しています。ディスプレイ マネージャーとして XDM をインストールしました。X セッションに root としてログインした後、バグが発生しました。非 root X セッションで root として GUI コマンドを実行できなくなりました。MIT-MAGIC-COOKIE-1 が間違っているというエラー メッセージが表示されました。これは .Xauthority ファイルまたは $XAUTHORITY 変数に関連しているようです。

インターネットのいくつかのフォーラムで、この問題に対するいくつかの緩和策を見ました。xhostさまざまな形式の引数を使用して非ルートとして実行する。ただし、これによりシステムの認証が無効になり、セキュリティの脆弱性が生じます。さらに、X セッションごとに実行する必要があります。実行するsudo -sE。ただし、これにより非ルート環境が保持されます。実行するsu-to-root -X -c [command] %U。うまくいきました。実行するssh -YXC [user]@[machine-name] [command]。うまくいきました。しかし、これらは元の問題を解決しない回避策です。

DISPLAY=:0 /usr/bin/xhost +local:動作しませんでした。 どちらもsu - root -c [command]。 どちらもtouch ~/.Xauthority; xauth generate $DISPLAY . trusted; xauth add ${HOST}$DISPLAY . $(xxd -l 16 -p /dev/urandom); xauth merge .Xauthority、エラーが発生しましたunable to rename authority file /var/lib/xdm/authdir/authfiles/, use /var/lib/xdm/authdir/authfiles/-n

少し調べた後 (x11vnc パッケージが役立ちました)、正しいマジック クッキーを含むファイルは であることがわかりました/var/lib/xdm/authdir/authfiles/A\:0-[whatever]。奇妙なことに、それを新しい .Xauthority ファイルにコピーしても、最初は機能しませんでしたが、2 回目では機能しました。そこで を作成しexport XAUTHORITY="/var/lib/xdm/authdir/authfiles/A:0-[whatever]"、これで問題は解決したようです。しかし、 を作成すると、機能しませんでした。しかし、最も奇妙なのは に完全なファイル パスが表示されるexport XAUTHORITY="/var/lib/xdm/authdir/authfiles/*"ことです。echo $XAUTHORITY

また、非ルート ユーザーから .Xauthority ファイルと $XAUTHORITY 変数の両方を消去し、デバイスを再起動して、このアカウントに副作用があるかどうかを確認しました。奇妙なことに、再起動前は、非ルート ユーザーは GUI コマンドを使わなくても実行できます。再起動後、非ルート ユーザーの $XAUTHORITY 変数は を指していました/tmp/.Xauth[whatever]

また、コンピューターを再起動するたびに、非ルート ユーザーが A:0-[何でも] ファイルと一致する新しいマジック クッキーを受け取ることがわかりました (16 進ダンプにより、一致する 16 進文字列が含まれていることが示されました)。

これによって、次のような一連の疑問が生じます。なぜルート ユーザーはシステムからランダムなマジック クッキーを受信しなくなったのでしょうか。これらのマジック クッキーを生成して配信するプロセスは何でしょうか。ルートが適切なクッキーを生成するためのコマンドはあるのでしょうか。

関連情報