web-dev-qa-db-fra.com

Quelle est la structure des fichiers de connexions système des gestionnaires de réseau?

quelqu'un peut-il répertorier la structure complète des fichiers de configuration, quel gestionnaire de réseau stocke les réseaux connus dans/etc/NetworkManager/system-connections pour les réseaux connus?

Exemple (nom de fichier 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

J'aimerais en créer quelques-unes moi-même à l'aide d'un script. Cependant, avant de le faire, j'aimerais savoir que tous = option possible.

De plus, cette structure semble en quelque sorte ressembler aux informations que vous pouvez obtenir en utilisant dbus pour les connexions actives.

dbus-send --system --print-reply \
    --dest=org.freedesktop.NetworkManager \
    "$active_setting_path" \ # /org/freedesktop/NetworkManager/Settings/2
    org.freedesktop.NetworkManager.Settings.Connection.GetSettings 

Vous dira:

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 [
              ]
        )
     ]
  )
]

Je peux créer de nouveaux fichiers de paramètres à l'aide de dbus (AddSettings () dans/org/freedesktop/NetworkManager/Settings) en transmettant ce type d'entrée, m'expliquer ainsi cette structure et me dire toutes les options possibles aidera également . Afaik, c'est un Dictionnaire {String, Dictionnaire {String, Variant}}.

Y aura-t-il une différence en créant des fichiers de configuration directement ou en utilisant le dbus?

6
Oyks Livede

Ce fichier n'est pas destiné à être modifié par l'utilisateur, mais par les outils de Network Manager. Vous pouvez lire le manuel en utilisant:

man nm-settings

DES DOSSIERS

  /etc/NetworkManager/system-connections

  or distro plugin-specific location

La liste est trop longue/longue et peut changer à tout moment. Il est donc recommandé d’utiliser la page de manuel, car elle est synchronisée avec votre version NM.

6
Braiam

En ajoutant à réponse de Braiam (il serait trop long pour un commentaire), quelques détails potentiellement utiles pour éviter une collision adresse/identifiant dans votre fichier de clés nommé /etc/NetworkManager/system-connections/askUbuntu ci-dessus:

1) pour ne pas entrer en collision avec un UUID existant dans votre système, vous pouvez créer un UUID aléatoire exécutant uuidgen sur le terminal et en collant sa sortie dans la clé uuid= de la section [connection] du fichier /etc/NetworkManager/system-connections/askUbuntu.

2) pour ne pas entrer en collision avec un autre IPv4 déjà utilisé (par exemple) dans votre réseau domestique (sains et saufs dans votre passerelle), vous pouvez choisir une adresse comprise entre 192.168.0.0 et 192.168.255.255, puis section [ipv4], vous modifiez la clé method= en manual et créez la clé address1= avec votre adresse.

2.1) si vous êtes à court d'idées d'adresse, vous pouvez exécuter shuf -i 1:255 -n 2 dans le terminal pour obtenir le dernier en position - une chance sur 65k de collision

0
Marcelo Ventura