Show Table of Contents
第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 は /etc/polkit-1/rules.d および /usr/share/polkit-1/rules.d ディレクトリーから .rules ファイルを辞書式順序で読み取ります。2 つのファイルに同一の名前が付けられる場合、/etc のファイルが /usr のファイルの前に処理されます。さらに、既存ルールは /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules ファイルによって適用されます。したがって、それらのルールは 49-polkit-pkla-compat の前に来る名前を持つ /usr または /etc のいずれかの .rules ファイルによって辞書式順序で上書きされる可能性があります。古いルールが上書きされないようにする最も簡単な方法は、その他すべての .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 ページです。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.