1

Я отлаживаю проблему, когда при входе в систему я получаю сообщение об ошибке, cannot find name for group ID 387 . Я пытаюсь выяснить, какой должна быть эта группа и почему мой пользователь связан с ней.

Используя strace я обнаружил, что getgroups вызывается при запуске bash и возвращает

getgroups(6, [20, 106, 387, 513, 2385, 2447]) = 6

Когда я посмотрел /etc/group я не нашел группу 387. Но мой вопрос заключается в том, почему getgroups вернула бы это число в первую очередь.

Я использую Ubuntu 12.04, но я вхожу с LDAP. Когда я захожу на другой компьютер с той же учетной записью, я получаю другой список номеров (getgroups(7, [106, 513, 515, 516, 519, 520, 2503]) = 7).

Поэтому мне интересно, каков источник информации, которую запрашивает getgroups . Я предполагаю, что моя проблема - некоторое несоответствие между локальными группами и группами LDAP, но я не уверен, как все это работает.

1 ответ1

1

Различные источники информации и их приоритет определены в файле конфигурации /etc/nssswitch.conf . В этом файле конфигурации указывается, какие модули NSS следует использовать при использовании таких функций, как getgroups() или getpwent() и другие.

В вашем посте предлагается, чтобы ваша система использовала каталог LDAP в качестве источника для пользователей и групп, поэтому группы, которые вы видите, скорее всего, получены из модуля libnss_ldap . В зависимости от конфигурации /etc/nsswitch.conf локально определенные группы могут переопределять то, что возвращает модули LDAP NSS. Модули LDAP NSS также могут быть настроены по-разному между двумя вашими хостами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .