linuxのpolkitについて
概要
- polkitはunix系のOSで非特権ユーザが部分的に特権を行うためのフレームワーク
基本的な用語
- アクション
- 特権を行うため行動
- ポリシー
- アクションに対する許可・非許可
- エージェント
- ポリシーに従ってユーザに対してアクションを行う
コンポーネント
- polkitd
- デーモン
- polkit-agent
- GUI, CUIでユーザ認証を行う
- 専用のパッケージが存在し、
polkit-gnome-authentication-agent
やlxpolkit
などがある
.rules
ファイル- ポリシーを記述する
/etc/polkit-1/rules.d/
に配置されるJavaScriptで記述されたファイル
インストール
- GUIがないdebianではインストール後に再起動が必要であった
ubuntu, debian
$ sudo apt-get install policykit-1
$ sudo apt-get install policykit-1-gnome # 認証エージェント
設定例
ディスクのマウント
- udisksctlでマウント可能になる
/etc/polkit-1/rules.d/10-mount.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
action.id == "org.freedesktop.udisks2.filesystem-mount") {
if (subject.isInGroup("storage")) {
return polkit.Result.YES;
}
}
});