Pico Geschrieben 8. Oktober 2003 Geschrieben 8. Oktober 2003 Hallo, folgendes Problem: ich muss einen User in Linux anlegen per PHP ohne zu grosse Sicherheitslücken aufzureissen. Folgende Möglichkeiten habe ich schon überdacht/ausprobiert: 1. Das Suid Bit auf das Script setzen, leider funktioniert das nur bei ausführbaren Programmen (soweit ich das verstanden und probiert hatte) 2. sudo ... ich habe die sudoers meiner meinung richtig editiert: Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd root ALL=(ALL) ALL otto ALL = NOPASSWD: USERVERWALTUNG der user kann auch erfolgreich einen user anlegen (zwar ist einmal die passwort eingabe erforderlich aber das werd ich auch noch hinbekommen) sogleich versuchte ich dieses mit einem php script im www verzeichnis des user durchzuführen <?PHP echo '<pre>'; $last_line = system('sudo /usr/sbin/useradd', $retval); echo '</pre> <hr>Last line of the output: '.$last_line.' <hr>Return value: '.$retval; ?> [/PHP] useradd habe ich extra ohne parameter benutzt, mit parameter kommt das gleiche ergebnis: ich bekomme eine return value von 1 sonst passiert nichts. mittlerweile bin ich auf den trichter gekommen das der befehl als user "apache" ausgeführt wird, also habe ich ihn auch im sudoers file geaddet, er hat also die rechte für das command, aber er führt das command nicht wirklich aus. falls jemand eine einfachere lösung einfallen sollte einen user in linux anzulegen per php immer her damit danke im vorraus und gruß pico
Pico Geschrieben 8. Oktober 2003 Autor Geschrieben 8. Oktober 2003 hat sich erledigt hab das ganze mit einem kleinen c programm gelöst worauf der user 'apache' mit sudo rechte drauf hat, brauch nur noch per exec das programm ausführen in php gruß pico
Turael Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 also ich hab einfach Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd root ALL=(ALL) ALL und dann dem user für apache standardt ('wwwrun') wwwrun ALL = NOPASSWD: USERVERWALTUNG im script dann system (sudo useradd -g users -d /home/$username -s /bin/false -m -k /www/default $username); das läuft auch ohne c programm
Wolle Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 Bist nur etwas spät dran mit dem Post. Der Thread ist schon über ein Jahr alt
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden