我正在尝试.rules
为 PolicyKit编写一个新文件。我的测试尝试(在目录中/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;
});
Run Code Online (Sandbox Code Playgroud)
但据我所知,这段代码永远不会运行。该test
文件仍然存在,并运行像后有没有日志输出$ pkexec -u otheruser bash
(我尝试将.rules
文件标记为可执行文件。)
小智 19
如果您使用的是Ubuntu 19.04(或更低版本),那么您仍在使用旧版本的 PolKit,其中没有 .rules 文件,只有 .pkla 和 .conf 文件。
在命令提示符下,执行:
pkaction --version
Run Code Online (Sandbox Code Playgroud)
如果它说 < 0.106,那么您只能使用旧语法。
您可以创建一个 .pkla 文件 /etc/polkit-1/localauthority/
要按预期工作,您必须将自己的.rules
文件放入:
/usr/share/polkit-1/rules.d
Run Code Online (Sandbox Code Playgroud)
请注意,它也应该解决这个问题。