Настройка:
1) Пароль пользователя был удален командой "passwd -d"
2) У пользователя запущены задания cron
Эта проблема:
Раз в 30 дней (политика истечения срока действия пароля по умолчанию) cron завершается с ошибкой
Authentication token is no longer valid; new one required
ERROR: failed to open PAM security session: Success
ERROR: cannot set security context
Мои вопросы:
Есть ли способ предотвратить это?
Почему у пользователя с удаленным паролем истек срок действия токена аутентификации?
У меня была эта проблема с каплей Debian 8 DigitalOcean, созданной с использованием параметра «пользовательские данные» (сценарий установки, размещенный в веб-форме (bash или cloud-init)).
проверьте журнал systemd на наличие соответствующих сообщений об ошибках:
journalctl | grep -B 1 -i "cron. * токен аутентификации" | хвост -n 3
May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: pam_unix(cron:account): expired password for user root (root enforced)
May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: Authentication token is no longer valid; new one required
May 19 13:17:01 debian-512mb-fra1-01 cron[470]: Authentication token is no longer valid; new one required
посмотреть, у каких аккаунтов истек срок действия
вырезать -d: -f 1 / etc / passwd | пока читаем U; do chage -l $ U | sed "s | ^ | $ U: |"; сделано | grep "должно быть"
root:Last password change : password must be changed
root:Password expires : password must be changed
root:Password inactive : password must be changed
используйте инструмент 'chage' для обновления полей срока действия, первая попытка
chage -I -1 -m 0 -M 999999 -W 31 корень
Примечание: не дало желаемого эффекта, пока я также не добавил параметр «последнее изменение» (-d)
используйте инструмент 'chage' для обновления полей срока действия, вторая попытка
chage -d `date" +% F "` -E 2999-01-01 -I -1 -m 0 -M 999999 -W 31 root
проверить срок действия поля
chage -l корень
Last password change : May 19, 2017
Password expires : never
Password inactive : never
Account expires : Jan 01, 2999
Minimum number of days between password change : 0
Maximum number of days between password change : 999999
Number of days of warning before password expires : 31
Похоже, ваша система удалила пароль, но не выполнила требования к сроку действия пароля.
Если это так, вы можете очистить их вручную, используя vipw
- Затронутое поле будет либо в passwd
файл или shadow
файл в зависимости от вашей ОС (см. man 5 passwd
и man 5 shadow
для получения подробной информации о форматах файлов, чтобы вы знали, какие поля вам нужно очистить)
В Ubuntu мой / etc / shadow файл отсутствовал (хотя там был / etc / shadow-) так что все, что я сделал, это бежал ...
sudo pwconv
... И я решил эту проблему, воссоздав файл / etc / shadow.
(Хотя я еще не могу подтвердить, что это долгосрочное исправление, оно может длиться до тех пор, пока пароль не изменится / не истечет время или пока не произойдет какой-либо другой фактор) --- кто-то поддержит меня или исправит меня