![当 su 为另一个用户时将 $DISPLAY 环境变量设置为](https://linux22.com/image/791297/%E5%BD%93%20su%20%E4%B8%BA%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E6%97%B6%E5%B0%86%20%24DISPLAY%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%AE%BE%E7%BD%AE%E4%B8%BA.png)
我不太熟悉 Linux,更不用说 X 和显示/窗口管理器之类的东西了。
我正在尝试运行 Oracle Enterprise Manager 的 GUI 安装程序,但是它对 DISPLAY 环境变量的值提出投诉,并且无法加载 GUI。
我以 root 身份登录,然后启动终端,可以看到变量的值为hostname:0
。我需要以 Oracle 身份运行安装程序,因此我su - oracle
使用以下命令将变量设置为相同的值export DISPLAY=hostname:0
我假设有某种权限机制阻止了它的工作,所以我想知道我可以使用 Oracle 的 DISPLAY 环境变量来允许安装程序运行吗?是否必须以 Oracle 身份登录并直接启动终端,还是可以在 su 之后完成?
答案1
您需要配置X11 身份验证MIT-MAGIC-COOKIE。
您可以使用验证配置它:
xauth list $DISPLAY # To list X11 cookies
sudo -iu oracle
# Import the cookies one by one
xauth add laptop.example.org/unix: MIT-MAGIC-COOKIE-1 someHexString
或者:
xauth extract - $DISPLAY | ssh oracle@localhost xauth merge -
或者设置$XAUTHORITY
环境变量:
export XAUTHORITY=$(xauth info|grep "^Authority file"|awk '{print $3}')
sudo -iu oracle