Домашние каталоги и pam.d с использованием LDAP

10

Предыстория:
я не слишком знаком с плюсами и минусами аутентификации pam и LDAP на стороне конфигурации. Я использовал системы, использующие PAM, но я работал только с приложениями, а не с самими системами.

Вопросы:
Использование pam для управления аутентификацией через LDAP означает ли это, что домашний каталог не будет создан в системе?

Если нет, я бы создал пользователей на сервере или каким-то образом подтолкнул бы пользователей в систему из источника LDAP?

Николас Андерсон
источник
1
Этот вопрос может быть связано: unix.stackexchange.com/q/106391/34796
DRS

Ответы:

13

Это именно то, что pam_mkhomedirбыло сделано для. Модуль может создать домашний каталог пользователя при входе в систему, если этот каталог не существует.
pam_mkhomedir

Как его установить, зависит от вашего дистрибутива. Но вам нужно будет поместить его в один или несколько файлов /etc/pam.d.
Например, у меня в системе есть /etc/pam.d/system-loginвсе другие сервисы, которые выполняют вход в систему (ssh, gdm и т. Д.).
Я бы положил pam_mkhomedir.soв sessionстек, например:

session     optional    pam_loginuid.so
session     required    pam_env.so 
session     optional    pam_lastlog.so 
session     include     system-auth
session     optional    pam_mkhomedir.so # <<< right here
session     optional    pam_ck_connector.so nox11
session     optional    pam_gnome_keyring.so auto_start
session     optional    pam_motd.so motd=/etc/motd

Место, куда вы положили, полностью зависит от того, что еще находится в стеке. Но вы должны поместить это прежде всего, что может нуждаться в домашнем каталоге.

Смотрите man 8 pam_mkhomedirварианты, которые он поддерживает.

Патрик
источник
Потрясающие. Спасибо за ответ. Наши пользователи в настоящее время не входят в систему, они входят в веб-приложение, которое размещено в системе. Есть ли триггер, который может создать свой домашний каталог при первоначальном входе в веб-приложение?
Николас Андерсон
1
Если веб-приложение использует стек pam, оно будет работать (хотя вам, возможно, придется поместить его в authстек вместо session). Если приложение не использует стек pam, вам придется встроить что-то в само приложение.
Патрик
Похоже, что предоставляется только сессионный модуль, я пробовал и, фактически, pam_mkhomedir не работает с модулем auth. У меня та же проблема, что и у Николаса Андерсона, у меня есть веб-приложение. Есть ли способ решить эту проблему в модуле аутентификации?
Фабиано Тарлао
6

В Ubuntu 14.04 system-loginнет, но другой файл с именем as common-sessionприсутствует.

Я пошел туда и положил:

root@GW:~# vim /etc/pam.d/common-session

#
session optional        pam_systemd.so skel=/etc/skel/ umask=0077

Это создаст домашний каталог, если не существует, также установите разрешение на 700

Мансур Али
источник
Umask, предложенный help.ubuntu.com/community/LDAPClientAuthentication, является umask=0022. Я полагаю, что ваша функция удаляет ВСЕ возможности, в том числе те, readкоторые могут помешать некоторым механизмам аутентификации / доверия на основе ключей работать в многопользовательской системе или других случаях.
dragon788
0

Я бы порекомендовал использовать oddjob-mkhomedir :

Для Centos 7 это работает:

yum install oddjob-mkhomedir

Добавьте это к /etc/pam.d/system-authи /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

И наконец:

systemctl enable oddjob; systemctl start oddjob

Первоначально это было размещено здесь: https://www.centos.org/forums/viewtopic.php?t=48631.

Примечание: если вы только что установили /homeраздел, не забудьте сделатьrestorecon /home

mejem
источник