suid problem
-
Hallo,
Ich muss eine Datei schreiben, welche eine gewisse Tätigkeit als root übernimmt.
Die Datei selber ist geschrieben und liest die /etc/shadow aus. (Ist natürlich nur als Test, klar, dass es ein Sicherheitsrisiko wäre.)Nun gebe ich owner/group root:
chown root:root file.sh
dann setze ich das suid bit
chmod u+s file.sh
dann setze ich noch worldreadwriteable
chmod 777 file.shdann exit, um vom superuser als normaleruser zu werden.
sh file.sh
"Permission denied"...Sollte jetzt nicht eigentlich der User, wenn er die Datei ausführt, den Auszug der /etc/shadow bekommen? Das ist jedenfalls mein Ziel und meiner Meinung nach, ist der owner ja root und das suid bit gesetzt, sogar 777!
Was mache ich falsch?
Danke für die Hilfe...lg
-
Du musst die Datei mit ./file.sh aufrufen. Wenn Du eine Shell mit der Datei als Script aufrufst, haben die [sx]-Bits von file.sh keine Auswirkung, sondern nur die von der Shell (/bin/sh).
-
Seit Einführung der bash2 (ca. 2000) wird die mit dem s-Bit gesetzte UID nicht an die von der Shell aufgerufenen Programme weitergegeben. Das soll der Sicherheit des Systems dienen.
Mit der "alten" bash1 würde Dein Skript funktionieren.