Мы используем Active Directory (2003 и 2008) для всех наших пользователей (70% Linux, 30% Windows). Аутентификация обычного пользователя хорошо работает. У меня теперь есть ситуация, где на конкретном сервере я должен ограничить пользователей, которые могут войти в членов конкретной группы в ADS. Таким образом, я создал группу и включил пользователей. Затем я установил в pam_ldap.conf
pam_groupdb cn=<group>,ou=Applications,dc=<domain>,dc=<tld>
и
pam_member_attribute memberOf
Однако это, кажется, не имеет значения. Я остановил nscd (на всякий случай), но я могу все еще войти в систему с помощью учетных данных пользователя, который не является членом этой группы. У кого-либо есть опыт с этим?
Существуют другие обходные решения, но они довольно ужасны, и я предпочел бы не иметь необходимость использовать их (например, извлечь всех пользователей через ldapsearch в задании крона и затем поместить их в список разрешенных пользователей, и т.д....). О, да, я вижу членов этой группы, очень хорошо использующей ldapsearch. И я вижу составы группы отдельного пользователя очень хорошо, также с помощью ldapsearch. Я поместил sshd на тот сервер в режим отладки, но журналы не показывают ничего полезного. Любые указатели высоко ценились бы.
Мне кажется, что в ваших настройках есть опечатка. Я считаю, что вместо pam_groupdb следует использовать pam_groupdn.
из руководства:
$ man pam_ldap
...
pam_groupdn
Определяет отличительное имя группы, к которой должен принадлежать пользователь для успешной авторизации входа.
pam_member_attribute
Задает атрибут, который будет использоваться при тестировании членства пользователя в группе, указанной в параметре pam_groupdn.
...