¡Estaba creando una aplicación GUI para administrar usuarios y grupos en Linux!
Terminé con la parte donde crea un nuevo usuario, pero me quedé con la parte donde le da al usuario recién creado una nueva contraseña.
Lo que mi aplicación simplemente hace es tomar la entrada requerida (nombre de usuario, lista de grupos y contraseña) a través de una GUI y ejecuta un script que pasa esta información como argumento.
Digamos que tenemos una cuenta de usuario, xyz.
Si quiero cambiar la contraseña de esta cuenta, entonces todo lo que necesita hacer es simplemente ejecutar el comando:
passwd xyz
Esto le pedirá una nueva contraseña. Ahora puedo crear una nueva cuenta usando scripts porque toda la información requerida se pasa en la línea de comandos.
useradd -m -G users -g "groups" -s /bin/bash "UserName"
Puedo ejecutar un script a través de la aplicación Qt y crear el usuario, pero
en passwd cmd
, la entrada se solicita en la otra línea. ¿Cómo lidia uno con eso?
Respuesta aceptada:
Creo que la respuesta correcta aquí es:no utilice una herramienta de línea de comandos:use una llamada de biblioteca . Esto le permitirá manejar mejor los errores y evitará el riesgo de pasar la contraseña en una línea de comando.
Una biblioteca que puede usar es libuser, que es relativamente simple y tiene enlaces C y Python.