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?
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.
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