Рейтинг:0

How to get variable environment from parent user?

флаг tr

I need to know how it's possible to get environment variable from a parent user after su? For example if I'm evan user and I have variable $DISPLAY=:10.0, then I use "su -" to go to root user, how could I get the $DISPLAY variable from parent evan user?

kanehekili avatar
флаг zw
Похоже на XY [проблема] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Может подскажете, зачем вам отображение в руте...
antonio1 avatar
флаг tr
очень хорошо.Мне нужно su в корне, чтобы запустить скрипт, но позже в скрипте мне нужно запустить xclock, который не работает, потому что что-то вроде проблемы с отображением не унаследовано от исходного пользователя. Если я вручную устанавливаю DISPLAY как оригинальный пользователь evan, все работает хорошо, но значение дисплея меняется.
Рейтинг:0
флаг zw

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

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

экспорт ДИСПЛЕЙ =: 0,0

в моем сценарии.

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

antonio1 avatar
флаг tr
как только DISPLAY отличается от исходного открытого DISPLAY=:10.0, он не работает в том же сеансе.
Рейтинг:0
флаг tr

Я нашел решение, используя следующие строки:

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)

экспорт DISPLAY="$inherit_display"

prev_user — получает предыдущего пользователя (родительского пользователя), от которого я использовал su

inherit_display — получить точное значение DISPLAY для родительского пользователя

наконец, я экспортирую значение в свой новый DISPLAY для root.

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.