При изменении параметров истечения пароля/учетной записи пользователей сообщается об ошибке chage: PAM chauthtok failed. Анализ исходного кода показал странный фрагмент shadow-4.0.0/src/chage.c [строки 843-860] выполняющийся (при отсутствии ключа -l, идентифицирующегося флагом lflg) _после_ фактического изменения свойств истечения пароля/учетной записи. #ifdef USE_PAM if (!lflg) { if (retval == PAM_SUCCESS) { retval = pam_chauthtok(pamh, 0); if (retval != PAM_SUCCESS) { pam_end(pamh, retval); } } if (retval != PAM_SUCCESS) { fprintf (stderr, _("%s: PAM chauthtok failed\n"), Prog); exit (1); } } if (retval == PAM_SUCCESS) pam_end(pamh, PAM_SUCCESS); #endif /* USE_PAM */ Steps to Reproduce: Name : shadow-change Version : 4.0.0 Source RPM: shadow-4.0.0-alt13.src.rpm # chage -m 0 user Поведение аналогично при изменении _любых_ параметров истечения пароля/учетной записи. Actual Results: Параметры истечения пароля/учетной записи пользователя принимают указаные значения. Expected Results: Отсутствие сообщения об ошибке.
There is a typo in /etc/pam.d/chage: the line password required pam_deny.so should be replaced with password required pam_permit.so I'll fix that in shadow-change-4.0.0-alt14
Это конечно решает проблему ;) однако кто-нибудь может прокомментировать _назначение_ вышеприведенного куска кода?
Fixed in shadow-change-4.0.0-alt14