Как получить $ DESKTOP_SESSION из сценария sudo?

В следующем примере сценария не удалось получить среду рабочего стола (DE) при выполнении с помощью sudo. Как получить DE с помощью bash-скрипта, выполняемого с помощью sudo?

#!/bin/bash
echo $DESKTOP_SESSION 
echo $XDG_SESSION_DESKTOP 
echo $XDG_CURRENT_DESKTOP 
echo $SESSION
echo $MDMSESSION 
echo $GDMSESSION

Протестировано на Xubuntu и Mate, результаты пусты.

user:~$ sudo bash '/path/sample.sh' 






user:~$ bash '/path/sample.sh' 
mate
mate
MATE


mate
user:~$ 
2
задан 13 May 2019 в 20:07

1 ответ

Вам необходимо передать опцию -E в sudo:

-E, --preserve-env

Указывает на политику безопасности что пользователь хочет сохранить свои существующие переменные среды. Политика безопасности может возвращать ошибку, если у пользователя нет разрешения на сохранение среды.

- см. man sudo (или онлайн ).

И запустите свой скрипт как

sudo -E '/path/sample.sh' 
0
ответ дан 13 May 2019 в 20:07

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

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