Остановить/завершить выполнение скрипта, если $USER != "root"

Остановить/завершить выполнение скрипта, если $USER != "root"

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

#!/bin/bash
validationRoot() {
    if [ $USER != 'root' ]
        then
            echo "You're not root! You can't use this script."

    fi
}
validationRoot;
echo "You're root!"

Я не знаю, что добавить после, echo "You're not root! You can't use this script."чтобы остановить выполнение.

решение1

Я бы сделал это так:

#!/bin/bash
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

Обратите внимание, что id=0 — это то, что используется внутри ядра для идентификации суперпользователя (или root).


правка: будет еще лучше перенаправить на STDERR.


Вот однострочник :)

(( EUID )) && echo ‘You need to be root.’ && exit 1

Связанный контент