Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第4章 PolicyKit

PolicyKit ユーティリティーは、特権プログラム( メカニズムとも呼ばれます)が使用する承認 API を提供するフレームワークで、非特権プログラム(サブジェクト とも呼ばれます)にサービスを提供し ます。以下は、PolicyKit の変更またはそのシステム名 polkit に関する詳細です。

4.1. ポリシー設定

新機能に関連して、認証ルールは JavaScript .rules ファイルで定義されるようになりました。これは、同じファイルがルールと管理者ステータスの両方を定義するために使用されることを意味します。以前は、この情報は *. pkla と *.conf の 2 つの異なるファイルに保存されていました。これは、キー/値のペアを使用して追加のローカル認証を定義していました。
これらの新しい .rules ファイルは 2 つの場所に保存されます。ローカルのカスタマイズ用の polkit ルールは /etc/polkit-1/rules.d/ ディレクトリーに保存されますが、サードパーティーのパッケージは /usr/share/polkit-1/rules.d/ に保存されます。
既存の .conf および .pkla 設定ファイルは保持され、.rules ファイルとともに存在します。polkit は、互換性の問題とともに Red Hat Enterprise Linux 7 用にアップグレードされました。
ルールの優先におけるロジックが変更されました。polkitd は、.rules ファイルを辞書式順序で、/etc/polkit-1/rules.d および / usr/share/polkit-1/rules.d ディレクトリーから読み取りするようになりました。2 つのファイルの名前が同一である場合、/etc 内のファイルは /usr のファイルよりも先に処理されます。さらに、既存のルールは /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules ファイルによって適用されます。したがって、それらは /usr または /etc のいずれかで .rules ファイルで上書きでき、辞書的な順序で 49-polkit-pkla-compat の前に来る名前になります。古いルールが上書きされないようにする最も簡単な方法は、その他すべての .rules ファイルの名前を 49 よりも大きな数字で始めることです。
以下は、.rules ファイルの例です。これは、システムデバイスに storage グループ用のファイルシステムをマウントすることを許可するルールを作成します。ルールは /etc/polkit-1/rules.d/10-enable-mount.rules ファイルに保存されます。

例4.1 システムデバイスへのファイルシステムのマウントの許可

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
        subject.isInGroup("storage")) {
        return polkit.Result.YES;
    }
});

詳細は、以下を参照してください。

  • polkit(8)- JavaScript ルールおよび優先順位ルールの説明の man ページです。
  • pkla-admin-identities(8)および pkla-check-authorization(8)- .conf および .pkla ファイル形式をそれぞれドキュメントの man ページです。