- 论坛徽章:
- 0
|
我想实现这样一个功能:
系统定义用户必须91天之内更换一次密码,否则不允许登录,在第85天的时候,如果用户还没有修改,则系统发邮件提醒管理员.
我是想这样实现:
1,在/etc/shadow中,格式如下:
loginID:password:lastchg:min:max:warn:inactive:expire:
现在系统的格式是:
test:95x74hLDQKXI2:12537::7:::12538:
test1:fiBXCm0voRiRA:12537::91:::12538:
aa:7j9beZl/LW2yk:12537::91::::
bb j5sxYE.XmCAI:12537::91::::
有用的信息是第三列lastchg,这个值是从1970年1月1日到最近一次更改密码相隔的天数,bb的密码是今天改的,则值是12537,如果到了第85天,则这个值应该是12537+85,如果用户自己修改过密码,则结果会大于12537+85,如果没有,则小于,小于就发mail给管理员;
是不是越说越糊涂啊 L
A方案实现:1,得到当天和1970.1.1直接相隔的天数
2,取出shadow中的lastchg列的当前值,加上85
3,比较1和2的结果,1小于等于2,则发邮件告警
B 方案,用命令passwd –l得到用户最后一次更改密码的时间,第三列
# passwd -s bb
bb PS 04/29/04 91
1,得到第三列的值
2,得到今天的日期
3,2和1相减,如果大于等于85,则告警.
这2种想法有没有问题?
方案1里面,如何得到当天日期和1970.1.1间隔的天数?
方案2里面:第三步相减如何做?(我看到精华里面有很多,但是不是看的很懂,还在慢慢看)
盼望各位帮我看看…..在此谢过! |
|