Попытка настроить Samba + OpenLDAP с помощью nss_ldap.
После присоединения Windows7 к автономному PDC Samba я не могу войти в систему с учетной записью домена, если только эта учетная запись не добавлена в файл /etc/passwd.
Я получаю: пользователь в базе данных passdb, но getpwnam() не работает!
Все, что я прочитал, указывает на проблему NSS_LDAP, getent passwd отлично показывает пользователей, и я могу подключиться по ssh к тому же хосту Linux, используя учетную запись пользователя, которая находится только в базе данных LDAP.
Кроме того, если я открою файл /etc/passwd и добавлю строку для соответствующего пользователя, я смогу войти в систему.
Я не использую ПАМ. Я добавил два обновления реестра Windows7, необходимые для сайта Samba.org.
Программный стек выглядит следующим образом: Samba 3.5.3 OpenLDAP 2.4.21 nss_ldap 264
Мысли/предложения?
--------------------------------- ОБНОВИТЬ ---------------- ------------------
Становимся ближе! В моем nsswitch.conf действительно были файлы ldap, поэтому я изменил порядок (теперь файлы ldap), и произошло что-то странное. Заметьте, ранее я сказал, что могу войти в систему с помощью SSH, и getent passwd выгружает пользователей как в ldap, так и в файлы. После внесения изменений в nsswitch.conf, ldap перед файлами, простые команды, такие как ls, заняли много времени. Кроме того, я наблюдал следующие ошибки nss_ldap:
ls: nss_ldap: не удалось найти сервер LDAP — сервер недоступен
а также
ls: nss_ldap: не удалось выполнить привязку к серверу LDAP ldap://tsrvr.example.corp: неверные учетные данные
Я закомментировал строку rootbinddn в ldap.conf, и эти ошибки исчезли, а getent passwd сразу же снова заработал. Порядок вывода также изменился: записи ldap перечислены перед записями файлов.
Тем не менее, мой клиент Windows7 не войдет в домен, и я продолжаю получать то же сообщение об ошибке Samba.
Пользовательский тест в базе данных passdb, но getpwnam() не работает!
В моем smb.conf я попытался удалить строку ldapsam:trusted = yes, и когда я это делаю, я получаю ошибки аутентификации домена.
Я не использую SSL/TLS с OpenLDAP, и у меня есть настройка SSL = no. У меня также есть набор файлов ldap.secret. Я запускаю slapd под учетной записью root. Мой rootbinddn перед комментированием ссылался на пользователя root LDAP с uid=root,ou=Users,dc=example,dc=corp. Пароль пользователя root, использующий CRYPT, совпадает как с bindpw, так и с паролем в /etc/shadow.
Глядя на активность журнала LDAP, когда я получаю ошибку Samba, кажется, что LDAP возвращает правильный результат для запроса Samba:
19 июня 14:20:14 tsrvr slapd[3803]: conn=1025 op=15 SRCH base="dc=example,dc=corp" scope=2 deref=0 filter="(&(uid=test)(objectClass= sambaSamAccount))»19 июня 14:20:14 tsrvr Slapd [3803]: Conn = +1025 ор = 15 SRCH атр = UID uidNumber gidNumber HomeDirectory sambaPwdLastSet sambaPwdCanChange sambaPwdMustChange sambaLogonTime sambaLogoffTime sambaKickoffTime сп зп DisplayName sambaHomeDrive sambaHomePath sambaLogonScript sambaProfilePath описание sambaUserWorkstations sambaSID sambaPrimaryGroupSID sambaLMPassword Сэм baNTPassword SambaDomainName ObjectCass Sambaacctflags Sambamungeddial Sambabadpasswordscount Sambabaspasswordtime Sambapasswasshistory ModifyTimestamp Sambalobonhours ModifyTimestam P UIDNumber GidnoMonhours ModifytimeStam P UIDNumber GiDnumbous Homedirectory LoginShell Gecos Jun 19 14:20:14 TSRVR SLAPD [3803]: Conn = 1025 op = 15 Результат поиска Результаты = 1 101 ERR = 0 NENTRIES = 1 Текст = 1
Любые другие предложения?
Очень признателен