我正在运送运行 debian 6.07 的 ts7800 主板。编程后,一些主板不运行其 cron 作业,抱怨它们无法识别用户 root。
12 台设备中有 2 台发生了这种情况。当我通过 sshed 进行调查时,我被迫更改密码。此后,设备正常工作(我重新启动以重新启动 cron)。chage 命令还显示密码和帐户永不过期。
我认为问题可能在于实时时钟在设备编程期间没有得到足够的充电以保留时间。调试设备时,它可能没有互联网连接,因此将从纪元开始,从而导致最后一次密码更改发生在将来,或者发生类似的背叛行为。
我本质上是想配置 pam 以允许 cron 为锁定/暂停的帐户运行??
答案1
好的,我对 PAM 有了一些了解,并找到了解决方案。
请注意,在一般情况下这不是一个好的做法,但在可靠的嵌入式系统环境中,我认为这是可以接受的。
/etc/pam.d/cron
我的解决方案是像这样编辑 cron 特定文件:
-@include common-account
+CONTENTS_OF_COMMON_ACCOUNT_FILE
并修改以下包含的行,如下所示:
-account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
+account [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so
即使需要更改用户密码,Cron 作业也应该运行。