Я хочу, чтобы скрипт 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 ?
