
Quiero crear un nuevo usuario en un grupo específico cuando emito el siguiente comando.
sudo ./create_user.sh "test" "firstname lastname"
El create_user.sh
guión se ve a continuación.
#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1
Sin embargo, el problema es que tengo que evitar la inserción de contraseña (debería ser simplemente una prueba) con un documento aquí, pero no tengo idea de la sintaxis.
Probé algunas soluciones pero ninguna pareció funcionar.
Así es como se ve mi intento del documento aquí en el script
#<< EOF
#test
#test
#EOF
mi salida se ve así
#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:
Respuesta1
adduser
llama a la passwd
utilidad para establecer una contraseña. Como muchos programas que solicitan una contraseña, passwd
insiste en que su salida provenga de una terminal. Por lo tanto, no puede pasar la entrada a través de un documento aquí, lo que crea un archivo temporal o una tubería y passwd
no acepta ninguno de los dos.
Puede pasar adduser
(al menos la versión Debian) la --disabled-password
opción si no desea poder iniciar sesión con una contraseña (aún podrá iniciar sesión con otros métodos, como claves SSH, si las configura) . adduser
no tiene una opción para pasar el hash de la contraseña (no la contraseña en sí), pero useradd
sí la tiene el conjunto de utilidades de contraseña oculta de Linux.
Si desea ingresar una contraseña durante la creación de la cuenta, asegúrese de que passwd
se lea desde el terminal. Si obtiene la contraseña de alguna otra fuente (por ejemplo, un formulario web), llame passwd
desde unesperarguion - ejemplo.
Si se trata de un ejercicio de uso de un documento aquí, la contraseña no es el lugar donde debe usarla. No veo ningún problema que un documento aquí pueda resolver en lo que has publicado.