Назад | Перейти на главную страницу

Попробуйте аутентификацию LDAP перед локальной аутентификацией

Я установил систему LDAP в своей локальной сети (CentOS7), и, похоже, она работает должным образом. Теперь я создал пользователя в LDAP, имя которого точно такое же, как имя уже существующего локального пользователя на одном из моих клиентов LDAP. Когда я проверяю их на клиенте, например:

getent passwd | grep anakin

Я получил:

anakin:x:1000:1000:Anakin Skywalker:/home/anakin:/bin/bash
anakin:*:2000:1000:Anakin Skywalker:/home/anakin:/bin/bash

так что я знаю, что они оба действительно существуют. Поэтому, когда я вхожу в систему как Анакин и проверьте мой идентификатор, он говорит мне:

uid=1000(anakin) gid=1000(Jedi) [...]

Для меня это выглядит так, как будто я вошел в систему как локальный пользователь, а не как пользователь LDAP. Возможно, это настроено по умолчанию, так что это нормально, но как мне это изменить, чтобы я вошел в систему как пользователь LDAP до того, как машина проверит наличие локальных пользователей с тем же именем пользователя? Я полагаю, это как-то связано с пам, но на самом деле все файлы в /etc/pam.d/ начинать с:

# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.

Я пытался решить свою проблему с помощью authconfig --disableshadow но не добился никакого прогресса.

Другое дело, что если у меня разные пароли для обоих пользователей с одинаковым именем, я могу войти в систему с обоими паролями, но всегда буду локальным пользователем, даже если я использовал пароль пользователя LDAP. Я не знаю, действительно ли аутентификация должна работать так.

Это не имеет ничего общего с файлами конфигурации в /etc/pam.d, или даже вообще PAM.

Служба, о которой вы говорите, известна как Переключатель службы имен, (NSS); его цель - запросить информацию из различных доступных баз данных, например, passwd, group, shadow и т. д.

Порядок записей в /etc/nsswitch.conf - это порядок, в котором будет запрашиваться каждая база данных.

Так как mdpc заявилиз-за проблем, связанных с сетью, запросы пользователей через LDAP иногда могут привести к сбою. Однако здесь что-то вроде nscd может помочь.

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

Я считаю, что лучше всего это изменить в nsswitch.conf.

Тем не менее, предупреждение состоит в том, что в случае проблемы с сетью вы можете захотеть иметь несколько локальных учетных записей для восстановления, то, что вы предлагаете, может вызвать некоторые проблемы. Поэтому я бы по-прежнему придерживался passwd: local ldap и удалял все перекрывающиеся учетные записи.