В Red Hat 7.2 применяется унифицированный подход к конфигурированию модулей РАМ. Существует специальный модуль /lib/security/pam_stack. so, который предназначен для запуска стека модулей, перечисленных в указанном файле. В листинге 5.3 демонстрируется использование этого модуля на примере стандартного файла /etc/pam.d/login.
Листинг 5.3. Файл /etc/раш. d/login в Red Hat 7.2
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so
Обратите внимание на наличие строки /lib/security/pam_stack.so service=system-auth
для каждого типа модуля. После каждой такой строки в файл /etc/pam. d/login будет вставлено содержимое файла /etc/pam. d/system-auth, относящееся к указанному типу модуля. Для наглядности покажем файл /etc/pam.d/system-auth (листинг 5.4).
Листинг 5.4. Файл /etc/pam.d/system-auth
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
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 nullok use_authtok
md5 shadow nis
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
Объединенный файл приведен в листинге 5.5.
Листинг 5.5. Полученный файл /etc/pam. d/login
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient
password required
session required
session required
session optional /lib/security/pam_unix.so nullok use_authtok md5 shadow nis /lib/security/pam_deny.so /lib/security/pam_limits.so /lib/security/pam_unix.so /lib/security/pam_console.so
По умолчанию таким образом сконфигурировано большинство файлов, находящихся в каталоге /etc/pam.d. В результате аутентификация многих служб унифицируется. В целом это довольно разумный подход, но он не демонстрирует всей гибкости, присущей модулям РАМ. В следующих разделах мы будем конфигурировать каждый файл в каталоге /etc/pam. d по-особому.
Примечание
Как правило, мы приводим названия модулей РАМ без расширения so. Например, модуль /lib/security/pam_unix. so будет обозначаться в тексте просто как pam_unix, хотя в листингах, естественно, указывается полное название.