Как получить переменную среды от родительского пользователя?

Мне нужно знать, как можно получить переменную среды от родительского пользователя. после вс? Например, если я пользователь evan и у меня есть переменная $ DISPLAY =: 10.0, тогда я использую su - для перехода к пользователю root, как я могу получить переменную $ DISPLAY от родительского пользователя evan?

0
задан 3 July 2021 в 00:12

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 для родительского пользователя

наконец я экспортировать значение в мой новый ДИСПЛЕЙ для root.

работает как шарм.

0
ответ дан 28 July 2021 в 11:22

В этом случае я бы посмотрел на xhost

Обычно мне также удавалось открыть некоторый графический интерфейс как root (в зависимости от дистрибутива linux), указав

export DISPLAY=:0.0

в моем скрипте.

Мне неизвестно, что идентификатор дисплея меняется, как вы написали.

0
ответ дан 28 July 2021 в 11:22

Другие вопросы по тегам:

Похожие вопросы: