一个定期自动更换特定账号的密码的脚本
借助系统cron定时任务计划,定期自动修改admin账号的密码
如下脚本思路为:
1、截取部分IP字段
2、获取当前月份并做一个加法
3、将上述两个字段拼接后,使用base64加密字段
4、截取加密后的字段中的第2-11位
5、变更admin账户的密码
备注:借助cron定时任务计划,定时触发脚本执行,即可达到变更密码的效果。
#!/bin/bash
#获取IP信息,并截取后两个字段(如IP 192.168.11.22,截取后变为1122)
str_ip=`ip a | grep brd | grep inet| grep 11| awk -F'[ /.]'+ '{ print $5$6 }'`#获取当前月份
str_month=`date +"%Y%m"`#当前月份数值+1
str0=`echo "1+${str_month}"|bc`#将IP字段和月份字段拼接
str1=${str_ip}${str0}#加密拼接字符串
#echo $str1 | base64#截取字符串当中的第2至11位的字符
pass=`echo $str1 | base64 |cut -c2-11`#设置admin账户的密码
echo $pass | passwd --stdin admin
计算特定IP主机的密码的脚本(get_pass.sh):
#!/bin/bash
str_ip=`echo $1 | awk -F. '{ print $3$4 }'`#获取当前月份
str_month=`date +"%Y%m"`#当前月份数值+1
str0=`echo "1+${str_month}"|bc`str1=${str_ip}${str0}
#截取字符串当中的第2至11位的字符
echo $str1 | base64 |cut -c2-11
脚本执行方式:
[root@abc ~]# sh -i get_pass.sh 192.11.11.22