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