网络管理员系统连接文件的结构是什么?

Oyk*_*ede 8 network-manager dbus

任何人都可以列出配置文件的完整结构,哪些网络管理器存储在已知网络的 /etc/NetworkManager/system-connections 中?

示例(文件名 askUbuntu):

[connection]
id=askUbuntu
uuid=81255b2e-bdf1-4bdb-b6f5-b94ef16550cd
type=802-11-wireless

[802-11-wireless]
ssid=askUbuntu
mode=infrastructure
mac-address=00:08:CA:E6:76:D8

[ipv6]
method=auto

[ipv4]
method=auto
Run Code Online (Sandbox Code Playgroud)

我想使用脚本自己创建其中一些。但是,在这样做之前,我想知道每一个可能的选择。

此外,这种结构似乎在某种程度上类似于使用 dbus 进行活动连接可以获得的信息。

dbus-send --system --print-reply \
    --dest=org.freedesktop.NetworkManager \
    "$active_setting_path" \ # /org/freedesktop/NetworkManager/Settings/2
    org.freedesktop.NetworkManager.Settings.Connection.GetSettings 
Run Code Online (Sandbox Code Playgroud)

会告诉你:

array [
  dict entry(
     string "802-11-wireless"
     array [
        dict entry(
           string "ssid"
           variant                   array of bytes "askUbuntu"
        )
        dict entry(
           string "mode"
           variant                   string "infrastructure"
        )
        dict entry(
           string "mac-address"
           variant                   array of bytes [
                 00 08 ca e6 76 d8
              ]
        )
        dict entry(
           string "seen-bssids"
           variant                   array [
                 string "02:1A:11:F8:C5:64"
                 string "02:1A:11:FD:1F:EA"
              ]
        )
     ]
  )
  dict entry(
     string "connection"
     array [
        dict entry(
           string "id"
           variant                   string "askUbuntu"
        )
        dict entry(
           string "uuid"
           variant                   string "81255b2e-bdf1-4bdb-b6f5-b94ef16550cd"
        )
        dict entry(
           string "timestamp"
           variant                   uint64 1383146668
        )
        dict entry(
           string "type"
           variant                   string "802-11-wireless"
        )
     ]
  )
  dict entry(
     string "ipv4"
     array [
        dict entry(
           string "addresses"
           variant                   array [
              ]
        )
        dict entry(
           string "dns"
           variant                   array [
              ]
        )
        dict entry(
           string "method"
           variant                   string "auto"
        )
        dict entry(
           string "routes"
           variant                   array [
              ]
        )
     ]
  )
  dict entry(
     string "ipv6"
     array [
        dict entry(
           string "addresses"
           variant                   array [
              ]
        )
        dict entry(
           string "dns"
           variant                   array [
              ]
        )
        dict entry(
           string "method"
           variant                   string "auto"
        )
        dict entry(
           string "routes"
           variant                   array [
              ]
        )
     ]
  )
]
Run Code Online (Sandbox Code Playgroud)

我可以使用传递此类输入的 dbus(/org/freedesktop/NetworkManager/Settings 中的 AddSettings())创建新的设置文件,因此向我解释此结构并告诉我所有可能的选项也会有所帮助。Afaik,这是一个 Dictionary{String, Dictionary{String, Variant}}。

直接创建配置文件或使用 dbus 有什么区别吗?

Bra*_*iam 7

该文件不是由用户编辑,而是由网络管理器工具编辑。您可以使用以下方法阅读手册:

man nm-settings
Run Code Online (Sandbox Code Playgroud)

档案

  /etc/NetworkManager/system-connections

  or distro plugin-specific location
Run Code Online (Sandbox Code Playgroud)

该列表太长/太广,可能随时更改,因此建议使用手册页,因为它与您的 NM 版本同步。