bash: сбой, если скрипт не запускается пользователем root - PullRequest
13 голосов
/ 29 октября 2009

У меня есть скрипт bash, который устанавливает некоторое программное обеспечение. Я хочу потерпеть неудачу как можно скорее, если он не запускается пользователем root. Как я могу это сделать?

Ответы [ 2 ]

28 голосов
/ 29 октября 2009
#!/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

6 голосов
/ 24 июня 2012

Обдумав это, мы пришли к выводу, что нет необходимости использовать id -u в bash, поскольку будет установлена ​​переменная EUID (эффективный идентификатор пользователя). В отличие от UID, EUID будет 0, если пользователь root или использует sudo. По-видимому, это примерно в 100 раз быстрее, чем запуск id -u:

#!/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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...