我正在尝试使用 nmcli 编辑现有连接,并且我想完全删除一些属性(而不是仅修改它们的值)。
具体来说,属性是wifi-sec.key-mgmt
和wifi-sec.psk
,用例是因为网络已从 wpa-psk 模式切换到开放模式。
我似乎找不到删除这些属性的方法,并且 nmcli 帮助似乎指向该命令,nmcli connection modify
但它似乎无法删除整个属性,只需删除多值属性中的一些项目,这我想要的却不是这样。
Usage: nmcli connection modify { ARGUMENTS | help }
ARGUMENTS := [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
Modify one or more properties of the connection profile.
The profile is identified by its name, UUID or D-Bus path. For multi-valued
properties you can use optional '+' or '-' prefix to the property name.
The '+' sign allows appending items instead of overwriting the whole value.
The '-' sign allows removing selected items instead of the whole value.
有没有办法通过 nmcli 完全删除属性,或者我是否必须删除整个连接,然后在没有这些属性的情况下重新创建它?
请注意,这需要从另一个程序调用,因此交互模式命令不适合。
答案1
假设该属性不是标志或容器类型(如果是,请使用nmcli c modify conid -setting.property value
您描述的语法),那么nmcli 手册页指定将属性值设置为空字符串以将其重置为默认值:
nmcli con modify id setting.property ""
您还可以使用“remove”关键字取消连接上的整个设置部分,而不是通过以下方式取消设置特定属性:
nmcli con modify [--temporary] [id | uuid | path] ID remove setting
答案2
信息来自nmcli手册:
首先,您需要使用以下命令识别要编辑的连接:
nmcli connection show
然后,假设您有一个名为“以太网”的连接(此处仅用作示例),请使用以下命令:
nmcli connection edit Ethernet
它启动===| nmcli interactive connection editor |===
,它可以删除连接的属性。