#!/bin/bash #判断用户密码是否在警告期内 #密码文件 PASSFILE=/etc/shadow #判断文件是否存在 if [ ! -e $PASSFILE ]; then echo "No $PASSFILE" exit 1 fi #给定用户 USERNAME=user1 #判断用户是否存在 if ! grep "^$USERNAME>" $PASSFILE &> /dev/null; then echo "No $USERNAME" exit 1 fi #密码修改时间 MODDAY=`grep "^$USERNAME>" $PASSFILE | cut -d: -f3` #密码有效期 MAXDAY=`grep "^$USERNAME>" $PASSFILE | cut -d: -f5` #过期提醒天数 EXPIR=`grep "^$USERNAME>" $PASSFILE | cut -d: -f6` #当前秒数 CURRSS=`date +%s` #当前天数 CURRDAY=$[$CURRSS/86400] #密码使用天数 USERDAY=$[$CURRDAY-$MODDAY] if [ $[$MAXDAY-$USERDAY] -ge $EXPIR ]; then echo "No warn" else echo -e "WARN!!! Please change your password as soon as possible." fi