正确的方法来禁用CentOS 7上的polkit.service

为什么?

我的服务是通过正确的单元文件或init脚本启动的。 我不需要普通用户在我的服务器上做任何特殊的事情。 我专门寻找一种方法来完全closurespolkit,而不必在重新启动其他服务时自行启动它。

我预见到一个问题也会在我们的PCI环境中向审计人员解释。 我们必须描述每个服务的目的。 在PCI环境中,我们没有合法的polkit使用案例。

附加说明:我没有安装polkit。 这些服务器的安装量非常小, 大约为670MB。这是一个系统更新,似乎安装了polkit,规范显然对所有systemd托pipe服务具有依赖性。 一旦安装完成,我必须重build机器才能将其删除,就像在安装之后试图删除nss一样。 我担心的是,如果我强制执行unallall,那么可能会留下将系统假定在那里的文件。

我曾经尝试过:

创build/etc/polkit-1/rules.d/99-deny-all.rules

 polkit.addRule(function(action, subject) { return polkit.Result.YES; }); 

然后

 systemctl daemon-reload && systemctl daemon-reexec 

这样做什么都不做, /usr/lib/polkit-1/polkitd --no-debug当systemd下的其他服务重新启动时, /usr/lib/polkit-1/polkitd --no-debug继续启动。

亚历山大提到,重新启动polkit将设置应用到polkit本身,这是好的,但我正在寻找一种方法来告诉polkit不启动,不会破坏其他服务。

[更新2]这实际上可能会阻止某些服务正确重新启动。


屏蔽或禁用服务:

这会导致其他服务在启动和closures时挂起,等待polkit。


编辑/usr/share/dbus-1/sstem-services/org.freedesktop.PolicyKit1.service

 [snip] Exec=/bin/false [snip] 

然后

 systemctl daemon-reload && systemctl daemon-reexec 

这样做什么都不做, /usr/lib/polkit-1/polkitd --no-debug当systemd下的其他服务重新启动时, /usr/lib/polkit-1/polkitd --no-debug继续启动。


我已经阅读了几页的手册页。 这可能是一个很简单的东西,我错过了。 我的首选是在systemd软件包更新后仍然存在的方法。

我正在寻找的最终目标是在其他守护进程重新启动时(例如未绑定,绑定,dhcp等)polkit.service不启动。

将规则添加到/etc/polkit-1/rules.d/99-deny-all.rules您应该通过systemctl restart polkit重新启动polkit服务。 这个systemctl在执行任何来自非特权用户的请求之后。