mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-29 12:40:11 +01:00
Create such duplicate files:
UUID=0df1bac3-1131-42d4-8893-4492d5424d11
rm -f /etc/NetworkManager/system-connections/x[12]
rm -f /{etc,run}/NetworkManager/system-connections/"$UUID".nmmeta
printf -v C "[connection]\nuuid=$UUID\ntype=ethernet\nautoconnect=false"
echo "$C" > /etc/NetworkManager/system-connections/x1
echo "$C" > /etc/NetworkManager/system-connections/x2
chmod 600 /etc/NetworkManager/system-connections/x[12]
touch /etc/NetworkManager/system-connections/x2
ls -l --full-time /etc/NetworkManager/system-connections/x[12] /{etc,run}/NetworkManager/system-connections/"$UUID".nmmeta 2>/dev/null
nmcli connection reload
nmcli -f all connection show | grep $UUID
Now, we have x2 file loaded, and x1 is shadowed. When we delete x2,
we probably don't want to delete the hidden x1 file.
What previously happend was that when calling
nmcli connection delete $UUID
the command would hang because the profile wasn't really deleted:
<trace> [1563355597.3671] keyfile: commit: deleted "/etc/NetworkManager/system-connections/x2", profile 0df1bac3-1131-42d4-8893-4492d5424d11 (deleted from disk)
<trace> [1563355597.3672] settings: storage[0df1bac3-1131-42d4-8893-4492d5424d11,91e13003dd84928f/keyfile]: change event for dropping profile (file "/etc/NetworkManager/system-connections/x2")
<trace> [1563355597.3672] settings: update[0df1bac3-1131-42d4-8893-4492d5424d11]: updating connection "x1" (2b798d30d43b0daf/keyfile)
<debug> [1563355597.3674] ++ connection 'update connection' (0x55a167693ee0/NMSimpleConnection/"802-3-ethernet" < 0x55a16762e580/NMSimpleConnection/"802-3-ethernet") [/org/freedesktop/NetworkManager/Settings/41]:
<debug> [1563355597.3675] ++ connection [ 0x55a16782a400 < 0x55a16762c350 ]
<debug> [1563355597.3675] ++ connection.id = 'x1' < 'x2'
<info> [1563355597.3680] audit: op="connection-delete" uuid="0df1bac3-1131-42d4-8893-4492d5424d11" name="x1" pid=32077 uid=0 result="success"
instead, we need to write a tombstone:
<trace> [1563359300.2910] keyfile: commit: deleted "/etc/NetworkManager/system-connections/x2", profile 0df1bac3-1131-42d4-8893-4492d5424d11 (deleted from disk)
<trace> [1563359300.2911] settings: storage[0df1bac3-1131-42d4-8893-4492d5424d11,0c12620295ac7f83/keyfile]: change event for dropping profile (file "/etc/NetworkManager/system-connections/>
<trace> [1563359300.2912] keyfile: commit: writing nmmeta symlink "/etc/NetworkManager/system-connections/0df1bac3-1131-42d4-8893-4492d5424d11.nmmeta" (pointing to "/dev/null") succeeded
<trace> [1563359300.2912] settings: storage[0df1bac3-1131-42d4-8893-4492d5424d11,02a430e6ee52358d/keyfile]: change event for hiding profile (file "/etc/NetworkManager/system-connections/0d>
<trace> [1563359300.2912] settings: update[0df1bac3-1131-42d4-8893-4492d5424d11]: delete connection "x2" (02a430e6ee52358d/keyfile)
<debug> [1563359300.2914] Deleting secrets for connection /org/freedesktop/NetworkManager/Settings (x2)
<trace> [1563359300.2915] dbus-object[13d79ec95177f9eb]: unexport: "/org/freedesktop/NetworkManager/Settings/54"
<trace> [1563359300.2916] settings-connection[13d79ec95177f9eb,0df1bac3-1131-42d4-8893-4492d5424d11]: update settings-connection flags to none (was visible)
<info> [1563359300.2917] audit: op="connection-delete" uuid="0df1bac3-1131-42d4-8893-4492d5424d11" name="x2" pid=22572 uid=0 result="success"
<debug> [1563359300.2918] settings-connection[13d79ec95177f9eb,0df1bac3-1131-42d4-8893-4492d5424d11]: disposing
and of course after a `nmcli connection reload` the profile stays hidden:
<trace> [1563359412.0355] settings: storage[0df1bac3-1131-42d4-8893-4492d5424d11,e45535721abb092a/keyfile]: change event with connection "x1" (file "/etc/NetworkManager/system-connections/x1")
<trace> [1563359412.0355] settings: storage[0df1bac3-1131-42d4-8893-4492d5424d11,02a430e6ee52358d/keyfile]: change event for hiding profile (file "/etc/NetworkManager/system-connections/0df1bac3-1131-42d4-8893-4492d5424d11.nmmeta")
|
||
|---|---|---|
| .. | ||
| plugins | ||
| nm-agent-manager.c | ||
| nm-agent-manager.h | ||
| nm-secret-agent.c | ||
| nm-secret-agent.h | ||
| nm-settings-connection.c | ||
| nm-settings-connection.h | ||
| nm-settings-plugin.c | ||
| nm-settings-plugin.h | ||
| nm-settings-storage.c | ||
| nm-settings-storage.h | ||
| nm-settings-utils.c | ||
| nm-settings-utils.h | ||
| nm-settings.c | ||
| nm-settings.h | ||