跳板机定期改密码脚本

很早写的,最近别人问过一次,贴出来吧。




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
#
source /etc/profile &>/dev/null
basedir=$(cd `dirname $0`;pwd)
nowmonth=`date +%m`
nowday=`date +%d`
email="$basedir/email/sendemail.sh"
function GaiMiMa() {
        user="$1"
        passwd=$(/usr/bin/mkpasswd -l 20 -d 5 -c 2 -C 4 -s 0) #mkpasswd 可以yum装下
        echo $passwd |  passwd --stdin $user
        if [ $? -eq 0 ];then
                sh $email "$user@*.com" "跳板机密码更改提示" "您的跳板机密码已经更改为: $passwd 请注意下次登录时替换此密码。【注意】不要复制空白字符;如有问题请及时找**。"
        echo "$user ::::: $passwd" >> $basedir/modify.log
        fi
}
grep "/bin/bash" /etc/passwd |grep -v "root"|awk -F: '{print $1}' > $basedir/userlist
#user='yanzong.chen'
for user in `cat $basedir/userlist`
do
        month=$(chage -l $user | grep "Last password change"|awk -F: '{print $2}'|awk '{print $1}')
        day=$(chage -l $user | grep "Last password change"|awk -F: '{print $2}'|awk '{print $2}'|tr -d ,)
        month=$(grep $month $basedir/month|awk -F'=' '{print $2}')
        if [ $nowmonth -ge $month ];then
                D=$(expr $nowmonth \* 30 + $nowday - $day  - `expr $month \* 30`)
                if [ $D -gt 85 ];then
                        GaiMiMa $user
                fi
        else
                X=$(expr $nowmonth \* 30 + $nowday - `expr $month \* 30` - $day + 360 )
                if [ $X -gt 85 ];then
                        GaiMiMa $user
                fi
        fi
done
echo `date +%F` >> $basedir/modify.log


配套month文件

1
2
3
4
5
6
7
8
9
10
11
12
Jan=01
Feb=02
Mar=03
Apr=04
May=05
Jun=06
Jul=07
Aug=08
Sep=09
Oct=10
Nov=11
Dec=12










本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1407814,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值