Pero .. con fopen() estás escribiendo un archivo .. y lo que necesitas es usar el comando del S.O. que corresponda . .a todo esto todavía no aclaras si ya usas SUDO para que PHP tome el usuario que corresponde para ejecutar esas acciones .. ¿seguro que /bin/login .. lo puede abrir cualquier usuario .. o sólo el root?
Por lo demás .. el uso de fopen() no vas a obtener más resultado que el que ves .. un "resource id" ... para eso tienes las funciones fread() para leer de algún archivo abierto. Pero no sé que esperas haciendo eso .. fread() leería un archivo .. no una respuesta del S.O. .. en tal caso será la función fopen() la que arrojará algún error si no es posible abrir tal archivo ... de hecho ese /login $user .. no es un nombre de archivo válido
En su defecto deberías abrir un "socket"? .. pero para eso que quieres hacer? ..
-------------------
Parece que lo que tienes que hacer para crear un usuario es (usando SUDO):
Código PHP:
<?php
// usa SUDO para cambiar de usuario!!. al usuario root!.
$semilla = substr($nombre_usuario, 0, 2);
$password_encriptada = crypt($nombre_usuario, $semilla);
$comando = "adduser ".$nombre_usuario." -p ".$password_encriptada;
exec($comando);
?>
Otro detalle es que las contraseñas son encriptadas ... El parámetro -p es para indicar tu password y que no haga el "prompt" para pedirtela .. (revisa el manual oficial de adduser de Linux, yo no domino Linux).
Recuerda que la función exec() .. o system() o la que uses puede retornar la "salida" y el estado de la ejecución de dicha función . .usalo.
Un saludo,