在工作中,我们可能经常会遇到 crontab中的任务没有去正常的执行
原因可能有很多,其中笔者最近遇到的一种,是因为账号的密码过期了,具体情况如下:
操作系统:Red Hat Enterprise Linux release 8.1 (Ootpa)
执行crond任务的账号:root
密码状态:已经过期
通过去查询 /var/log/cron 日志文件,发现有如下两行报错:
Jul 8 16:28:01 qq-5201351 crond[30174]: (root) PAM ERROR (Authentication token is no longer valid; new one required) Jul 8 16:28:01 qq-5201351 crond[30174]: (root) FAILED to authorize user with PAM (Authentication token is no longer valid; new one required)
可以看出来是认证相关的问题,于是查询 root 账号的密码,是过期了
解决方法:
1、保证能正常的及时地,在密码过期前,去重新设置一个新的密码,也可以通过第三方密码管理平台实现
2、设置密码永不过期,但这种从安全的角度来说不是很推荐的
3、设置允许密码过期后,正常地去执行crontab中的任务,从安全的角度也不是很推荐
虽然第3种解决方案不是很推荐,但这里主要记录一下,实现的过程及原理,这个是需要通过修改pam配置文件实现的
在 /etc/pam.d/crond 配置文件,原内容的基础上,插入一行 account sufficient pam_permit.so 即可,全部的配置如下:
[root@qq-5201351 ~]# cat /etc/pam.d/crond # # The PAM configuration file for the cron daemon # # # Although no PAM authentication is called, auth modules # are used for credential setting auth include password-auth account sufficient pam_permit.so account required pam_access.so account include password-auth session required pam_loginuid.so session include password-auth [root@qq-5201351 ~]#
最后使用root用户再测试,可以发现,crontab 中的任务有正常运行了,于是记录于此
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/18973450
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
浙公网安备 33010602011771号