xterm 在 RHEL 7.2 上抛出以下错误:
$ xterm &
[1] 21638
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s
[1]+ Exit 1 xterm
[/RHEL/Packages]
$ rpm -qa | grep -i xterm
xterm-295-3.el7.x86_64
我在这里缺少什么?
答案1
简而言之:不要以 root 身份运行应用程序
长的:
该消息告诉您出了什么问题。获取此消息的通常方法是登录(作为普通的非特权用户)并使用su
或者sudo
切换到root
用户。
该消息(和检查)于 1997 年添加(它首先作为 6 月底 XFree86 的补丁出现,作为 5 月份讨论的后续内容,两周后在 X11R6.3 中出现)。
在那之前,root
可以连接到您的 X 会话并运行您的任何程序(如root
)选择了。不幸的是,许多可能使用的程序并不安全。 (这仍然是几乎所有桌面应用程序的状态)。
进行检查的 X 库在看到它是root
用户,然后删除环境变量(例如DISPLAY
)这可能会诱使您陷入不安全应用程序的泥潭。
有些系统允许root
用户登录桌面会话;对于那些最容易立即访问的应用程序,我们选择了它们以保持相对安全。有些人不这样做。
现在...在Red Hat 7中,xterm
没有安装set-uid或set-gid。 set-uid to root 20年前用于打开BSD风格的伪终端,set-gid用于更新utmp。这两个人都已经离开很久了。你可以通过这样做看到
ls -l /usr/bin/xterm
如果要找到 set-uid 或 root 用户权限,则可以从运行 xterm 的 shell 开始查找。