首页 > 代码库 > 跳板机定期改密码脚本

跳板机定期改密码脚本

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




#!/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文件

Jan=01
Feb=02
Mar=03
Apr=04
May=05
Jun=06
Jul=07
Aug=08
Sep=09
Oct=10
Nov=11
Dec=12


本文出自 “豆包的博客” 博客,请务必保留此出处http://407711169.blog.51cto.com/6616996/1407814