Puedes usar chpasswd
para hacerlo, así:
echo "username:newpassword" | chpasswd
Puede canalizar en chpasswd
de programas que no sean echo
, si es conveniente, pero esto funcionará.
Editar:para generar la contraseña dentro del script de shell y luego establecerla, puede hacer algo como esto:
# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd
Para más información sobre chpasswd
, consulte http://linux.die.net/man/8/chpasswd
(El comando para generar la contraseña fue de http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html)
Puede usar OpenSSL para generar la contraseña aleatoria (16 caracteres, en este caso):
# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')
Luego alimenta la contraseña hash a useradd
o usermod
# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>
EDITAR:
Desde que se publicó esto en 2012, las versiones más nuevas de OpenSSL han agregado funcionalidad al openssl passwd
dominio. En lugar de usar el -1
opción para obtener un hash basado en MD5, las versiones modernas también admiten -5
para hashes basados en SHA256 y -6
para hashes basados en SHA512.
Crédito donde corresponda:la generación de contraseñas se adapta a partir de un método similar que usa /dev/urandom
en lugar de openssl
.
añadir usuario debería funcionar (lo he hecho en Ubuntu). Tal vez verifique que cada uno de sus argumentos sea correcto (los grupos existen, el camino es correcto para bash). Puede ejecutar el comando con solo una contraseña y un usuario, y luego usar userdel para eliminar y luego volver a intentar con más parámetros, para ver cuál causa el problema (enfoque de fuerza bruta).
También hay nuevos usuarios (vea la página de manual), al menos en Ubuntu, donde le da un archivo con información de archivo passwd, incluidas las contraseñas de texto sin formato y creará esos usuarios. Buena manera de hacer muchos usuarios a la vez.