Niby tak, ale...
1. Na linuksach (i innych unixach) apache nie chodzi z uid=0, więc wykonanie skryptu się nie powiedzie, bo nie-root nie da rady dodać usera do systemu. Apache jest URUCHAMIANE przez administratora (by dopiąć się do portu <1024) i "zrzuca" swoje prawa na uid różny od zera. Nazwa usera (i zarazem nazwa grupy) to najczęściej "apache", "httpd", "www" czy "www-data". Zwykły, nieuprzywilejowany użytkownik.
2. binarka jest "niby" wygodniejsza, można dać jej SUID, czyli "sticky bit UID" - prawa uniksowe 4750, ustawić właściciela na roota, a grupę na tę grupę, do której należy Apache (np. "www"), i się wykona z prawami roota. Czterocyfrowy chmod: pierwsza cyfra "4" mówi, że program wykonuje się z prawami tego użytkownika, który jest właścicielem pliku (tu: root). A reszta klasycznie: pełne prawa dla właściciela (którym jest root), prawa "rx" dla członków grupy "www" (czyli tej grupy, której członkiem jest user, którego prawa ma Apache i żadne prawa dla innych (w samym systemie też bywają "źli ludzie").
3. Jeśli Apache jest w środowicku chrootowanym (chroot/jail), to nawet suid nie pomoże - w głównym systemie nie zrobimy nic.
Ma to wady:
- napisanie własnego programu przez niefachowca to zawsze spora szansa na zrobienie dziury, a jak jeszcze "źli ludzie" się zwiedzą, to będzie nieciekawie
Swoją drogą... mając UID=0 (czyli prawa roota) jestem w stanie trzema komendami echo (i jedną "mkdir") dodać usera do systemu i nadac mu grupę, i nie ma w tym żadnej filozofii, w pierwszych uniksach taka była JEDYNA metoda na dodanie nowego usera do systemu

- więc napisanie skryptu może odbyć się "bardzo szybko"
Proponuję metodę pośrednią:
- Apache zapisuje sobie dane userów w pliku w katalogu serwera WWW
- z crona uruchamiasz zwykłego skrypta, który już operuje z prawami dowolnego usera w systemie (czyli może także działać z prawami roota) i założy Ci tego usera... Ale to oczywiście jest wada porównywalna z binarką wystawioną w drzewie serwera WWW.
Ma to zalety:
- zadziała w środowisku chrootowanym
- możesz sobie dowolnie posprawdzać wszystkie dane "już na spokojnie".
...ale i wady:
Nie jesteś w stanie "online" poinformować usera o fakcie założenia konta, ani tym bardziej zwrócić mu informacji, że np. login jest już zajęty. Przetwarzasz plik w cronie, czyli z granulacją conajmniej minutową.
P.S.
można jeszcze korzystać z sudo, ale to też gimnastyka...