デーモンとして実行され、実行中の X セッションを監視するアプリケーションを作成しようとしています。現在、X セキュリティ モデルに関するドキュメントを探すのに苦労しています。具体的には、実行中の X ディスプレイにデーモン プロセスから接続しようとしています。XOpenDisplay(dispName)
私のプロセスにはこのディスプレイに接続する権限がないため、呼び出し
が機能しません。少し調べたところ、xauth で何かをする必要があるようです。
私のテスト環境では、X サーバーは次のように起動されます。
/usr/bin/X -br -nolisten tcp :0 vt7 -auth /var/run/xauth/A:0-QBEVDj
このファイルには、次のような 1 つのエントリが含まれています。
#ffff##: MIT-MAGIC-COOKIE-1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
~/.Xauthority
同じ16進キーでエントリを追加することで、Xサーバーに接続できます。ただし、Xサーバーが使用している認証ファイルをプログラムで見つける必要があるため(その場所は、ディストリビューションごとに、おそらくブートごとに変わると思います)、クエリを実行してから、新しい認証ファイル。プロセスがデーモンとして実行されている場合、ホーム ディレクトリがない可能性があるため、新しいエントリをどこに書き込むかを知るにはどうすればよいでしょうか?
理想的には、私が探しているのは、xauth Cookie を に含める必要性を回避する方法~/.Xauthority
、または Cookie が何であるかを知る方法です。これはありそうもないことだと思います。簡単にバイパスできるセキュリティ モデルに何の意味があるのでしょうか。しかし、このリストの誰かがいくつかの良いアイデアを持っていることを願っています. プロセスに特権があり、ローカル マシン上の任意のディスプレイへのアクセスを自動的に許可する必要があることを指定する方法はありますか?