Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/0' failed in libnm-glib.

今天装了一个 ubuntu 14.04, 使用无线网络的时候, 无线总是断, 而且会报题目那样的错。
查了好久的资料在ubuntu的 网络管理器的 bug 提交网页上找到了答案,解决方案如下:

I'm hitting this bug too, and so far working around it by going to Edit connections -> Edit the network you want to connect to -> manually input the WPA2 password in the Wi-Fi Security tab -> Save, then it connects without problems.
<think>好的,用户现在遇到了在Debian 12系统中/etc/polkit-1目录下没有/localauthority/50-local.d/networkmanager.pkla文件的问题。我需要帮他解决这个问题。首先,我得回忆一下之前给他的回答,之前提到过如果这个文件缺失,可以手动创建。现在用户可能按照之前的步骤检查时发现没有这个路径或文件,所以需要更详细的指导。 首先,我应该确认用户是否正确理解了路径结构。可能用户进入/etc/polkit-1后,没有看到localauthority目录,或者进去后没有50-local.d子目录。这时候需要引导用户创建这些目录,或者检查是否存在其他可能的配置位置。 接下来,Polkit的规则文件通常存储在不同的位置,比如系统级的localauthority目录或者用户自定义的rules.d目录。可能Debian 12的默认配置发生了变化,或者用户安装的某些软件包导致路径不同。我需要确认Debian 12中Polkit的默认配置路径是否还是localauthority,或者是否有新的推荐方式,比如使用rules.d。 然后,用户可能对Polkit的规则文件不太熟悉,需要详细解释如何创建这个文件,包括正确的文件内容、权限和语法。同时,应该提醒用户检查是否有拼写错误或者文件权限问题,导致Polkit无法读取该文件。 另外,考虑到用户可能已经尝试过之前的解决方案但未成功,我需要提供替代方法,比如使用rules.d目录来放置自定义规则,这样可能更符合当前的系统配置。同时,需要指导用户如何测试新规则是否生效,可能需要重启相关服务或者重新登录。 还要考虑到用户可能对命令行操作不太熟悉,所以步骤需要详细,包括创建目录的命令、编辑文件的具体内容、以及如何验证配置的正确性。此外,应该提醒用户备份现有文件,避免操作失误导致系统问题。 最后,总结可能的问题原因和解决方案,帮助用户系统地排查问题,并建议如果仍然无法解决,如何收集更多信息寻求社区帮助。这能确保用户有明确的下一步行动,避免他们感到无助。</think>### Debian 12 缺失 `networkmanager.pkla` 文件的解决方法 如果 `/etc/polkit-1` 目录下没有 `/localauthority/50-local.d/networkmanager.pkla` 文件,可能是由于 **Polkit 规则目录结构变化**或 **NetworkManager 权限规则未自动生成**。以下是详细解决方案: --- #### 1. 理解 Polkit 规则路径变化 Debian 12 中 Polkit 的规则路径可能有两种形式: - **传统路径**:`/etc/polkit-1/localauthority/50-local.d/` - **新路径**:`/etc/polkit-1/rules.d/` 如果目录不存在,**需手动创建规则文件**。 --- #### 2. 手动创建规则文件(两种方式任选其一) ##### 方法 1:使用传统路径 ```bash # 创建目录(如果不存在) sudo mkdir -p /etc/polkit-1/localauthority/50-local.d/ # 创建规则文件 sudo nano /etc/polkit-1/localauthority/50-local.d/networkmanager.pkla ``` 将以下内容粘贴到文件中: ```ini [NetworkManager Permissions] Identity=unix-group:netdev;unix-group:sudo Action=org.freedesktop.NetworkManager.* ResultAny=yes ResultInactive=no ResultActive=yes ``` ##### 方法 2:使用新路径(推荐) ```bash # 创建规则文件 sudo nano /etc/polkit-1/rules.d/80-networkmanager.rules ``` 将以下内容粘贴到文件中: ```javascript polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.NetworkManager.") === 0 && subject.isInGroup("netdev")) { return polkit.Result.YES; } }); ``` --- #### 3. 验证规则生效 - **重启服务**: ```bash sudo systemctl restart NetworkManager ``` - **检查权限**: 尝试通过图形界面打开网络设置,或运行: ```bash nm-connection-editor # 测试是否有权限 ``` --- #### 4. 常见问题排查 | 现象 | 解决方案 | |--------------------------|-----------------------------------| | 文件权限错误 | 确保文件权限为 `644`:`sudo chmod 644 /etc/polkit-1/...` | | 用户未加入 `netdev` 组 | 执行:`sudo usermod -aG netdev $USER`,注销后重新登录 | | 规则语法错误 | 检查是否有多余空格或符号错误 | | Polkit 未加载新规则 | 重启系统或执行:`sudo systemctl restart polkit` | --- #### 5. 替代方案:直接修改默认策略(不推荐) 编辑默认策略文件(仅限高级用户): ```bash sudo nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy ``` 搜索 `<action id="org.freedesktop.NetworkManager.enable-disable-network">`,修改 `<allow_any>` 和 `<allow_inactive>` 的值为 `yes`。 --- ### 规则文件不生效的可能原因 1. **目录层级错误**:Polkit 会按字母顺序加载 `/rules.d/` 下的文件,文件名建议以数字开头(如 `80-xxx.rules`)。 2. **用户组未生效**:修改用户组后需重新登录。 3. **NetworkManager 版本问题**:更新系统: ```bash sudo apt update && sudo apt upgrade ``` 如果问题仍未解决,请提供以下信息: ```bash ls -l /etc/polkit-1/ # 检查目录结构 groups $USER # 检查用户组 journalctl -u polkit # 查看 Polkit 日志 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值