Parar / matar o script em execução se $ USER! = “root”

4

Estou trabalhando em scripts que precisam ser executados como root, caso contrário, ele deve parar tudo.

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

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

Eu não sei o que adicionar após echo "You're not root! You can't use this script." para interromper a execução.

    
por Vlad 29.11.2014 / 22:11

1 resposta

7

Eu teria feito isso assim:

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

Mente que id = 0 é o que é usado dentro do kernel para identificar o superusuário (ou root).

edit: será ainda melhor redirecionar para o STDERR.

Aqui está um verso:)

(( EUID )) && echo ‘You need to be root.’ && exit 1
    
por Rinzwind 29.11.2014 / 22:22