第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 ページです。