今天,我用systemctl输入服务关闭/启动过程的密码后,想将其设置为5-10分钟不请求权限。这就是为什么当我进入策略设置时,我看到它已经设置为 auth_admin_keep。
<action id="org.freedesktop.systemd1.manage-units">
<description gettext-domain="systemd">Manage system services or other units</description>
<message gettext-domain="systemd">Authentication is required to manage system services or other units.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
为了确保 Polkit 正常工作,我进入 pkexec 的策略设置并进行了如下新设置
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
奇怪的是,在我输入密码后,pkexec 记住了我的许可,但 systemctl 不记得了。
为什么会这样?我怎样才能让 systemctl 记住我的许可?
答案1
Debian 11 / Gnome 3.38 上的行为相同。keep
的部分并不auth_admin_keep
总是有效。
我认为所有操作都是一样的org.gnome
(我测试了org.gnome.controlcenter.datetime.policy
和org.gnome.controlcenter.user-ccounts.policy
)。
注意:Suse 有auth_admin_keep_session
和auth_admin_keep_always
,但它们在 Debian 中不起作用(https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-security-policykit.html)
我建议您Arch Linux
从帖子标题中删除,因为它也涉及 Debian,可能还涉及其他一些发行版(Ubuntu ?)