Я хочу создать bash-скрипт, который должен выполняться с помощью sudo, но должен учитывать имя пользователя не-sudo, который его выполнил. Так что, если пользователь bob
запускает, sudo ./myscript.sh
я хотел бы myscript.sh
знать, кто bob
был его исполнителем.
Давайте посмотрим внутрь myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
Как я могу узнать имя пользователя, который породил процесс? Точнее, что я должен использовать вместо того, whoami
чтобы получить bob
и нет root
?
#!/usr/bin/env bash
в мои скрипты bash.
sh
или как-то еще.
USER=$(whoami)
. Обратите внимание, чтоUSER
уже существует как внутренняя переменная оболочки. Кроме того, если это bash-скрипт, не запускайте его, используяsh
только подмножество POSIX-совместимых функций.