Michael Schröpl: Falschen Button gepresst...

Beitrag lesen

Hi,

Gibt es nicht eine Moeglichkeit, den User waehrend des Ablaufs des CGI-Skriptes zu wechseln, dann den Cronjob einzurichten und wieder abzumelden?

für ein Programm: Kaum.
Das Problem ist u. a., daß die üblichen Mechanismen zum Wechseln einer Benutzerkennung eine Dialogeingabe (Passwort) fordern (und damit meine ich nicht stdin, sondern wirklich physikalisch Tastatur). Das zu emulieren kriegt Dein Programm nicht hin.

Statt dessen gibt es unter UNIX generell die Möglichkeit, mit dem s-Bit zu arbeiten.
Wenn Du ein Programm (Vorsicht! Dies ist nicht identisch mit 'Perl-Skript'!) hast, welches einer bestimmten Benutzerkennung gehört (chown) und ein bestimmtes Bit gesetzt hat (chmod +s), dann *kann* das bewirken, daß dieses Programm unter der Benutzerkennung seines Owners ausgeführt wird.
Du darfst sicherlich Programme unter Deiner Kennung per FTP auf den Server laden.
Mit einem guten FTP-Client oder Telnet kannst Du auch das s-Bit setzen.

Bei einem Perl-Skript besteht aber das Problem, daß nicht etwa das Skript selbst 'ausgeführt' wird, sondern letztlich der Perl-Interpreter (der das Skript liest und *interpretiert*) - und dieser unter der Kennung, die ihn aufgerufen hat.
Wärest Du in der Lage, auf dem Server ein kleines C-Programm zu kompilieren, welches über system() das crontab-Kommando absetzt, dann könntest Du dieses Programm (mit s-Bit) unter der Kennung ausführen lassen, unter der es angelegt wurde.
(Vorausgesetzt, im Webserver sind nicht wiederum Sicherheitsmechanismen aktiv, welche die Ausführung eines s-Bit-Programms verhindern ... es gibt gegen die meisten Tricks eben auch Verteidigungsmöglichkeiten für den Server-Administrator).

mfG - Michael