web-dev-qa-db-ja.com

pkexec-pkexecポリシーを作成するときにauth_admin_keepのカスタムタイムアウトを設定するにはどうすればよいですか?

Freedesktop.orgでDavidZがpkexec用に書いたリファレンスマニュアルを読んでいたところです。

https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html

そして

https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html

マニュアルによると、auth_admin_keepオプションを使用すると、パスワードは5〜15分間しか保持されないため、カスタムタイムアウトを設定する場合は、カスタムルールを作成する必要があります。

タイムアウトのカスタムルールを作成する方法を知っている人はいますか?私はマニュアルに従おうとしましたが、私はコーダーではなく、シンサックスを理解することができませんでした。タイムアウト関連のシンサックスについての言及はありませんでした。

3
thebunnyrules

残念ながら、タイムアウトはPolicyKitアップストリームソースで5分としてハードコードされているようです ファイルsrc/polkitbackend/polkitbackendinteractiveauthority.c

3231-3236行目には次のように書かれています。

/* TODO: right now the time the temporary authorization is kept is hard-coded - we
 *       could make it a propery on the PolkitBackendInteractiveAuthority class (so
 *       the local authority could read it from a config file) or a vfunc
 *       (so the local authority could read it from an annotation on the action).
 */
 expiration_seconds = 5 * 60;

そのため、タイムアウトはソースコード内で5分に設定されており、現在、PolicyKitの適切な部分を再コンパイルせずにタイムアウトを変更するための規定はありません。

一方、 OpenSuSE Leap 15はこの機能を拡張したようです。 彼らは..._keepアクションを「要求プロセスの実行中に認証を記憶する」ことを意味するように再解釈したようです、そして..._keep_sessionおよび..._keep_alwaysアクションを追加して、それぞれ「この特定のログインセッション全体を記憶する」および「永久に記憶する」を意味します。

4
telcoM