Cambiar la clave de muchos usuarios

Imagen de Epe

Supón que quieres cambiar la clave de un listado de usuarios que esté en /root/cuentas, este archivo /root/cuentas contendrá un usuario por cada línea.

existe una herramienta llamada chpass a la cual tu le puedes pasar con echo usuario:nuevaclave y se ocupa de cambiarle la clave así de simple.

este script hace uso del paquete ranpwd para crear una clave aleatoria:

wget http://centos5.ecualinux.com/i386/ranpwd-1.2-2.i386.rpm
rpm -Uvh ranpwd*.rpm

Entonces creo el siguiente script, le llamé cambiamasivo.sh :

#!/bin/bash

for cuenta in `cat /root/cuentas`
do
clave=`ranpwd -a`
echo $cuenta:$clave
echo $cuenta:$clave | chpasswd
done
exit 0

y listo! El script se ocupará de poner en pantalla la nueva clave para que la guardes.

Si deseas cambiar la clave a TODOS los usuarios con uid>=500 podrías hacer así (cuidado, no pregunta, simplemente cambiará!):

#!/bin/bash

for cuenta in `awk -F: '$3 > 499 {print $1}' /etc/passwd`
do
clave=`ranpwd -a`
echo $cuenta:$clave
echo $cuenta:$clave | chpasswd
done
exit 0