PolicyKit 规则永远不会生效

Kei*_*dax 14 policykit

我正在尝试.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/

  • Ubuntu 18.04 仍然带有 0.105!!!!天啊!!!! (6认同)
  • Ubuntu 20.04 仍然使用 0.105 (3认同)
  • ubuntu 19.04 `pkaction 版本 0.105`。新规则文件是用 JavaScript 编写的,不受支持。 (2认同)

Syl*_*eau 0

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

/usr/share/polkit-1/rules.d
Run Code Online (Sandbox Code Playgroud)

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

  • 目前`/usr/share/polkit-1/rules.d/10-udisks-personal.rules` (2认同)