При настройке авторизации через LDAP практически всегда будут иметь место пользователи, которые, будучи добавлены в дерево каталогов, не будут иметь домашней директории на конкретном компьютере. Для автоматического создания оных испольуется модуль pam_mkhomedir.so, которые подгружается в /etc/pam.d/common-session. Однако есть интересные гра ельки: если мы умолчальный файл, который выглядит, как правило, примерно так:
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
поправим для работы с pam_ldap, к примеру, вот так (чтобы осталась возможность авторизоваться и не-ldap-ным пользователям):
session sufficient pam_unix.so
session sufficient pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
то обнаружится, что skel перестает отрабатывать. Пользователь авторизуется, заходит, но домашний каталог ему не создается.
Это происходит потому, что параметр sufficient, при успешной отработке заданного ему модуля, не продолжает проверку остальных параметров, что далее по списку, а сразу "дает добро" на вход. Об этом, и некоторых других важных для работы с PAM вещах, можно почитать тут.
Параметр required не предполагает принятия положительного решения (если заданный ему модуль дает отрицательный ответ, дальнейшая проверка прекращается), поэтому в случае положительного ответа модуля просмотр файла в /etc/pam.d/ продолжается.
Посему наши грабельки лечатся до безобразия просто:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session sufficient pam_unix.so
session sufficient pam_ldap.so
Комментариев нет:
Отправить комментарий