Вопрос или проблема
Что на самом деле делает /etc/pam.d/other
? Содержимое файла:
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so
/etc/pam.d/other
является универсальным конфигурационным файлом для PAM. Он используется, когда приложение или служба не имеют конкретного конфигурационного файла PAM в /etc/pam.d/
Из https://git.launchpad.net/ubuntu/+source/pam/tree/debian/local/other?h=ubuntu/jammy в jammy (22.04)
#
# /etc/pam.d/other - указывает резервное поведение PAM
#
# Обратите внимание, что этот файл используется для любых неуказанных служб; например,
#if /etc/pam.d/cron не указывает никакие модули сеанса, но cron вызывает
#pam_open_session, тогда используется модуль сеанса из /etc/pam.d/other.
#Если вы действительно хотите, чтобы ничего не происходило, используйте pam_permit.so или
#pam_deny.so по мере необходимости.
# Мы возвращаемся к значению по умолчанию системы в /etc/pam.d/common-*
#
@include common-auth
@include common-account
@include common-password
@include common-session
Ответ или решение
Что такое /etc/pam.d/other и какую роль он играет в PAM?
Файл /etc/pam.d/other
является частью системы управления доступом PAM (Pluggable Authentication Modules) в операционных системах на основе Unix и Linux. Основная задача данного файла — это предоставление стандартной конфигурации для тех приложений и служб, которые не имеют специализированного конфигурационного файла в каталоге /etc/pam.d/
. Он используется в качестве резервного механизма для управления аутентификацией и сессиями.
Содержимое файла
Итак, рассмотрим содержимое файла other
:
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so
Каждая строка представляет собой правило, определяющее, как обрабатывать соответствующие типы операций:
- auth: данный модуль отвечает за аутентификацию пользователя.
- account: отвечает за проверку учетных записей, включая ограничения доступа.
- password: управляет изменением паролей.
- session: отвечает за управление сессиями пользователя.
Выражение required
указывает, что если аутентификация (или другая операция) не проходит через этот модуль, процесс будет немедленно завершен, и доступ будет запрещен. Использование pam_deny.so
в качестве механизма означает, что любая попытка аутентификации, проверки учетной записи, изменения пароля или работы с сессией будет отклонена.
Как это работает в контексте PAM
Если приложение запрашивает доступ для пользователя и не находит собственного правила в /etc/pam.d/
, оно использует эту запись в качестве последнего средства. Например, если служба cron
вызывает pam_open_session
, но не имеет специфической конфигурации, система использует модуль из other
. Поскольку указаны только модули pam_deny.so
, все попытки будут отвергнуты, что делает систему невосприимчивой к аутентификации и доступу.
Значение @include
Также важно отметить, что в более традиционных конфигурациях PAM содержащихся в других файлах, /etc/pam.d/other
может включать ссылки на общие конфигурационные файлы, такие как:
@include common-auth
@include common-account
@include common-password
@include common-session
Эти строки предоставляют возможность использования единообразных правил аутентификации для различных компонентов системы, что значительно упрощает администрирование.
Однако в вашем примере указаны только модули pam_deny.so
, так что НИ В КОМ СЛУЧАЕ доступ не будет предоставляться.
Заключение
Файл /etc/pam.d/other
выступает важным элементом системы PAM, обеспечивая отказ в доступе для любых служб без специфических конфигураций. Это ведет к повышению общей безопасности системы, позволяя администраторам более точно управлять доступом и аутентификацией пользователей. Важно отметить, что правильная настройка PAM критически важна для обеспечения безопасности системы, и резервные конфигурации должны тщательно тестироваться для предотвращения потенциальных уязвимостей.