Another look at NetworkManager and Tumbleweed
I last looked at NetworkManager when it was at version 1.0.0. It is now at version 1.0.6, and with some changes that persuaded me to do some more testing.
To test, I setup a connection and then did some tests. I repeated this for KDE/Plasma 5, for Gnome and for XFCE. It is also possible to run “nm-applet” and a polkit daemon in Icewm, where configuring the network is similar to what happens with XFCE (which also uses “nm-applet”).
Between series of tests, I cleared out all configuration. To do this, I booted a different system (booting a live CD would also work), and then mounted the root file system for Tumbleweed. That way, I could clear out the saved configuration while Tumbleweed was not actually running.
To clean out, I deleted all files in “/etc/NetworkManager/system-connections” and all files in “/var/lib/NetworkManager”. I then rebooted into Tumbleweed for the next series of tests.
The testing connections were all to my home network which uses WPA2 security and does not hide the SSID.
NM in KDE/Plasma 5
My first test was with Plasma 5. After login to Plasma 5, I clicked on the NM icon in the tray. Next, I clicked on my home network. I was prompted for the network key. I provided that. I was next prompted for the kwallet key (I’m using gpg encryption there).
This went smoothly, and the network connection was quickly up and running.
I then logged out, and logged in as a different user. That different user did not have a network connection. I logged back into my usual account, and was prompted for the kwallet key, after which the network connection was automatically setup.
I rebooted, and then logged into Gnome. In Gnome, I was prompted for the network key. That’s because Gnome does not know to check kwallet. I did not check whether Gnome saved the key in the Gnome keyring, though I suppose that I should have checked.
In the past, my way of dealing with multiple desktops and multiple users has been to set the WiFi connection to be shared by other users. So I logged into KDE again, and made that change.
I then rebooted, and again logged into KDE. And here’s the shocker. I was prompted for the root password. Only after giving that, was I prompted for the kwallet key. In previous tests, setting the connection to be shared, meant that I would never again be prompted for those passwords. So this is a change for the worse.
It seems that once a network is shared by all users, it requires root privileges to make the connection. Perhaps this is a bad polkit setting by opensuse. So I browsed through the polkit database, but I did not see an entry for NetworkManager relevant to supplying the network key. The closest was making a connection, and that should have been allowed. So I think somebody made a poor decision here.
I’ll comment on recovering from this problem later in this post.
NM in Gnome
As indicated above, I cleaned out all configuration for a fresh start. My first login, after the reboot, was to Gnome. There wasn’t an obvious icon for the network. So I clicked on the top right of the panel, and the resulting menu had an entry for a wireless connection. I clicked on the network and provided the key. The network was soon setup. One difference from the KDE setup, was that this time the IPv6 privacy options were in use. In KDE, I could configure those, but they were not the default.
Again, I logged out, and then tried as a different user. Again, there was no network. Then I logged back in with my normal account. And the network was connected with no need for me to provide any password. I logged out, then logged into KDE. Again, I was connected with no password prompt. The network key was evidently being stored centrally. Checking as root, I could see that it was in a file in “/etc/NetworkManager/system-connections” (a file readable only by root).
Next, I went back into Gnome, and tried setting the connection to be shared by other users. This went fine. It did require root authentication to make that setting. But, once done, all users could access the network without being prompted for root password or for network key. That’s how it has worked in the past.
NM in XFCE
With XFCE there was a tray icon. I clicked that, then clicked the network and provided the key. I later changed that to shared with other users. The results were mostly similar to what happened with Gnome. The one difference, is that the IPv6 privacy options were not in use until I separately configured them.
“Fixing” the KDE problem
When having that problem with KDE and shared connection, where root was required to connect, I looked into finding a way of fixing it. I presume that I could just turn off sharing, though I did not test that. What I wanted was to have a shared connection without needing a root password every time.
I found out that I could do that in XFCE. I could have just as easily done it in Icewm, if I manually started “nm-applet” and a polkit daemon (I usually try the Gnome polkit daemon in Icewm, though the KDE version would probably also work).
I right clicked on the tray icon for NetworkManager, and then clicked on configure connections. I selected the home WiFi network, and clicked “Edit” (which require a root password). There, I went to the security tab. The field for the network key was blank, except for a small icon to the right. Clicking that icon gave me a choice of:
- Store the password only for this user
- Store the password for all users
- Ask for this password every time
The default was for the first of those. I changed to the second, entered the network key and saved the changes. Thereafter everything was fine.
As best I can tell, it is not possible to fix this in the KDE network settings or in the Gnome network settings. Only “nm-applet” gives the needed choices. I made the change in XFCE. It should also be possible in LXDE and probably MATE. And it can be done in Icewm if I manually start “nm-applet” and a polkit daemon.
After completing my tests, I switched back to using “wicked” for network settings.