PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell_exec() als root



simcen
20-06-2003, 10:37
Hallo

Ich programmiere mir gerade ein Administrations-System für meinen Webserver zusammen in PHP.

Bereits in den Anfängen bleibe ich hängen.

Da ich auch User hinzufügen muss, brauche ich die shell_exec() funktion. Leider erlaubt mir diese nicht, den Befehl useradd auszuführen, da Apache nicht unter root läuft (Boah ). Gibt es eine Möglichkeit, dieses Problem zu umgehen?

Gruss simcen

xstevex22
20-06-2003, 17:04
Hi!
Vielleicht kannst du das über die /etc/sudoers regeln. Füge die Zeile:

apache ALL=NOPASSWD:/usr/sbin/useradd

ein, und in deimem PHP Skript machst du dann ein shell_exec('sudo /usr/sbin/useradd ...');

robiotor
25-06-2003, 21:20
apache rennt unter nobody, wenn dann so

nobody ALL=NOPASSWD:/usr/sbin/useradd

mehlvogel
01-07-2003, 20:28
dann könnte (imho) jeder nutzer der ein skript auf das Ding liegt useradd ausführen....

Ich habe das so gemacht:

Hab nen C Programm geschrieben was einen Befehl ausführt (per sudoers freigeschaltet) - diese Skript pürft aus welchem Verzeichnis es aufgerufen wird (per Environment Vars) und noch ein zwei andere "checks" - aber so geht das eigentlich ganz gut.

phoku
02-09-2003, 23:15
Hallo,
noch eine Frage hierzu:

Wie kann sich ein C-Programm Rechte als root verschaffen?

Jana
03-09-2003, 08:57
Eine Menge Leute haben schon ein Administrations-System für Webserver
programmiert.
Nimm doch einfach deren Programm und programmiert noch das fehlende Modul hinzu.
http://www.webmin.com

Gaert
03-09-2003, 09:29
Für jemanden der nur PHP kann wird das beim auf Perl basierenden Webmin recht schwierig... ;)

mehlvogel
12-09-2003, 14:53
Original geschrieben von phoku
Hallo,
noch eine Frage hierzu:

Wie kann sich ein C-Programm Rechte als root verschaffen?

Das Programm gehört root und hat suid. sudo kontrolliert das ganze

Jinto
13-09-2003, 18:06
Original geschrieben von mehlvogel
dann könnte (imho) jeder nutzer der ein skript auf das Ding liegt useradd ausführen....

Ich habe das so gemacht:

Hab nen C Programm geschrieben was einen Befehl ausführt (per sudoers freigeschaltet) - diese Skript pürft aus welchem Verzeichnis es aufgerufen wird (per Environment Vars) und noch ein zwei andere "checks" - aber so geht das eigentlich ganz gut. Worin liegt da deiner Meinung nach der Vorteil?