UID setzen

Hallo,

ich habe gerade ein Programm geschrieben, daß immer als root ausgeführt werden muß. In Zukunft möchte ich es aber auch mit dem normalen user ausführen können.

Ich habe gelesen, daß man die UID für sein Programm mit den Befehlen setuid() oder fork() umsetzen kann. Da der root die uid 0 hat, habe ich versucht:

setuid(0);

Das wurde vom Compiler geschluckt, hat aber nichts gebracht: Ich kann das Programm immer noch nicht als User benutzen.

Was habe ich falsch gemacht? Wie wende ich die Befehle an?

Viele Grüße,

Bernhard

Hallo,

Ich habe gelesen, daß man die UID für sein Programm mit den
Befehlen setuid() oder fork() umsetzen kann. Da der root die
uid 0 hat, habe ich versucht:

setuid(0);

Das wurde vom Compiler geschluckt, hat aber nichts gebracht:
Ich kann das Programm immer noch nicht als User benutzen.

Was habe ich falsch gemacht? Wie wende ich die Befehle an?

Du solltest einen Blick in die Anleitung werfen. Setuid kann von nicht-privilegierten Anwendern natürlich nicht genutzt werden, um eine privilegierte UID zu bekommen. Wie stellst Du Dir das denn vor? Da könnte ja jeder Spaddel als root herumfummlen.

Du solltest „sudo“ dafür nutzen, um als nicht-root programme mit root-rechten auszuführen.

http://www.courtesan.com/sudo/

Gruß

Fritze