数据库管理员的 172.18.20.10 和 172.18.20.25 数据库备份脚本是以 root 身份运行的,在 crontab 里跑:
126 11 * * * /root/scripts/mysql_backup_full_3306.sh > /dev/null 2>&1
但是由于 root 密码会每三个月变更一次,如果没有及时变更,会导致 root 密码失效,从而 crontab 无法正常运行。
解决方法很简单: 找到 /etc/pam.d/password-auth , 其中 account 的有四行
1account required pam_unix.so
2account sufficient pam_localuser.so
3account sufficient pam_succeed_if.so uid < 1000 quiet
4account required pam_permit.so
在前面增加两行:
1account required pam_access.so
2account [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
3
4account required pam_unix.so
5account sufficient pam_localuser.so
6account sufficient pam_succeed_if.so uid < 1000 quiet
7account required pam_permit.so
这样就可以了,不用重启任何服务。
pam 验证的时候,即使密码过期,crond 依然正常跑,就 ok 了。