Pico Geschrieben 8. Oktober 2003 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pico Geschrieben 8. Oktober 2003 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Turael Geschrieben 7. Dezember 2004 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 7. Dezember 2004 Teilen Geschrieben 7. Dezember 2004 Bist nur etwas spät dran mit dem Post. Der Thread ist schon über ein Jahr alt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.