Merhabalar,
Aşağıdaki bash scrip'ti ile değiştirebilirsin
Fakat tüm mail adreslerin şifresini random olarak değiştirmekte
Şunu da yapabilirsin, mail hesabını kaldırıp yeniden yaratabilirsin
Mail silme
/scripts/delpop
amcam2@test.test.com
Mail açma
/scripts/addpop
amcam2@test.test.com 123456 - quota 222
İçindeki mailler silinmesin istiyorsan da , bu klasörü yedekle, hesabı sil yeniden aç , bu klasörü yerine koy
mv /home/user/mail/test.test.com/amcam2/ /home/
Yetkileri düzeltmek için > /scripts/mailperm
Veya topluca şifre değişimi için;
#!/bin/bash -
#title :changeallmailpass.sh
#description :To Change password of all mail accounts in a cPanel Server
#author :Arun Ghosh
#date :20130812
#version :1.0
#usage :./changeallmailpass.sh
#notes :
#bash_version :4.2.25(1)-release
#============================================================================
genpasswd() {
tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12 | xargs
}
cat /dev/null > /root/mailaccounts.txt
CP_ACCOUNTS=`ls -1A /var/cpanel/users/`
for CP_USER in `echo -n $CP_ACCOUNTS`
do
USER_DOMAIN=`grep -i ^dns /var/cpanel/users/$CP_USER |cut -d= -f2`
for DOMAIN in `echo -n "$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 `cat $SHADOW_FILE`
do
NEW_PASS=$(genpasswd)
MD5_PASS=$(openssl passwd -1 $NEW_PASS)
user=$(echo $shadow | cut -d":" -f1)
rest=$(echo $shadow | cut -d":" -f3-)
echo -e "$NEW_PASS\t$user@$DOMAIN" >> "/root/mailaccounts.txt"
echo "$user:$MD5_PASS:$rest" >> "/home/$CP_USER/etc/$DOMAIN/shadow.tmp"
done
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"
fi
done
done