他のユーザーのデスクトップからrootとしてグラフィカルプログラムを起動できますか?

他のユーザーのデスクトップからrootとしてグラフィカルプログラムを起動できますか?

私が知っておくべき他の質問は次のとおりです。

  • 非Xセッションで? (ルートがXにログインしていないことを意味します)

  • 複数の人がXにログインしている場合、誰がどの画面にいるかを自動的に検出し、プログラムでどの画面でアプリを実行する必要があるかを検出できますか?

  • ユーザーとしてアプリケーションを起動できますか? (わかりました。99.999%確実だと確信しています。)

  • グループXのユーザーがXにログインしているかどうかを検出できますか?

ベストアンサー1

ユーザーデスクトップでグラフィックプログラムを起動するには、ユーザーデスクトップが配置されているモニター(アドレス)と使用する認証クッキー(パスワード)の2つの項目を見つける必要があります。

次のコマンドは、ほとんどの unice にログインしたユーザーのローカル表示 (1 行に 1 つずつ) を一覧表示する必要があります。

who | awk -v user="$target_user" '$1 == user && $2 ~ "^:" {print $2}'

認証クッキーを見つけるのは少し難しいです。デフォルトのユーザーのCookieファイルを見つける必要があります。~/.Xauthority必要なのはクッキーを抽出するのではなく、クッキーファイルの場所だけです。これは多くのシステムで機能しますが、すべてではありません。特に、Gdm(Ubuntuのデフォルト)が最後に見たデフォルトの場所を使用しないため、ディスプレイマネージャと設定方法によって異なります。実際のX Cookieファイルを見つけるための移植可能な方法は思いません。調べる最も正確な方法は、Xプロセスのpidを見つけ、-authこのオプションの引数を見つけることです。別のアプローチは、Xサーバーで実行されているプロセスを見つけて、そのXAUTHORITY環境変数を取得することです。 Cookieファイルの検索に問題がある場合は、次を参照してください。リモートXモニターでウィンドウを開く(「モニターを開けません」理由)?

この 2 つの情報がある場合は、選択したディスプレイをDISPLAY環境変数に入れ、選択した X 権限 Cookie ファイルをXAUTHORITY環境変数に入れると、操作が完了します。プログラムがどのユーザーとして実行されるかは問題ではありません。su必要に応じてそれらを組み合わせることができます。

おすすめ記事