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

Как сделать так, чтобы локальный / etc / group имел приоритет над LDAP при конфликте имен?

У нас есть рабочий LDAP. Однако недавно мы столкнулись с проблемой из-за того, что некоторые имена пользователей и имена групп существуют как в локальных файлах, так и в LDAP. В частности, пользователь и группа apache существовали как в:

После недавнего обновления yum (CentOS 5) выяснилось, что идентификатор группы процесса изменился со значения в /etc/group к значению в LDAP (в то время как идентификатор пользователя остался идентификатором из /etc/passwd). Поскольку некоторые файлы, необходимые для httpd, принадлежали пользователю root, с группой apache (из /etc/group), но не читаемым во всем мире, это вызвало проблемы.

Обратите внимание, что у нас уже есть nss_initgroups_ignoreusers apache,... в обоих /etc/ldap.conf и /etc/openldap/ldap.conf. Также в /etc/nsswitch.conf у нас есть

passwd:     files ldap
group:     files ldap
shadow:     files ldap

а в остальном нормальные биты и бобы.

Итак, если имя существует как в LDAP, так и в локальных файлах, есть ли способ гарантировать, что идентификатор из локальных файлов будет иметь приоритет над идентификатором в LDAP?

Не знаю, в вашем примере это опечатка, но база данных группы называется group и нет groups.

Вы должны иметь возможность остановить поиск после успешного поиска, например.

passwd:    files [SUCCESS=return] ldap
group:     files [SUCCESS=return] ldap

Вышеупомянутое действие в любом случае должно быть глухим, поэтому вы должны подтвердить, что то, что вы ищете, действительно находится в files.

ЗАМЕЧАНИЯ В каждом процессе, использующем nsswitch.conf, весь файл читается только один раз; если файл позже будет изменен, процесс продолжится с использованием старой конфигурации.