Debian6.07を実行しているts7800ボードを出荷しています。プログラミング後、一部のボードはcronジョブを実行せず、ユーザーrootを認識しないと不平を言います。
これは、12台のデバイスのうち2台で発生しました。調査のために急いで入ったとき、私はパスワードを変更することを余儀なくされました。この後、デバイスは期待どおりに機能します(cronを再起動するために再起動しました)。 chageコマンドは、パスワードとアカウントも無期限として表示します。
問題は、デバイスのプログラミング中にリアルタイムクロックが十分に充電されず、時間を保持できないことにあると考えられます。デバイスを試運転すると、インターネットに接続されていない可能性があるため、エポックで開始されます。そのため、最後のパスワード変更が将来行われるか、そのような裏切りが発生します。
ロックされた/一時停止されたアカウントに対してcronを実行できるようにpamを構成したいですか?
さて、私はPAMについて少し学び、解決策を見つけました。
これは一般的なケースでは良い習慣ではありませんが、信頼性の高い組み込みシステムのコンテキストでは許容できると思います。
私の解決策は、cron固有のファイルを編集することでした/etc/pam.d/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ジョブが実行されるようになりました。