* Erich Lindner schrieb am 28.Nov.2002:
Wie legst Du denn die Datei an? Wenn Du z.B system verwendest, funktioniert es, aus den gleichen Gründen wie bei der shell direkt,
^^^^^^^^^^^^^^
nicht. Siehe man system und da unter BUGS.
heisst das, dass der Programmaufruf als user "wwwrun" von der Kommandozeile das gleiche Problem verursacht, und wg. mangels Rechte die Ausfuehrung abgebrochen wird.
Du mußt Dein C-Programm umstricken. So wie Du es gemacht hast, also mit der Funktion system() funktioniert es nicht. Die Funktion system() nimmt das SUID-Bit weg. Genauso, wie es die bash tut, und mit genau der gleichen Begründung
also zuerst "su" root-Passwort und dann "su wwwrun"
Ob Du zuerst root warst oder nicht ist vollkommen schnurtz. Falls wwwrun ein Paßwort hat, kannst Du auch gleich su wwwrun wwwrun-Passwort eingeben. Macht wirklich keinen Unterschied.
und dann "/sbin/boxprog start"
/sbin/boxprog muß anders programmiert werden, ohne system() stattdessen mit fopen(), fclose() und fprintf() und gegebenenfalls auch mit execve() und fork() Bernd -- Bitte die Etikette beachten: http://www.suse-etikette.de.vu/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4