Основы PAM
Тема дорожной карты · Linux & Unix Fundamentals
Pluggable Authentication Modules (PAM) представляют собой систему, которая выносит политики аутентификации, учётных записей, паролей и сессий из конкретных приложений в общий стек модулей. Это позволяет упростить управление доступом и безопасность, а также уменьшить нагрузку на разработчиков приложений. Сервисы хранят конфигурации в директории /etc/pam.d/ (например, sshd, login, sudo), где собирают типы auth, account, password, session с управляющими флагами required, requisite, sufficient, optional. Часто используемые модули включают pam_unix.so, pam_pwquality.so, pam_faillock.so, pam_limits.so. При правке конфигураций следует действовать осторожно, так как сломанный стек может блокировать вход в систему; рекомендуется держать открытую root-сессию и проверять изменения через pamtester до выхода.
Как это работает
Основы PAM являются фундаментом для управления доступом. Юзеры хранятся в файле /etc/passwd, пароли (хешированные) — в /etc/shadow, а группы — в /etc/group. Каждый процесс выполняется под определённым пользователем (UID) и основной группой (GID) с дополнительными группами. Системные пользователи (UID < cq 1000 обычно) используются для демонов, а обычные пользователи имеют UID выше этого порога. Команды useradd, usermod, userdel и groupadd, groupmod, groupdel используются для управления пользователями и группами. Команда sudo (конфигурация в /etc/sudoers через visudo) предоставляет временное повышение привилегий для выполнения команд с повышенными правами.
Когда применять
Основы PAM применяются для каждого долгого сервиса, где обычно создаётся выделенный непривилегированный пользователь (useradd -r -s /usr/sbin/nologin myapp). Сервисы никогда не должны выполняться под пользователем root. Настройте sudo так, чтобы он требовал пароль и логировал действия; никогда не давайте разработчикам wildcard ALL=(ALL) NOPASSWD: ALL вне учебных окружений. Для удалённого доступа используйте SSH-ключи (а не пароли); после того, как ключи успешно настроены, отключите пароль-аутентификацию в sshd_config.
Типичные ошибки
Типичные ошибки при работе с основами PAM включают правку /etc/sudoers без использования visudo, что может привести к блокировке доступа к системе. Также проблемой может стать создание общего developer-аккаунта между многими инженерами, что затрудняет аудит. Групповая принадлежность к wheel/sudo без должного размышления может привести к уязвимости системы. Не забудьте удалить SSH-ключи ушедших инженеров из ~/.ssh/authorized_keys, чтобы избежать несанкционированного доступа.