小编Luk*_*uke的帖子

以非特权用户身份运行 nmcli

我写了一个 Python 程序,通过网络管理器 dbus 接口切换 WiFi 连接,这(我相信)基本上等同于 nmcli 命令行工具。该脚本(和 nmcli)在我的桌面 Ubuntu 上由非特权用户运行时正常工作。我试图弄清楚如何设置允许的权限。

我问是因为相同的命令在 Raspbian 上不起作用,所以我想找出权限不同的地方。在 Raspbian 上,当我以非特权用户身份运行脚本时,当我尝试通过 dbus 读取 NetworkManager 数据时出现此错误:

dbus.exceptions.DBusException: org.freedesktop.NetworkManager.Settings.PermissionDenied: No session found for uid 1000 (unknown)
Run Code Online (Sandbox Code Playgroud)

并且,等效地,当我nmcli c在 Raspbian 上以非特权用户身份运行时,它不会显示应有的连接。两者都可以与sudo.

我到目前为止的尝试

我发现一些旧的 Ubuntu 帖子表明涉及 PolicyKit 包,我应该创建一个/etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla包含以下内容的文件:

[Enable NetworkManager]
Identity=unix-group:netdev
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情。(注意:所有其他/etc/polkit-1/localauthority子文件夹都是空的,用户是 netdev 组的一部分。我不知道还有什么要检查的。)

我对 dbus 和 NetworkManager 很陌生,所以我很感激任何帮助了解如何授予发送 dbus 信号的权限,以及如何解决缺少 NetworkManager 权限的问题。

permissions network-manager dbus raspberrypi

7
推荐指数
1
解决办法
2927
查看次数

标签 统计

dbus ×1

network-manager ×1

permissions ×1

raspberrypi ×1