Current File : //scripts/change-email.sh
#!/bin/bash

# Autor: pilcha
# Fecha: 20181116
# Nombre: change_email_password
# Uso: Cambio de password desde consola para cuentas de email
#============================================================================

if [ $# -ne 1 ] ; then
    echo -e "\nUso: $0 MAIL\n"
    exit 1
fi

echo -e "\\n\\x1B[01;91m Verifico si esta instalado el pwgen \\x1B[0m\\n"

if ! [ -x "$(command -v pwgen)" ]; then
    VER=$(grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d"." -f1)
    if [ "$VER" = "6" ]; then
    echo -e "\\x1B[01;91m Es Centos 6, instalo el rpm \\x1B[0m"
    wget http://www.ferozo.net/pwgen/pwgen-2.08-1.el6.x86_64.rpm
    rpm -i pwgen-2.08-1.el6.x86_64.rpm ; else
    echo -e "\\x1B[01;91m Es Centos 7 lo instalo vía yum \\x1B[0m"
    yum install -y pwgen
    exit 1
    fi
fi

echo

CP_ACCOUNTS=`ls -1A /var/cpanel/users/`
USER_ACC=`echo $1 | cut -d@ -f1`

for CP_USER in $CP_ACCOUNTS ; do
    USER_DOMAIN=`grep -i ^dns /var/cpanel/users/$CP_USER |cut -d= -f2`
    for DOMAIN in $USER_DOMAIN ; do
        SHADOW_FILE="/home/$CP_USER/etc/$DOMAIN/shadow"
        if [ -f $SHADOW_FILE ] && [ -s $SHADOW_FILE ] ; then 
            cat /dev/null > "/home/$CP_USER/etc/$DOMAIN/shadow.tmp"
            for shadow in `grep $USER_ACC $SHADOW_FILE | cut -d@ -f1` ; do
                NEW_PASS=`pwgen -s 12 -1`
                MD5_PASS=$(openssl passwd -1 $NEW_PASS)
                rest=$(echo $shadow | cut -d":" -f3-)
                USER_ACC_SHADOW=`cat $SHADOW_FILE | grep $USER_ACC: `
                sed -i "/$USER_ACC:/d" "/home/$CP_USER/etc/$DOMAIN/shadow"
                echo -e "$NEW_PASS\t$1" > "/root/mailaccounts.txt"
                echo "$USER_ACC:$MD5_PASS:$rest" >> "/home/$CP_USER/etc/$DOMAIN/shadow"
            done
       fi
    done
done

echo -e "\n\x1B[01;91m Datos de acceso \x1B[0m\n"
cat /root/mailaccounts.txt
echo

exit 0