getent passwd показывает только ldap пользователей из OU People

Вопрос или проблема

Я подключил свой сервер Solaris 11 к серверу OpenLDAP. Подключение работает, и с помощью “ldaplist” я вижу ldap-пользователей, которые должны находиться в базе поиска.

Список выглядит так:

dn: cn=user_1,dc=IT,dc=my-company,dc=com
dn: cn=user_2,dc=IT,dc=my-company,dc=com
dn: cn=user_3,dc=IT,dc=my-company,dc=com
dn: ou=People,dc=IT,dc=my-company,dc=com

Теперь команда “getent passwd” возвращает только пользователей из ou People, но только из ou People, я не могу изменить имя, если я это сделаю, ничего не будет возвращено.
Моя проблема в том, что я никогда не настраивал, чтобы ldapclient или getent passwd использовали ou People. Также мой файл ldap_client_file, сгенерированный ldapclient, говорит, что я не использую ou People. Он выглядит так:

NS_LDAP_SERVERS= my-companies-ldap-server.com:636
NS_LDAP_SEARCH_BASEDN= dc=IT,dc=my-company,dc=com
NS_LDAP_AUTH= tls:simple
NS_LDAP_CACHETTL= 0
NS_LDAP_CREDENTIAL_LEVEL= proxy

Будет здорово, если кто-то сможет помочь с идеей.

Спасибо!

Ответ или решение

Проблема, с которой вы сталкиваетесь, связана с тем, что команда getent passwd отображает только пользователей из организационной единицы (OU) People в вашем OpenLDAP, хотя вы ожидаете увидеть пользователей в других OU или в корне дерева LDAP. Давайте рассмотрим, как можно устранить эту проблему.

  1. Проверка конфигурации ldapclient:
    Убедитесь, что ваша конфигурация в файле ldap_client_file действительно включает правильный NS_LDAP_SEARCH_BASEDN, который вы уже указали как dc=IT,dc=my-company,dc=com. Это правильный корень для поиска. Однако, если у вас есть другие OU (например, "Users", "Admins" и т.д.), убедитесь, что они находятся внутри указанного корневого DN.

  2. Проверка фильтров LDAP:
    Проверьте, не установлен ли фильтр, который мог бы ограничивать поисковые результаты именно OU People. Это может быть внутри конфигурации вашего LDAP. Фильтры ограничивают выборку пользователей и могут быть настроены таким образом, что пользователи из других OU игнорируются.

  3. Настройка the LDAP schema:
    Убедитесь, что ваши пользователи в других OU имеют корректные атрибуты, соответствующие ожидаемым схемам (например, uid, cn и т. д.). Если атрибуты не соответствуют ожиданиям, это может повлиять на результаты, которые возвращаются командой getent.

  4. Обновление ldap_client_file:
    Если вы хотите отображать пользователей из определенной OU, вы можете изменить значение NS_LDAP_SEARCH_BASEDN, чтобы указать более специфический DN, который включает нужные вам OU. Например, если вам нужно включить больше OU, вы можете попробовать установить значение как dc=IT,dc=my-company,dc=com и проверить, будут ли добавлены пользователи.

  5. Проверка доступа и прав:
    Убедитесь, что ваши настройки доступа (ACL) в вашем LDAP сервере позволяют пользователям видимость всех OU. Если доступ ограничен, это может также препятствовать отображению пользователей.

  6. Отладка и тестирование:
    Используйте команды ldapsearch с соответствующими DN и фильтрами, чтобы проверить, возвращаются ли пользователи из других OU. Команда может выглядеть так:

    ldapsearch -x -b "dc=IT,dc=my-company,dc=com" "(objectClass=posixAccount)"

    Это поможет убедиться, что пользователи существуют и доступны для поиска.

  7. Перезагрузка служб:
    Если вы внесли изменения в конфигурацию, возможно, вам потребуется перезапустить службы, которые используют LDAP, чтобы изменения вступили в силу. Это может включать повторный запуск службы nscd или аналогичных.

Итак, следуя данным рекомендациям, вы сможете отладить использование getent passwd и обеспечить отображение пользователей по всему дереву LDAP, а не только в OU People. Если проблема не решится, возможно, стоит обратиться к логам вашего LDAP сервера для получения более детальной информации о выполненных запросах.

Оцените материал
Добавить комментарий

Капча загружается...