Для начала узнаем, как использовать модули РАМ для контроля над выбором паролей и их устареванием. В листинге 5.6 показан файл /etc/pam. d/passwd. Обратите внимание на группы записей auth и password по три в каждой. Это наглядный пример стека.
Листинг 5.6. Файл /etc/раш. d/passwd
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient /lib/security/pam_unix.so use_authtok md5 shadow nis
password required /lib/security/pam_deny.so
Каждый из упомянутых в этом файле модулей описан ниже. Пока лишь укажем, что этот модуль, если до него доходит очередь, всегда возвращает код ошибки. Следовательно, если он помечен флагом required или requisite, весь стек, в котором находится модуль, завершается неудачей.