是否可以通过 nmcli 命令(无需 sudo)添加连接?

是否可以通过 nmcli 命令(无需 sudo)添加连接?

我正在使用 lubuntu 22.04 发行版。我需要以没有权限的用户身份执行以下命令root

> nmcli c add ifname enp3s0 type ethernet con-name 'connection-test'

上述命令的输出如下:

Error: Failed to add 'connection-test' connection: Insufficient privileges

我已按照建议将用户添加到组netdev(使用命令)sudo adduser <username> netdev这个帖子,但问题并没有解决。帖子里报道了这样一句话:

在 Debian 上,“netdev”组获得使用网络管理器的权限。在 Ubuntu 上,网络管理器访问权限是通过系统控制台获得的,因此 gnome-system-tools 中此条目的名称具有误导性。

“netdev”组可以管理wicd和wpasupplicant。

“netdev”组可以使用 DBus 设置 avahi 主机名。

“netdev”组可以管理蓝牙设备。

这是否意味着在 Ubuntu 上该组的名称netdev不同?

非 root 用户是否可以不执行该nmcli c add命令sudo


这篇其他帖子处理同一主题并建议创建一个以 root 权限执行的服务,从而创建连接NetworkManager

答案1

接口文件是 ifupdown 的一部分,与 不同NetworkManager
NetworkManager它是 freedesktop 的一部分,但nmcli其权限来自 polkit。

下面我将展示这个文件:/etc/polkit-1/localauthority/90-mandatory.d/99-network.pkla;它授予用户netdev访问的权限NetworkManager。这是文件的内容:

[Allow netdev users to modify all network states and settings]
Identity=unix-group:netdev
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

添加上述文件后,执行命令nmcli general permissions会显示普通用户拥有所有权限为yes:

$ nmcli general permissions
PERMISSION                                                        VALUE 
org.freedesktop.NetworkManager.checkpoint-rollback                yes   
org.freedesktop.NetworkManager.enable-disable-connectivity-check  yes   
org.freedesktop.NetworkManager.enable-disable-network             yes   
org.freedesktop.NetworkManager.enable-disable-statistics          yes   
org.freedesktop.NetworkManager.enable-disable-wifi                yes   
org.freedesktop.NetworkManager.enable-disable-wimax               yes   
org.freedesktop.NetworkManager.enable-disable-wwan                yes   
org.freedesktop.NetworkManager.network-control                    yes   
org.freedesktop.NetworkManager.reload                             yes   
org.freedesktop.NetworkManager.settings.modify.global-dns         yes   
org.freedesktop.NetworkManager.settings.modify.hostname           yes   
org.freedesktop.NetworkManager.settings.modify.own                yes   
org.freedesktop.NetworkManager.settings.modify.system             yes   
org.freedesktop.NetworkManager.sleep-wake                         yes   
org.freedesktop.NetworkManager.wifi.scan                          yes   
org.freedesktop.NetworkManager.wifi.share.open                    yes   
org.freedesktop.NetworkManager.wifi.share.protected               yes 

关于主题 polkit 的原始答案可以在这里找到:
https://unix.stackexchange.com/q/692316

相关内容