useradd(8) skapar du konton med.
Men det verkar inte som en bra idé att anropa det från ett PHP-script, eftersom det kräver root-rättigheter för att skapa konton, och då måste du köra webservern med root-rättigheter - och det luktar juh säkerhetshål lång väg.
Gör istället ett litet c-program (kan juh vara pascal oxo =)) som anropar useradd(8) efter att ha gjort lite sanitychecks kanske. Se till att programmet blir suid->root bara.
så kommer "rm -rf /" köras som samma användare som webservern kör med. Förhoppningsvis har inte webservern såna rättigheter.
Men för att vara på den säkra sidan kan du juh lägga till ngn regexp-koll på kontonamnet (kolla PHP-forumet, tyckte jag såg en sån regexp där nyss).
Sen kan du lägga till lite kontroller i ditt externa program oxo, så att det inte går att lura - kom ihåg att lokala användare antagligen kommer komma åt det här programmet.
262 ms totalt · 4 externa anrop · v20260731065814-full.868a69e5