You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 17.10+Openbox下非sudo无法启动应用求助

解决Ubuntu Server 17.10 + Xorg + Openbox下非XTerm应用无法启动的问题

这个问题我折腾Openbox的时候踩过一模一样的坑!核心原因是X服务器的权限控制异常或者普通用户的环境变量配置缺失——sudo启动GUI程序相当于用root权限临时打通了X的访问限制,所以之后普通用户能“蹭”到权限启动应用,但重启后又会打回原形,得彻底修复才行。

下面是几个亲测有效的解决方案,按顺序试试:

1. 修复X服务器的访问权限

X默认只允许启动它的用户访问,如果之前用root启动过X,或者权限文件出了问题,就会导致普通用户无权连接X。解决步骤:

  • 按Ctrl+Alt+F2切换到TTY终端,输入pkill Xorg退出当前X会话
  • 用你的普通用户账号登录,执行startx重新启动X
  • 如果还是不行,在TTY里执行xhost +local:,手动授权本地用户访问X,再启动Openbox试试

2. 检查并修复Openbox启动脚本

可能是~/.xinitrc或者Openbox自动启动脚本里的环境变量没设置对,导致非XTerm应用找不到DISPLAY参数:

  • 编辑~/.xinitrc文件,确保内容如下:
#!/bin/sh
# 强制设置DISPLAY变量
export DISPLAY=:0
# 启动Openbox会话
exec openbox-session
  • 给脚本添加执行权限:chmod +x ~/.xinitrc
  • 重启X会话,测试应用能否正常启动

3. 检查用户组权限

普通用户需要加入video和input组才能正常访问X相关硬件设备:

  • 执行groups查看当前用户的组列表,确认有没有video和input
  • 如果没有,执行以下命令添加:
sudo usermod -aG video $USER
sudo usermod -aG input $USER
  • 重启系统后,再启动X和Openbox测试

补充说明:为什么sudo启动后就正常?

root用户默认拥有X服务器的所有访问权限,当你用sudo gedit启动程序时,它会把X的权限临时开放给普通用户的环境进程,所以之后普通用户启动的应用就能正常连接X服务器了,但这只是临时的,重启后权限会重置,所以必须用上面的方法彻底修复。

内容的提问来源于stack exchange,提问作者xCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:42:58