微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尽管有足够的规则,Policy Kit 不允许重新启动服务

如何解决尽管有足够的规则,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 举报,一经查实,本站将立刻删除。