Я хочу, чтобы скрипт bash запускался как текущий пользователь с sudo
, но не позволяю ему запускаться, если он выполнялся как пользователь root напрямую. Это связано с тем, что я выполняю некоторые действия по настройке текущего пользователя, которым требуются права доступа root, но которые зависят от устанавливаемой переменной среды SUDO_USER
.
Вот что у меня на данный момент:
#!/usr/bin/env bash
# Require script to be run via sudo, but not as root
if [[ $EUID != 0 ]]; then
echo "Script must be run with root privilages!"
exit 1
elif [[ $EUID = $UID && "$SUDO_USER" = "" ]]; then
echo "Script must be run as current user via 'sudo', not as the root user!"
exit 1
fi
Это надежно, как оно есть? Я немного не уверен в том, что я проверяю, совпадают ли EUID
и UID
, так как я не знаю, всегда ли UID
надежно установлен правильно. Достаточно ли просто проверить, пуст ли SUDO_USER
?