调试 PolicyKit 规则?

调试 PolicyKit 规则?

我遇到了一个看似简单但却让我抓狂的问题。

我已经全新安装了 Kubuntu 20.04。机器本地一切运行正常,但我的主要用例是通过 xrdp 远程桌面运行。我之前在很多台机器上都做过很多次。

在这种情况下,我得到了 org.freedesktop.packagekit.system-sources-refresh 的非常常见的弹出窗口,但仅通过 RDP 运行。

我做的第一件事是在 /etc/polkit-1/localauthority/50-local.d 中创建一个 46-allow-update-repo.pkla 文件,其内容如下:

[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes 

这对行为没有影响。

为了解决这个问题,我尝试使用蛮力,在 /etc/polkit-1/rules.d/49-allow-rdp-system-refresh.rules 中创建了一条自定义规则,内容如下。请注意,这只是为了排除故障;我不想以这种方式运行系统:

polkit.addRule(function(action, subject) {
    {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);

        return polkit.Result.YES;
    }
});

这也不起作用。我还检查了 /var/log/auth.log 文件,没有看到上述规则的日志行。我在日志文件中看到的似乎与此问题相关的是以下行:

Jan 13 17:11:24 ***** PackageKit: uid 1000 is trying to obtain org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
Jan 13 17:11:24 ***** polkitd(authority=local): Operator of unix-session:c1 FAILED to authenticate to gain authorization for action org.freedesktop.packagekit.system-sources-refresh for system-bus-name::1.77 [/usr/lib/x86_64-linux-gnu/libexec/DiscoverNotifier] (owned by unix-user:wadeh)
Jan 13 17:11:24 ***** PackageKit: uid 1000 failed to obtain auth

当我在本地运行而不是通过 RDP 运行时,日志如下所示:

Jan 13 17:13:07 ***** PackageKit: uid 1000 is trying to obtain org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
Jan 13 17:13:07 ***** PackageKit: uid 1000 obtained auth for org.freedesktop.packagekit.system-sources-refresh

此时,我有点不知所措。好像 polkit 没有看到我的更改。请注意,每次更改其中一个文件后我都会重新启动系统,只是为了确保所有程序都能启动并执行更改。

我今天安装了所有内容,使用的是昨天从 LTS 分支下载的 ISO。版本号如下:

KDE Plasma 版本:5.18.5 KDE Frameworks 版本:5.68.0 Qt 版本:5.12.8 内核版本:5.11.0-46-generic 操作系统类型:64 位

XRDP 版本为 0.9.12

相关内容