useradd



  • Hi folgender Code treibt mich in den Wahnsinn:

    char *param[]={"useradd", "-s /bin/false", usrname, NULL};
    char *umg[]={"PATH=/usr/sbin", NULL};
    execve("/usr/sbin/useradd", param, umg);
    delete[] usrname;
    

    Wenn ich dieses Programm über den Browser aufrufe legt er mir zwar den User an aber eben nicht mit /bin/false als shell sondern mit /bin/bash ich möchte aber
    vermeiden das sich die User einloggen können. usrname lese ich aus QUERY_STRING aus.(ja ich hab Hallo;rm -rf abgefangen)

    MFG eiskalt



  • (ja ich hab Hallo;rm -rf abgefangen)

    das macht nichts, da du ja die Argumente nicht an die Shell übergibst, wenn jemand "Hallo;rm -rf" angibt, legst du eben nur den User "Hallo;rm -rf" an 🙂

    zum Problem
    Du musst als Argument

    "-s","/bin/false"

    angeben!



  • andere Frage noch

    wenn ich mittels

    useradd -p passwd benutzername
    

    einen Benutzer anlege dann habe ich das bei passwd angegeben Passwort als
    Klartext in mein shadow-datei drinstehen folglich kann sich der user auch nicht
    einloggen.

    wenn ich dass Passwort ändere mittels

    passwd username
    

    gehts aber das Problem ist das ich ein CGI-script Programmieren muss mit dem ich passwörter vergeben kann und ich habe keine Ahnung wie das mit passwd funktionieren soll.

    MFG eiskalt


Anmelden zum Antworten