
Mein Betriebssystem ist Fedora 24 und ich habe versucht, die Suid-Bit-Funktionalität zu testen.
Ich habe unten bash als Setuid.bash geschrieben:
#!/bin/bash
if [ $USER = 'root' ]
then
echo "Like Root Run"
echo "Root User Add in " $(date) >> /etc/SetUid
else
echo "Other User Run"
echo $USER "User Add in " $(date) >> /etc/SetUid
fi
mit -rwsrw-r-x. 1 root root 249 May 21 14:45 /bin/Setuid.bash
Genehmigung und-rwx------. 1 root root 432 May 21 14:45 /etc/SetUid
Als ich es jetzt /bin/Setuid.bash
als Root versuchte, erhielt ich Folgendes:
Wie Root Run
aber wenn Sie das mit ausführenPrüfenBenutzer, dem ich begegnet bin:
Anderer Benutzerlauf
bin/Setuid.bash: Zeile 8: /etc/SetUid: Berechtigung verweigert
Ich wäre Ihnen dankbar, wenn mir jemand sagen könnte, wo mein Weg falsch ist.
Antwort1
(und andere Shell-Interpreter) haben schon vor langer Zeit bash
integrierte Sicherheitsmaßnahmen gegen den Suid-(Missbrauch) hinzugefügt, da dieser gefährlich ist/war.Gefahren von SUID-Shell-Skripten
Bash-Skripte können nicht mit gesetztem Suid-Bit ausgeführt werden. Erstens erlaubt Linux keine Skripte mit Setuid, obwohl dies bei einigen anderen Betriebssystemen der Fall ist. Zweitens erkennt Bash, wenn es als Setuid ausgeführt wird, und entzieht ihm sofort die Berechtigungen.
Dies liegt daran, dass die Sicherheit von Shell-Skripten viel stärker von der Umgebung abhängt als bei normalen C-Apps.
Letztendlich ist das Suid-Bit heutzutage hauptsächlich für ausführbare Binärdateien nützlich. Eine Möglichkeit, ein solches Skript/Bash auszuführen, besteht darin, es aus einer mit Suid kompilierten Binärdatei aufzurufen.