polkit は、javascript で書かれたルールファイルを使って設定されます。
カスタム関数を作成して引数として渡しますpolkit.addRule()
。 polkit操作が実行されると、結果が返されるまで関数が順次呼び出されます。 (そうでない場合はデフォルト値を使用します。)
ルール関数は、名前action
とsubject
オブジェクトという2つのパラメータを使用して呼び出されます。
これを使用して、subject.isInGroup("wheel")
ユーザーが「wheel」グループに属しているかどうかをテストできます。
デフォルトでは、polkitはユーザーが「管理者」かどうかという概念を使用します。この概念の意味は、polkit.addAdminRule() を使用して多少奇妙な方法で変更できます。デフォルトはディストリビューションによって異なります。一部のディストリビューションでは、管理者は「wheel」グループに配置されます。他のディストリビューションでは、「sudo」グループは管理者と見なされます。
「wheel」または「sudo」グループをハードコードするのではなく、トピックがディストリビューションの管理者グループにあるかどうかをテストする移植可能な方法でpolkit.addRule()の関数を作成できますか?
ベストアンサー1
これは不可能です。
これは、polkitや他のセキュリティポリシーにとって非常に一般的なタイプのセキュリティポリシーではありません。多くの人がグループやポルケットのパスワードプロンプトを使用します。
私はPackageKitがこのタイプの戦略を使用していることがわかりました。 (管理者グループは、PackageKitをコンパイルするときにディストリビューションによって割り当てられているようです。)