Управление доступом с помощью РАМ
При традиционной Unix-аутентификации нет слишком большой детализации ограничения входа пользователей в систему. Например, как определить узлы, с которых пользователи не должны регистрироваться на ваших серверах? Первым желанием может быть настроить TCP-оболочки или правила межсетевого экрана (трюки № 33 и 34). А что делать, если требуется некоторым пользователям разрешить регистрироваться с определенных узлов, а другим — запретить? А если требуется запретить одним пользователям регистрироваться в определенный промежуток времени (во время ежедневного обслуживания системы), но в то же время — разрешить другим (администраторам)? Для того чтобы это работало со всеми службами, которые могут быть запущены в системе, традиционно приходится обновить каждую из них для обеспечения этой функциональности. Вот где пригодится РАМ
РАМ (сокращение от pluggable authentication modules; буквально — подключаемые модули идентификации) обеспечивает именно такой вид функциональности (и даже больше) без необходимости исправления (patch) всех служб. Практически всегда РАМ существовал для Linux, FreeBSD и Solaris и сейчас является стандартным компонентом традиционных функций идентификации этих платформ. В настоящее время РАМ поддерживаются многие службы, которым требуется аутентификация. Модули настраиваются «пакетом» для всех служб непосредственно в ходе идентификации, выполняемой от начала до успешного завершения проверок доступа. Можно построить пользовательский «пакет» для любой службы, создав в /etc/ pam.d файл с именем соответствующей службы. Если требуется обеспечить еще большую степень детализации доступа, то с помощью модуля pam_stack можно включить весь «пакет модулей». Это позволяет указать другой внешний файл, содержащий «пакет». Если служба не имеет собственного файла в /etc/pam.d, то она по умолчанию будет использовать «пакет», указанный в /etc/pam.d/other.