Я зарегистрирован как корень и хочу выполнить сценарий Bash с sudo полномочиями как другой пользователь.
Это - тест, избивают сценарий /home/me/sudo.bash
:
mkdir -p /etc/test # Creating an /etc directory to test permissions
echo "test $(whoami) $USER $HOME" > /etc/test/a.txt
Команда, которую я в настоящее время имею (выполненный от корня, работайте за мной):
sudo --non-interactive --login --set-home --user=me \
sudo --non-interactive bash /home/me/sudo.bash
Содержание /etc/test/a.txt
:
test root root /home/me
Что я ожидал:
test me me /home/me
Что я делаю неправильно здесь?
Это ожидается, это $(whoami)
возвратит "корень", так как он работает как корень из-за второго sudo
.
Кроме того, $USER
возвратит "корень" потому что sudo
всегда наборы, что переменная целевому пользователю (который, снова, является корнем на втором sudo.)
Если Вы интересуетесь знанием, которое вызвал пользователь sudo
, который был бы "я" на случае второго sudo
, затем посмотрите на $SUDO_USER
переменная, который sudo
наборы пользователю, который вызвал его.
См. SUDO_USER и ПОЛЬЗОВАТЕЛЯ в разделе "Environment" sudo
страница справочника.