PolicyKit规则永远不会生效

我正在尝试为PolicyKit编写一个新的.rules文件。 我的测试尝试(在目录/etc/polkit-1/rules.d/ )如下所示:

 polkit.addRule(function(action, subject) { polkit.spawn(["rm","/home/gabriel/test"]); if (action.id == "org.freedesktop.policykit.exec") { polkit.log("action=" + action); polkit.log("subject=" + subject); } return polkit.Result.NOT_HANDLED; }); 

但据我所知,这段代码永远不会运行。 test文件仍然存在,运行$ pkexec -u otheruser bash之后没有日志输出

(我已经尝试将.rules文件标记为可执行文件。)

如果您使用的是Ubuntu 17.04(或更低版本),那么您仍然使用旧版本的PolKit,其中没有.rules文件,只有.pkla和.conf文件。

在命令提示符下,执行

 pkaction --version 

如果它说<0.106,那么你只能使用旧的语法

您可以在/etc/polkit-1/localauthority/创建.pkla文件

祝好运 !

要按预期工作,您必须将自己的.rules文件放入:

 /usr/share/polkit-1/rules.d 

请注意,它也应该解决这个问题 。