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.
usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
usermod --password $(openssl passwd -1 {password}) {username}
Debe mirar el
chpasswd
comando (si está disponible en su sabor de Linux):O bien, puede colocar un archivo que enumera userid: passwd para cada cuenta en una línea separada.
Eso es.
fuente
Dockerfile
Inspirado por la idea de Eric Smith, la combinación
openssl passwd
y elusermod -p
comando funcionaron. Generar valor hash de contraseña junto con valor de sal.Luego, copie la cadena encriptada a usermod. Asegúrese de envolverlo con comillas simples.
Compruébalo en el archivo de sombra.
fuente
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 .
fuente
funciona para mí tanto en host físico como en contenedor, para varios sistemas operativos (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)
funciona para algunos sistemas operativos, pero algunos sistemas operativos como debian9,10 mostrarán un error
can not connect to /var/run/nscd/socket
ya que usan /etc/nsswitch.conf para determinar dónde almacena la contraseña.fuente