Zimbra: Resetear password para un listado de cuentas

Imagen de iknaxio

Tema: 

Esta tarde estuve trabajando en la creación de un script que nos permitiera resetear los password de un listado voluminoso de cuentas de correo electrónico de una implementación de Zimbra. Si no fuese por el script nos hubiese tocado resetear las claves una a una desde la consola gráfica de administración :S

El script lo bauticé como resetPasswd.sh, es bien sencillo y fácil de usar:


./resetPasswd.sh

<FILE> es la ruta del archivo que contiene el listado de las cuentas de correo electrónico en el siguiente formato:


imarx@miempresa.com.ec
ehinojosa@miempresa.com.ec
jfranco@miempresa.com.ec
...

<NEW_PASSWORD> es el nuevo password que voy a colocar a todas las cuentas del listado.

  • Nota: En mi caso, para generar los archivos utilice la siguente instrucción:


    /opt/zimbra/bin/zmprov -l gaa miempresa.com.ec | grep ventas > /tmp/usuarios-ventas-07032012.txt

    Me ayudé del comando grep para encontrar un patrón específico que identifica a mis cuentas, de no existir dicho patrón toca generar el listado completo y depurarlo manualmente, aunque eso sigue siendo más rápido que hacer todo el proceso desde la consola gráfica jejeje

Ahora sí, con Ustedes, el bendito script :D:


#!/bin/sh
## Iknaxio Marx - 07/03/2012
## Resetear el password de un listado de cuentas
##
## Uso:
## ./resetPasswd.sh
##

echo ""

if [ $# -ne 2 ]
then
echo "Argumentos incorrectos!!!"
echo " Uso: ./resetPasswd.sh "
echo ""
exit -1
fi

if [ -r $1 ]
then
ACCOUNTS=`cat $1`

for ACCOUNT in $ACCOUNTS
do
echo -e "- $ACCOUNT..."
/opt/zimbra/bin/zmprov sp $ACCOUNT $2
/opt/zimbra/bin/zmprov ma $ACCOUNT zimbraPasswordMustChange TRUE
done

else
echo "El archivo $1 no existe!!!"
exit -1
fi

Espero que les sirva.

Salu2

Comentarios

Para forzar el cambio de contraseña

Imagen de iknaxio

Para forzar el cambio de contraseña, simplemente agregamos la siguiente línea:


/opt/zimbra/bin/zmprov ma $ACCOUNT zimbraPasswordMustChange TRUE

Quedando el ciclo de la siguiente manera:


for ACCOUNT in $ACCOUNTS
do
echo -e "- $ACCOUNT..."
/opt/zimbra/bin/zmprov sp $ACCOUNT $2
/opt/zimbra/bin/zmprov ma $ACCOUNT zimbraPasswordMustChange TRUE
done

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net