Действительно ли я могу получить доступ к инициирующей переменной $USER из скрипта, запущенного с 'sudo'?

Странный вопрос, я знаю. Вот сценарий:

echo $USER

Вот команда, которую я использую для выполнения его:

sudo ./myscript.sh

Прямо сейчас это печатает "корень", но я хочу, чтобы это распечатало jon, мое имя пользователя. Существует ли способ сделать это путем изменения сценария а не команды?

19
задан 31 December 2016 в 21:28

1 ответ

Используйте SUDO_USER переменная среды вместо USER.

sudo помещает имя пользователя, который выполнил его в SUDO_USER переменная среды:

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

Таким образом, можно просто заменить $USER с $SUDO_USER в Вашем сценарии:

echo $SUDO_USER

Дальнейшее чтение

28
ответ дан 23 November 2019 в 02:00

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

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