У меня есть скрипт bash, который устанавливает некоторое программное обеспечение. Я хочу потерпеть неудачу как можно скорее, если он не запускается пользователем root. Как я могу это сделать?
#!/bin/bash if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi
Источник: http://www.cyberciti.biz/tips/shell-root-user-check-script.html
Обдумав это, мы пришли к выводу, что нет необходимости использовать id -u в bash, поскольку будет установлена переменная EUID (эффективный идентификатор пользователя). В отличие от UID, EUID будет 0, если пользователь root или использует sudo. По-видимому, это примерно в 100 раз быстрее, чем запуск id -u:
id -u
EUID
UID
0
root
sudo
#!/bin/bash if (( EUID != 0 )); then echo "You must be root to do this." 1>&2 exit 1 fi
Источник: https://askubuntu.com/questions/30148/how-can-i-determine-whether-a-shellscript-runs-as-root-or-not