一、故障现象

数据库用户反馈在oracle用户下执行crontab -l 无法正常输出结果,而且有错误提示:Authentication token is no longer valid; new one required ,You (oracle) are not allowed to access to (crontab) because of pam configuration. 。而其他用户执行正常。

crontab auth vaild
crontab auth vaild

二、故障处理与解决

由于提到了pam 配置,所以先是查看了/etc/pam.d/crond 配置和正常主机做对比,发现并无异常。而且细想下pam配置一般针对所有用户,很少针对单个用户的。所以再想到就是cron对应的文件是否权限发生了变化、帐号是否被锁定或都密码过期。

查看/var/spool/cron/oracle文件,发现并不存在权限问题。接个逐项查看时,通过chage -l 发现了问题:

1[root@irora11 cron]# chage -l oracle
2Last password change                                    : Mar 14, 2016
3Password expires                                        : Jun 12, 2016
4Password inactive                                       : never
5Account expires                                         : never
6Minimum number of days between password change          : 0
7Maximum number of days between password change          : 90
8Number of days of warning before password expires       : 7

查看发现oracle密码已经了过期时间。解决方法只是设置为永不过期或都修改掉oracle用户的密码。为了进一步印证问题,通过设置永不过期尝试发现问题解决:

 1[root@irora11 ~]# chage -M 99999 oracle
 2[root@irora11 ~]# su - oracle
 3[oracle@irora11 ~]$ crontab  -l
 40 3,7,11,15,19,23 * * * /home/oracle/rman_archive_delete.sh
 50 2  * * * /home/oracle/clean_audit_file.sh
 600,20,40 * * * * cd ${HOME}/HWAlarm; ./crontabAlarm.sh
 705 * * * * cd $HOME/KpiConsole/monitor/agent/shell; ./monitor_kpi.sh >/dev/null 2>&1
 8*/30 * * * *  sh /home/oracle/hwscript/diskYWDB/diskCheck.sh  >/dev/null 2>&1
 90 2  * * * /home/oracle/clean_trace_file.sh
100 2,4,6,8,10,12,14,16,18,20,22,23 * * * /home/oracle/rman_archive_delete_new.sh
1110 8-22/1 * * * /home/oracle/execute_alarm_recharge.sh  >/dev/null 2>&1

三、总结

安全加固是把双刃剑,一方面确实加强了主机的安全性,另一方法也很容易造成现网问题。目前现网中已遇到加固引起的有修改密码三到四次认证、ssh登陆异常、ulimit修改不生效等等很多问题。所以安全部门在做加固时做好相应的测试工作比较必要。