Tuntutan seorang administrator yang harus selalu aktif dan mobile membuat saya harus mengetahui segala troubleshoot dari command line. termasuk mengganti password email dari command line cPanel

berikut ini terlampir bash script untuk mengganti password single email account

Mengganti password email dari command line cPanel

#!/bin/bash -  
#title          :changemailpass.sh
#description    :To change password of a single mail account in cPanel via terminal
#author         :Arun Ghosh
#date           :20130811
#version        :1.0   
#usage          :./changemailpass.sh
#notes          :      
#bash_version   :4.2.25(1)-release
#============================================================================

MAIL_USER=$1
NEW_PASS=$2

MAIL_FLAG=false
DOMAIN=$(echo $MAIL_USER | cut -d"@" -f2)
MAIL=$(echo $MAIL_USER | cut -d"@" -f1)

EXIST=`grep ^$DOMAIN /etc/userdomains`

if [ "$EXIST" ]
then

CP_USER=`grep ^$DOMAIN /etc/userdomains | cut -d":" -f2 | tr -d ' '`
SHADOW_FILE="/home/$CP_USER/etc/$DOMAIN/shadow"

cat /dev/null > "/home/$CP_USER/etc/$DOMAIN/shadow.tmp"
for shadow in `cat /home/$CP_USER/etc/$DOMAIN/shadow`
do

pass=$(openssl passwd -1 $NEW_PASS)
user=$(echo $shadow | cut -d":" -f1)
rest=$(echo $shadow | cut -d":" -f3-)

if [ "$user" == "$MAIL" ]
then
MAIL_FLAG=true
echo "$user":$pass:$rest >> /home/$CP_USER/etc/$DOMAIN/shadow.tmp
else
echo $shadow >>/home/$CP_USER/etc/$DOMAIN/shadow.tmp
fi

done

if [ $MAIL_FLAG = false ]
then
echo "$1 not exists..!!";
elif [ $MAIL_FLAG = true ]
then

echo "$1 password changed to: $2"
fi
mv "/home/$CP_USER/etc/$DOMAIN/shadow" "/home/$CP_USER/etc/$DOMAIN/shadow.$(date +%s)"
mv "/home/$CP_USER/etc/$DOMAIN/shadow.tmp" "/home/$CP_USER/etc/$DOMAIN/shadow"
chmod 640 "/home/$CP_USER/etc/$DOMAIN/shadow"
chown $CP_USER:$CP_USER "/home/$CP_USER/etc/$DOMAIN/shadow"
else
echo "Domain not in the server"
fi

lalu edit simpan dengan nama changemailpass.sh dan edit permission file-nya menjadi:

chmod 755 changemailpass.sh

untuk menjalankan perintah diatas gunakan perintah dibawah ini
# ./changemailpass.sh <mail_account> <newpassword>

selamat mencoba