Laufendes Skript stoppen/beenden, wenn $USER != "root"

Laufendes Skript stoppen/beenden, wenn $USER != "root"

Ich arbeite an einem Skript, das als Root ausgeführt werden muss, sonst sollte es alles stoppen.

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

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

Ich weiß nicht, was ich danach hinzufügen soll, echo "You're not root! You can't use this script."um die Ausführung zu stoppen.

Antwort1

Ich hätte es so gemacht:

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

Beachten Sie, dass id=0 im Kernel verwendet wird, um den Superuser (oder Root) zu identifizieren.


Bearbeiten: Eine Weiterleitung zu STDERR wäre sogar noch besser.


Hier ist ein Einzeiler :)

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

verwandte Informationen