我想在我的一个以非 root 用户身份运行的应用程序中使用 DBus 启动 systemd 服务myuser
。为此,我需要设置一个使用 polkit 0.105 的 PolicyKit 并将以下 .pkla 文件添加到/etc/polkit-1/localauthority/50-local.d
Identity=unix-user:myuser
Action=org.freedesktop.systemd1.manage-unit-files;org.freedesktop.systemd1.manage-units
ResultActive=yes
ResultInactive=yes
然而,这在某种程度上并没有帮助它,因为当它按启动时的工作方式Permission denied
运行时,我仍然从 DBus 收到错误。myuser
root
到目前为止我对 polkit 的理解实际上就是设置它的方法。
同样令我惊讶的是,执行时pkaction
它什么也没返回。
是否polkit
需要进一步设置?我刚刚通过apt-get
ubunutu 19.04 盒子安装了它。
答案1
在 org.freedesktop.systemd1.policy 中:
action id="org.freedesktop.systemd1.manage-units"
action id="org.freedesktop.systemd1.manage-unit-files"
尝试更换线路
<allow_active>auth_admin_keep</allow_active>
经过 :
<allow_active>yes</allow_active>