hoi 
Ein Webinterface soll aus Sicherheitsgründen standardmäßig als "nobody" laufen, muss allerdings bestimmte Befehle auch als anderer User ausführen.
Daher hab ich mir gedacht, dass sich da SUID-Perl anbietet, da ich dort beliebig die UID wechseln kann...
Naja leichter gesagt als getan, denn sobald ich das SUID-Bit setze spuckt der Compiler nur noch:
Nach langem hin und her hab ich dann bemerkt, dass sobald das SUID-Bit gesetzt ist,
er "." also das aktuelle Verzeichnis aus @INC rauswirft.
Dann wolte ich mittels -I Parameter "." wieder manuell zu @INC hinzufügen:
Dann hab ichs mit -P versucht, und siehe da das Script läuft weider!
Naja allerdings hab ich mich zu früh gefreut,
denn jetzt funktioniert SUID netmehr und das Script läuft unter dem User des Webservers...
Jemand ne Idee?
MFG - Keks
Ein Webinterface soll aus Sicherheitsgründen standardmäßig als "nobody" laufen, muss allerdings bestimmte Befehle auch als anderer User ausführen.
Daher hab ich mir gedacht, dass sich da SUID-Perl anbietet, da ich dort beliebig die UID wechseln kann...
Naja leichter gesagt als getan, denn sobald ich das SUID-Bit setze spuckt der Compiler nur noch:
aus. Dieses Modul wird via use eingebunden, und befindet sich im aktuellen Verueichnis unter angegebenem Pfad, sprich ./functions/base/output.pmCan't locate functions/base/output.pm in @INC ...
Nach langem hin und her hab ich dann bemerkt, dass sobald das SUID-Bit gesetzt ist,
er "." also das aktuelle Verzeichnis aus @INC rauswirft.
Dann wolte ich mittels -I Parameter "." wieder manuell zu @INC hinzufügen:
War wohl nix... auch den absoluten Pfad will er net, und -U bringt auch nix...No -I allowed in suidperl.
Dann hab ichs mit -P versucht, und siehe da das Script läuft weider!
Naja allerdings hab ich mich zu früh gefreut,
denn jetzt funktioniert SUID netmehr und das Script läuft unter dem User des Webservers...
Jemand ne Idee?
MFG - Keks