我正在使用 pi-gen 为 Rasberry Pi 创建自定义操作系统。
我决定安装 NetworkManager 来管理与默认网络接口(eth0 和 wlan0)的连接/重新连接。
我制作了位于 /etc/NetworkManager/system-connections 的 2 个配置文件,如下所示:
/etc/NetworkManager/system-connections/wifi:
[connection]
id=wifi
uuid=319f2d8e-3ce7-4e47-b6eb-fabb0aa69f68
type=wifi
[wifi]
mode=infrastructure
ssid=Facco
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=facco2016
[ipv6]
method=disabled
[ipv4]
method=auto
/etc/NetworkManager/system-connections/ethernet:
[connection]
id=ethernet
uuid=60d17e82-1be7-3d0f-b924-e980be41fcba
type=ethernet
[ipv6]
method=disabled
[ipv4]
method=auto
这两个文件完美运行。
之后,我将 2 个配置文件添加到操作系统存储库中,并生成了操作系统映像。
现在,当我启动操作系统时,我可以看到网络管理器正常,但 nmtui/nmtui-edit 根本看不到我复制并粘贴到 /etc/NetworkManager/system-connections 内的 2 个文件。
nmtui 不应该查看系统连接文件夹并找到我粘贴在那里的文件吗?
我有什么遗漏的吗?
答案1
NetworkManager 客户端(如 nmtui)从不直接查看这些文件。它们通常不以 root 身份运行,并且没有读取/修改它们的权限。相反,他们使用 NetworkManager 的 D-Bus API。
欢迎您在编辑器中创建连接配置文件或预部署它们。也就是说,直接配置文件而不是使用 D-Bus API 是非常受支持的,并且您尝试做的事情也很好。
密钥文件文件(其中的连接配置文件/etc/NetworkManager/system-connections
)必须由 root 拥有并具有权限0600
。使用和来检查文件所有者和权限ls -l
并修复它。chown
chmod
NetworkManager 无法访问这些文件的可能性较小。例如。我们使用 SELinux 标签。
无论如何,查看 NetworkManager 的日志文件会告诉您为什么它不加载它们。检查系统日志/日志。
例如,在 CentOS 7 中,您可能想查看以下日志文件:
tail -f /var/log/messages
要拦截这样的消息:
... keyfile: error loading connection from file /etc/NetworkManager/system-connections/example.conf: File permissions (100644) are insecure
答案2
不是直接为您提供答案,而是为我们其他在互联网上搜索的人提供答案network manager manually configured system-connections file
。
/etc/NetworkManager/system-connections/eno2.nmconnection
使用正确的模式0600
和所有者定义后root:root
,您需要重新启动 NetworkManager 以获取更新的更改。也许也可以激活它:
sudo systemctl restart NetworkManager.service
sudo nmcli up eno2