要するに、consolekitはユーザーセッション(つまり、ユーザーがログインしている場所)を追跡するサービスです。ログアウトせずにユーザーを切り替えることができます(1人のユーザーがアクティブな状態で、多くのユーザーが同じハードウェアに同時にログインできます)。また、セッションが「ローカル」かどうか、つまりユーザーがハードウェアに直接アクセスできるかどうか(リモートアクセスよりも安全であると考えられる場合)を確認するためにも使用されます。ConsoleKitドキュメント。
PolicyKitを使用すると、デスクトップ環境で機能を微調整できます。従来、特権ユーザー(root)のみがネットワークの構成を許可されていました。ただし、サーバー環境では、ラップトップのホットスポットへの接続を許可しないなど、制限が厳しすぎるというのは合理的な仮定です。ただし、この人に完全な権限を与えたくない場合(プログラムのインストールなど)または一部の人のオプションを制限したい場合があります(たとえば、子供のラップトップでは、ペアレンタルフィルターを使用できる「信頼できる」ネットワークのみを使用できます)。私が覚えている限り、それは次のように機能します:
- アクションに関するメッセージをdbus経由でデーモンに送信するプログラム
- デーモンはPolicyKitライブラリ/構成(実際にはPolicyKitデーモン)を使用して、ユーザーがアクションを実行できるかどうかを判断します。特定の条件(パスワードの入力やハードウェアアクセスなど)を満たす必要がある場合があります。
- デーモンはそれに応じてアクションを実行します(認証エラーを返すか、アクションを実行します)
PolicyKitドキュメント。
EDITは現在ConsoleKitは、主に置き換えられlogindの一部であり、systemdにスタンドアロンバージョンがあるが、elogind。