Root

Check ob User root ist

Einige Scripts benötigen root-Berechtigung. Auf Raspberry OS ist da in der Regel kein Problem, da sudo keine Paßwortabfrage provoziert. Es empfiehlt sich jedoch auf Nummer Sicher zu gehen, für den Fall, daß sich die Einräge in der sudoer-Datei geändert werden oder die Scripts auf anderen Systemen getestet werden.

In der bash;

if [ $EUID != 0 ]; then
    echo "I am not root."
    exit 1
fi

Die Variable $EUID wird nur von der bash zur Verfügung gestellt. Der verläßlichere Aufruf kann über ìd -u erfolgen

if [ $(id -u) != 0 ]; then
echo "I am not root!"
exit 1
fi

Achtung

Bei allen Dateien oder Verzeichnissen, die mit root angelegt wurden, sind die Berechtigungen für den Betrieb falsch gesetzt! Dies muß mit sudo chown user:user <Datei> oder mit `sudo chown -R user:user geändert werden.

Konklusion

Nun stellt sich die Frage, warum nicht einfach die sudoers-list von Raspian OS aus nutzen und sudo im code verwenden?

Nun, das ist eine Möglichkeit – aber die Scripte werden auf anderen Systemen nicht wunschgemäß arbeiten – und wer weiß, wann dieser Zustand geändert wird? Weiter ist eine Fehlersuche so einiges schwerer.

Was bleibt, ist:

  • Die sudoer-list als erstes kontrollieren und anpassen
  • Die Scripts so anpassen, daß User- und root Eingaben getrennt sind.
  • Root-Scripte strikt von Userscripten trennen.