Suid-Skript funktioniert nicht richtig

Suid-Skript funktioniert nicht richtig

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.bashGenehmigung und-rwx------. 1 root root 432 May 21 14:45 /etc/SetUid

Als ich es jetzt /bin/Setuid.bashals 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 bashintegrierte Sicherheitsmaßnahmen gegen den Suid-(Missbrauch) hinzugefügt, da dieser gefährlich ist/war.Gefahren von SUID-Shell-Skripten

AusWarum Bash so ist: suid

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.

verwandte Informationen