¿Cómo establecer contraseñas de usuario usando passwd sin un aviso?


21

Estoy escribiendo un script para agregar una gran cantidad de usuarios a un sistema. Parte de esto implica establecer contraseñas predeterminadas para cada usuario. ¿Cómo puedo configurar las contraseñas de los usuarios sin que se me solicite la contraseña por adelantado?

Lamentablemente, passwd no parece tomar un argumento que indique la nueva contraseña para establecer. Estoy usando Ubuntu 11.10.

Respuestas:


22

Prueba usermod:

usermod --password PASSWORD USERNAME

Lo único es que esto necesita una cadena de contraseña preencriptada que primero debería generar.


1
... que puedo generar usando mkpasswd. ¡Excelente, gracias!
Jake Petroules

16
También puede usar openssl para generar la contraseña cifrada. Por ejemplo:usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
Eric Smith

1
Tres años demasiado tarde. No pude responder @EricSmith, pero descubrí una versión más simple del comando que funcionó:usermod --password $(openssl passwd -1 {password}) {username}
BoCoKeith

13

Debe mirar el chpasswdcomando (si está disponible en su sabor de Linux):

echo 'userid:newpasswd' | chpasswd

O bien, puede colocar un archivo que enumera userid: passwd para cada cuenta en una línea separada.

Eso es.


esto funcionó para mí enDockerfile
Vishrant

1

Inspirado por la idea de Eric Smith, la combinación openssl passwdy el usermod -pcomando funcionaron. Generar valor hash de contraseña junto con valor de sal.

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

Luego, copie la cadena encriptada a usermod. Asegúrese de envolverlo con comillas simples.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

Compruébalo en el archivo de sombra.

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::

0

Debe usar el envejecimiento de la contraseña y configurar los usuarios para que cambien su contraseña en el primer inicio de sesión. Ver este artículo .


Estos pretendían ser cuentas solo de FTP, pero un buen consejo. ;)
Jake Petroules

0
(echo user; echo password) | passwd

funciona para mí tanto en host físico como en contenedor, para varios sistemas operativos (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)

echo user:password | chpasswd

funciona para algunos sistemas operativos, pero algunos sistemas operativos como debian9,10 mostrarán un error can not connect to /var/run/nscd/socketya que usan /etc/nsswitch.conf para determinar dónde almacena la contraseña.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.