首页 » 邮件技术 » Zimbra批量重置所有用户密码

Zimbra批量重置所有用户密码

 

维护过Zimbra邮件系统的同学都知道,Zimbra不管是后台WebAdmin还是zmprov命令都不能实现批量重置所有用户的密码,最近上线的Zimbra有这个需要,刚巧就在国外某技术网站就找到了解决这个问题的办法,下面就记录一下。

原理:
使用脚本获取所有用户信息字段,并批量针对每一个用户执行zmprov命令重置其密码,以此达到重置所有用户密码的需求。

方法:
1、创建一个批量修改密码的脚本文件changepassword.sh,脚本内容如下:

#!/bin/bash
clear
USERS=`su - zimbra -c 'zmprov -l gaa example.com'`;
for ACCOUNT in $USERS; do
ACC1=`echo $ACCOUNT | awk -F@ '{print $1}'`;
ACC=`echo $ACC1 | cut -d '.' -f1`;
if [ $ACC == "admin" ] || [ $ACC == "wiki" ] || [ $ACC == "galsync" ] || [ $ACC == "ham" ] || [ $ACC == "tuserzimbra" ] || [ $ACC == "spam" ]; then
echo "Skipping system account, $NAME...";
else
echo "Modifying $ACCOUNT password...";
su - zimbra -c "zmprov sp $ACCOUNT new_password";
su - zimbra -c "zmprov ma $ACCOUNT zimbraPasswordMustChange TRUE";
echo 'Done!'
echo ''
# read anykey
fi
done
echo 'Modifying password for all user has been finished successfully'

脚本说明:
1).把example.com替换为要重置密码的邮箱域名;
2).把new_password替换为重置后的新初始密码;
3).脚本会自动跳过的系统账号(admin,wiki,galsync,ham,tuserzimbra,spam),只重置普通用户的密码;如还想跳过其他用户,可以按脚本示例在后面自行添加
4).zimbraPasswordMustChange TRUE重置密码后,用户首次登录强制修改密码;如不想用户首次登录修改密码,可以把值改为FALSE

2、替换好域名和初始密码后,执行脚本即可开始批量重置密码

给脚本添加可执行权限

[root@local /]# chmod +x /opt/changepassword.sh

执行脚本

[root@local /]# sh /opt/changepassword.sh

执行脚本后输出结果(如用户数较多,需要耐心等待一会):

Skipping system account, ...
Modifying 1@ceshi.com password...
Done!

Modifying 2@ceshi.com password...
Done!

Modifying password for all user has been finished successfully

原文链接:Zimbra批量重置所有用户密码,转载请注明来源!

2