如何解决尽管有足够的规则,Policy Kit 不允许重新启动服务
作为 nagios 用户,我无法执行 systemctl。将其跟踪到 pkexec,我得到:
-sh-4.2$ pkexec systemctl reload nagios
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/systemctl' as the super user
然而,我有一个非常非常宽松的 polkit 规则(它不是一个生产系统)
polkit.addRule(function(action,subject) {
if (action.id == "org.freedesktop.systemd1.manage-units") {
var verb = action.lookup("verb");
if (verb == "start" || verb == "stop" || verb == "restart" || verb == "reload") {
return polkit.Result.YES;
}
}
});
我在重新启动 polkit.service 时仔细检查它是否已编译 有什么问题?
OS : RHEL7
Sytemd version 219
PolKit version : 0.112
谢谢,
泽维尔
解决方法
似乎组合 Sytemd 219 + PolKit 0.112 不支持“动词”语句。向规则添加了一些日志记录,向我展示了这一点:
/etc/polkit-1/rules.d/01-nagios.rules:7: verb=undefined
看起来像是 Polkit 0.112 中的一个错误。
泽维尔
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。