• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Root-Rechte mit shellscript überprüfen

DrDelil

Newbie
Hallo,

ich bin noch ein Anfänger was Shellscript angeht.

Nun meine Frage:

Wie überprüft man, ob man root-Rechte hat oder nicht und
die Information soll an der Konsole anzeigt werden!
 

erikro

Newbie
Hallo zusammen,

zum prüfen, wer man ist, gibt es den Befehl "whoami". Ganz einfach, wenn man's weiß. ;) Das Skript könnte s aussehen:

Code:
#! /bin/sh

#Ausgabe von whoami in eine Variable schreiben. Die `` sorgen dafür, dass nicht das Wort whoami dort
#reingeschrieben wird, sondern der Befehl ausgeführt und sein Ergebnis gespeichert wird.
WHOAMI=`whoami`
#if-statement zum Prüfen des Ergebnisses. Achtung! Die Leerzeichen in der Klammer sind wichtig! Sonst
#geht es nicht!
if [ "$WHOAMI" = "root" ]
then
echo "Du bist root"
else
echo "Du bist nicht root"
fi

Hier noch ein Link zur Weiterbildung: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

hth

Liebe Grüße

Erik
 
A

Anonymous

Gast
anderer Befehl id http://pwet.fr/man/linux/commandes/posix/id

Code:
echo "ich bin angemeldet als $(id -un)"
oder
Code:
if [ $id -u == 0 ]
  then
    echo "ich bin root"
  else
    echo "ich bin nicht root"
fi
robi
 

erikro

Newbie
Hallo zusammen,

hmmmm, das wird nichts:

Code:
erik@buero:~/copy> ./tt.sh
Mit whoami
Du bist nicht root
mit $id
ich bin nicht root
erik@buero:~/copy> su
Passwort:
buero:/home/erik/copy # ./tt.sh
Mit whoami
Du bist root
mit $id
ich bin nicht root

So gehts:

Code:
id=`id -u`
if [ $id -eq 0 ]
then
echo "ich bin root"
else
"ich bin nicht root"
fi

Liebe Grüße

Erik
 

erikro

Newbie
Hallo zusammen,

ja, so geht's auch, wobei ich diese Schreibweise irgendwie noch gruseliger finde als die bash-Syntax allgemein. Deshalb schreibe ich das lieber in eine Variable. Aber das ist sicherlich Geschmackssache. ;)

Liebe Grüße

Erik
 

erikro

Newbie
Hallo zusammen,

noch'ne Möglichkeit. Allerdings frage ich mich, wer auf die grandiose Idee gekommen ist, dass bei dem Vergleich hinter dem if zwei runde Klammern und nicht eine eckige kommen muss. :irre:

Liebe Grüße

Erik
 

/dev/null

Moderator
Teammitglied
Dumme Frage:

Der TE fragte doch:
> Wie überprüft man, ob man root-Rechte hat oder nicht und
> die Information soll an der Konsole anzeigt werden!

Die vorgeschlagenen Lösungsscripte gaben allesamt aus, ob der angemeldte User der User "root" ist.
Root-Rechte kann ich doch prinzipiell auch anderen Usern geben ... .

Duck und weg.

MfG Peter
 

harley

Hacker
/dev/null schrieb:
Root-Rechte kann ich doch prinzipiell auch anderen Usern geben ... .

Dann müssten wir mit
Code:
id -G
auch noch die GID auslesen und auf root prüfen. So hätten wir geklärt, ob jemand root (user) ist oder in root (Gruppe) ist. Trotzdem kann ein Benutzer natürlich auch noch weitergehende Rechte erhalten haben (sudo etc.) das können wir so einfach nicht testen. Hilfreich wäre zu wissen, was ausgeführt werden soll und die dafür bestehenden Rechte zu testen. Aber das will DrDelill ja vielleicht nicht ... :fies:

Micha :-D

P.S. Gibt es unter Linux eigentlich geschachtelte/vererbte Rechtevergaben: user->gruppe1->gruppe2 ?
 
Oben