今天我用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?)