在 Fedora 17 上使用 startx,非 root 用户无法加入新的无线网络 - 如何修复?

在 Fedora 17 上使用 startx,非 root 用户无法加入新的无线网络 - 如何修复?

我在 Lenovo X230 上安装了 Fedora 17,如果我将其配置为使用 systemd 的 runlevel5.target(或graphical.target)(默认设置)启动到 Gnome,网络似乎工作得很好——本地用户可以加入新的无线网络,根据需要验证并保存网络密码。到目前为止,一切都很好。

然而,这台笔记本电脑的所有者更喜欢启动到非图形显示(systemd 的 runlevel3.target 或多用户.target);当需要时,他会跑去startx启动 Gnome。当Gnome以这种方式启动时,用户无法加入任何新的无线网络;您可以从下拉列表中选择所需的SSID,但不会出现输入网络密码的提示,也不会建立连接。我在 /var/log/messages 中没有看到任何相关记录。

可以做什么,以便允许已开始使用 Gnome 的非特权用户startx加入新的无线网络?

笔记:

如果 root 登录、启动 Gnome 并加入新的无线网络,则会在 /etc/sysconfig/network-scripts 下为网络和关键信息创建适当的新文件。完成此操作后,非 root 用户在登录时就可以使用无线网络。这种解决方法非常不方便。

用户已经是“wheel”组的成员,并且无需密码即可拥有完整的 sudo 访问权限。 SELinux 在此计算机上被禁用。

作为测试,我将用户添加到“root”组,并使 /etc/sysconfig/network-scripts 组可写。这没有帮助或改变任何事情。

答案1

我的猜测是,当你跑步时startx,你没有一个活跃的控制台工具包会议。参见例如设置PolicyKit权限在 NetworkManager 的 Arch Linux wiki 条目中。它向您展示了如何使用ck-launch-session~/.xinitrc确保您有正确的 CK 会话。

您还需要确保政策工具包权限是正确的,尽管如果在 Gnome 会话中工作的话它们可能已经很好了。

如果该命令显示使用与+ck-list-sessions之间存在差异,那么这可能是您的问题。runlevel5.targetrunlevel3.targetstartx

也可以看看:

管理和特权位于网络管理器配置页面的底部。


我不建议您在不了解它们在做什么的情况下遵循这些内容,因为不一定清楚它们与 Fedora 的关系,但它们可能会很有用:

这个 Ubuntu 错误:如果“startx”是从文本控制台中运行的,ConsoleKit 会话不会标记为“活动”

此 Debian 邮件列表帖子包含有关更改策略包/控制台权限的一些详细信息:回复:将 consolekit 与 startx 一起使用的正确方法是什么?

答案2

简短的回答——使用:

 startx -- vt0

更长的解释:@JimParis 的链接和建议让我对 PolicyKit 和 systemd 有了更多的了解,而且最重要的是,在 google 上搜索“polkit startx”,这让我得到了关于Arch Linux 讨论站点:

如果您不使用显示管理器,则意味着您将没有用于图形登录的注册 pam 会话,这意味着 logind 不会向 polkit 提供正确的信息(它会认为没有活动会话)。

解决此问题的方法是在与控制台登录相同的 VT 上启动 WM,从而“窃取”该 pam 会话。我相信魔法咒语是:

# startx -- vt0

到目前为止,我什至没有注意到 startx 可以接受参数,但这非常适合我的情况。本地用户现在不仅可以正确加入无线网络,而且可以正确访问其他 Gnome 桌面功能,例如蓝牙和挂起。

相关内容