![是否可以通过 nmcli 命令(无需 sudo)添加连接?](https://linux22.com/image/1195940/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20nmcli%20%E5%91%BD%E4%BB%A4%EF%BC%88%E6%97%A0%E9%9C%80%20sudo%EF%BC%89%E6%B7%BB%E5%8A%A0%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
我正在使用 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