3.3.3. Модули аутентификации

3.3.3. Модули аутентификации

Аутентификация на основе двух файлов /etc/passwd и /etc/shadow немного устарела и предоставляет нам слишком скудные возможности. Разработчики ядра ОС Linux стараются исправить ситуацию с помощью добавления новых алгоритмов шифрования, но все эти попытки чисто косметические, а нам необходимо кардинальное изменение.

Абсолютно новое решение для реализации аутентификации предложила компания Sun — Pluggable Authentication Modules (РАМ, подключаемые модули аутентификации).

Преимущество модульной аутентификации заключается в том, что не требуется перекомпиляция программы для их использования. Существуют модули для основных методов аутентификации, таких как Kerberos, SecureID, LDAP и др.

Конфигурационные файлы для каждого сервиса, который может использовать РАМ, находятся в директории /etc/pam.d. В большинстве случаев вам не придется создавать эти файлы вручную, потому что они устанавливаются во время инсталляции программы из RPM-пакета. Но вы должны знать их структуру, чтобы можно было изменить какие-то параметры в случае необходимости.

Каждая строка в конфигурационном файле состоит из четырех полей, разделенных пробелами:

? тип модуля — может принимать одно из следующих значений:

 • auth — аутентификация и проверка привилегий пользователей;

 • account — распределение ресурсов системы между пользователями;

 • session — поддержка сессии и регистрации действий пользователей;

 • password — проверка пароля;

? флаг — определяет параметры модуля. Здесь можно использовать три значения:

 • required — обязательный;

 • optional — необязательный;

 • sufficient — достаточный;

? полный путь к файлу модуля;

? аргументы модуля.

Рассмотрим пример конфигурационного файла для FTP-сервиса, который находится в файле /etc/pam.d/ftp.

#%PAM-1.0

auth    required /lib/security/pam_listfile.so item=user sense=deny

 file=/etc/ftpusers onerr=succeed

auth    required /lib/security/pam_stack.so    service=system-auth

auth    required /lib/security/pam_shells.so

account required /lib/security/pam_stack.so    service=system-auth

session required /lib/security/pam_stack.so    service=system-auth

Это и все, что вам необходимо знать. Остальное берет на себя программа сервиса без нашего вмешательства.

Данный текст является ознакомительным фрагментом.