[linux-l] Datum in Script verwenden

Frank Reker frank at reker.net
Di Apr 10 04:43:20 CEST 2007


Am Mon 09. Apr 2007 21:22 +0200 schrieb Jan-Benedict Glaw:

[...]
>...und jetzt stelle man sich mal vor, da liegt irgendwo ein Script,
>daß SetUID-root ist, aber von Nicht-root-Usern blitzschnell
>ausgetauscht werden könnte. Dabei geht natürlich das SUID-Bit verloren
>(irgendwas ist ja immer...) aber mit etwas Glück findet der Austausch
>zwischen (4) und (5) statt.  Schon könnte ein User von ihm
>bestimmbaren Code mit root-Rechten (bzw. der Original-UID oder -GID
>des Scriptes) ausführen.

nun, den fall halte ich fuer sehr konstruiert:
1) ist er praktisch kaum realisierbar.
2) nur durchfuehrbar, wenn der benutzer auf die datei oder
   ein pfadelement schreibrechte hat. und wenn ein sysadmin
   benutzern schreibrechte gibt UND die datei setuid setzt,
   dann gehoert er bestraft ;-)
3) haette man dieses time-raise-problem elegant mit file-locks
   loesen koennen, anstatt mit der holzhammermethode.

das problem ist vielmehr das, dass es sehr schwer ist fehlerfreie
shell(!)scripte zu schreiben. man denke sich den fall:
for i in /tmp/bin/*; do rm -Rf "$i"; done
sollte theoretisch alles in /tmp/bin rekursiv loeschen. aber wenn
man den slash (/) zu IFS hinzufuegt und das script aus / ausfuehrt
dann wird mind. /tmp und /bin (evtl. auch andere datein/verz.) 
geloescht. (nein das hab ich jetzt nicht getestet ;-))

zwar kann man, wenn man sich einige muehe gibt solche probleme
vermeiden, aber unter linux-entwicklern herrscht seit einiger zeit
die mentalitaet vor, den benutzer in sicherheitsfragen zu entmuendigen.

in anderen unixen ist setuid in scripten nach wie vor moeglich.
unter linux war es bis einschliesslich 2.2.x moeglich. ab 2.4 nicht
mehr.

mit hilfe von sudo kann man scripte uebrigens nach wie vor mit root
rechten ausfuehren. und wenn man das will kann man sudo auch in
die #!-zeile mit einbauen. man muss dann halt zusaetzlich noch sudo
konfigurieren.


-- 
Don't worry be happy ...
Ciao Frank
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20070410/1236b16b/attachment.sig>


Mehr Informationen über die Mailingliste linux-l