pkexec - 在编写 pkexec 策略时如何为 auth_admin_keep 设置自定义超时

pkexec - 在编写 pkexec 策略时如何为 auth_admin_keep 设置自定义超时

我刚刚在 freedesktop.org 上阅读 David Z 为 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 分钟,如果我们想设置自定义超时,我们可以编写自定义规则。

有人知道我如何编写超时的自定义规则吗?我尝试按照手册进行操作,但我不是编码员,我无法理解 Syntax,也没有提到与超时相关的 Syntax。

答案1

不幸的是,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记住整个特定登录会话”和“永远记住”操作。

相关内容