我需要知道在 su 之后如何从父用户获取环境变量?例如,如果我是 evan 用户,并且我有变量 $DISPLAY=:10.0,那么我使用“su -”转到 root 用户,我如何从父 evan 用户获取 $DISPLAY 变量?
答案1
在这种情况下,我会看看主机
通常我也可以通过定义来以 root 身份打开一些 GUI(取决于 Linux 发行版)
export DISPLAY=:0.0
在我的脚本中。
我不知道显示 ID 是否像您所写的那样发生变化。
答案2
我使用以下几行找到了解决方案:
prev_user=$(pstree -lu -s $$ |grep --max-count=1 -o '([^)]*)' |head -n 1 | sed 's/[()]//g')
inherit_display=$(xauth -f /home/$prev_user/.Xauthority list|tail -1|cut -d/ -f2|cut -d ' ' -f1)
export DISPLAY="$inherit_display"
prev_user - 获取我使用 su 的上一个用户(父用户)
inherit_display-准确获取父用户的 DISPLAY 值
最后,我将值导出到我的新根显示器 (DISPLAY)。
像沙姆一样起作用。