目录

Linux窗口管理器无线网络无法自动连接

如果是先装的 KDE 再装的其它窗口管理器, NetworkManager 可能会被配置为读取 KWallet 的密码配置, 在脱离了 KDE 环境后, 可能会出现无法保存 WIFI 密码的情况, 每次都得手动输入密码.

/etc/NetworkManager/conf.d/default-wifi-powersave-on.conf 加入如下配置:

[connection]
# 表示该连接对所有用户可用(密码将以 root 可读形式存储在磁盘)
connection.permissions=

[wifi-security]
# 告诉 NM 默认将密码保存为明文(仅root可见)而非询问钱包
password-flags=0

这样可以使 WIFI 密码明文存储在 root 权限的文件中, 使所有用户都可以连接访问网络.

明文存储密码其实不太安全, 而且使用其它需求钥匙环的应用同样会有问题, 所以其实推荐使用 GNOME Keyring 来替代 KWallet, GNOME Keyring 模块化设计, 脱离 GNOME 环境一样可以很好运行.

可以安装整套 GNOME 桌面或者单独安装 GNOME Keyring, 安装完成后在显示管理器(Display Manager)认证流程中加上载入 GNOME Keyring 的内容, 我用 SDDM, 配置在 /etc/pam.d/sddm :

#%PAM-1.0

# 人脸认证
# auth sufficient /lib/security/pam_howdy.so

auth        include     system-login
-auth       optional    pam_gnome_keyring.so  # 加载 GNOME Keyring
-auth       optional    pam_kwallet5.so       # 加载 KWallet

account     include     system-login

password    include     system-login
-password   optional    pam_gnome_keyring.so    use_authtok

session     optional    pam_keyinit.so          force revoke
session     include     system-login
-session    optional    pam_gnome_keyring.so    auto_start
-session    optional    pam_kwallet5.so         auto_start

注意注释掉的 Howdy 人脸认证, 如果加上它, 由于后续加载钥匙环需要密码, 扫脸进入系统会无法加载钥匙环.