课后作业:获取密码即将过期的警告提示

练习:给定一个用户,获取其密码警告期限,然后判断用户密码使用期限是否已经小于警告期限,如果小于,则显示"warn",否则显示密码还有多少天到期

 

提示:date +%s  :今天距离1970年的秒数

Cat /etc/shadow 密码过期的时间

 

exit:退出脚本

  退出脚本可以指定脚本执行的状态:exit 0.

 

#!/bin/bash
user=$1
now_date=`date +%s`
now_date=$[$now_date/24/3600]

#get the user create day
c_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f3`

#获取提前警告天数
warn_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f6`

#账户已创建天数
used_date=$[$now_date-$c_date]

#账户有效使用天数
work_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f5`

#账户剩余可使用天数
rest_date=$[$work_date-$used_date]

echo "$user creat at $c_date"
if [ $rest_date -lt $warn_date ]  ;then
        echo "WARN,密码还有 $rest_date 天过期,请修改密码"
else
        echo "该账户正常,还可以使用 $rest_date 天"
fi

 答案二:

#!/bin/bash
build_day=`cat /etc/shadow | grep $1 |awk -F: '{print $3}'`
max_allow_day=`cat /etc/shadow | grep $1 |awk -F: '{print $5}'`
warn_day=`cat /etc/shadow | grep $1 |awk -F: '{print $6}'`
second=`date +%s`
today=$[$[$[$second/60]/60]/24]
use_day=$[$today-$build_day]
line=$[$max_allow_day-$warn_day]
if [ $line -ge $use_day ]
then
echo "left day $[$max_allow_day-$use_day]"
else
echo "warn"
fi

 

posted @ 2017-01-01 00:04  瓦肯船长  阅读(319)  评论(0)    收藏  举报