Мне нужно знать, как можно получить переменную среды от родительского пользователя. после вс? Например, если я пользователь evan и у меня есть переменная $ DISPLAY =: 10.0, тогда я использую su - для перехода к пользователю root, как я могу получить переменную $ DISPLAY от родительского пользователя evan?
Я нашел решение, используя следующие строки:
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 для родительского пользователя
наконец я экспортировать значение в мой новый ДИСПЛЕЙ для root.
работает как шарм.
В этом случае я бы посмотрел на xhost
Обычно мне также удавалось открыть некоторый графический интерфейс как root (в зависимости от дистрибутива linux), указав
export DISPLAY=:0.0
в моем скрипте.
Мне неизвестно, что идентификатор дисплея меняется, как вы написали.