Veröffentlicht 8. Oktober 200322 j 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
8. Oktober 200322 j Autor 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
7. Dezember 200420 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.