Ba, tu vai ter que fazer várias coisas.
Primeiro, coloca no sudo o comando ou o arquivo php que vai conter o código pra adicionar.
No meu caso, coloquei no sudo o comando mesmo.
Daí lá no php eu fiz assim:
<? exec("sudo /usr/sbin/useradd -s /bin/bash -d $diretorio $usuario -p $senha");?>
Se estiver tudo certinho (sudo, grupos, permissões) ele deve inserir.
Aí pra listar a única forma que encontrei foi ler o /etc/passwd com o php, pegar as linhas, separar as string e mostrar os usuários.
Qualquer coisa vai perguntando ae.