Я хочу создать 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-совместимых функций.