sudoを使用すると、sudoのコンテキストで呼び出し側環境を保持またはリセットするかどうかについて、ユーザーごとおよびプログラムごとにポリシーを設定できます。env_resetポリシーはデフォルトで設定されています。
明示的に設定しない限り、pkexecを使用してグラフィカルアプリケーションを実行することはできません。これは単に環境リセットの結果であるため、これは明らかにsudoにも当てはまります。ただし、pkexecもsudoも、rootとして実行されている悪意のあるアプリケーションがディスプレイマネージャーまたはユーザーのX11-cookieファイルから必要なすべての情報を取得するのを防ぐことはできません。後者、またはその両方は、状況によっては非ルートアプリケーションによって実行される場合もあります。
須藤は、ユーザーの明示的なリストを必要としません。一般に、ユーザーグループの一覧表示、またはすべてのユーザーのアクセス許可の設定を行うこともできます。target_pwディレクティブを使用すると、これらのユーザーは、アプリケーションを実行するコンテキスト(rootなど)のユーザーの資格情報で認証できます。それとは別に、同様に伝統的なsu(su / gtksu / kdesu)プログラムを使用して、特別な構成なしでまったく同じことを行うことができます。
sudoも、ユーザーが指定された時間の間、認証されたままでいられるようにします。このオプションにはタイムアウトという名前が付けられ、グローバル、ユーザーごと、またはアプリケーションごとに構成できます。認証は、ttyごとに保持することも、ユーザーごとにグローバルに保持することもできます。
pkexecは、PROGRAMに渡された引数の検証を行わない場合がありますが、sudoには実際にこの機能があります。ただし、これは簡単に台無しにできますが、通常は行われません。
pkexecを使用してプログラムを実行する方法を少し調整することができます。アイコン、表示するテキスト、ローカリゼーションなどもあります。状況によっては、これは本当に気の利いたものになる可能性があります。悲しいことに、誰かがこの機能のために車輪を再発明する必要性を感じました。これはおそらく、グラフィカルなgtksudo / kdesuラッパーに入れるものです。
Policykitは、集中化された構成フレームワークにすぎません。残念ながら、きれいなものではありません。PKのXMLファイルは、アプリがネイティブにバイナリファイルを短く提供できるものよりもはるかに複雑です。そして、誰もバイナリを使用するのにそんなにお金がかからないでしょう...ああ、gconf ...気にしないでください。