Ubuntu 20 в Active Directory - назначены неправильные идентификаторы пользователя и группы

Я пытаюсь подключить свою виртуальную машину Ubuntu 20 к нашей настройке Active Directory. Вроде все работает, за исключением того, что идентификаторы пользователей, показанные для пользователей, не совпадают с данными в Active Directory. Это означает, что (среди прочих проблем) пользователи не могут получить доступ к своим домашним каталогам, которые обслуживаются / монтируются с другого сервера.

ID пользователя для rgoodman должен быть таким, как показано здесь (с неработающей машины):

$ ls -ld /home/rgoodman
drwxr-xr-x 70 1101210 1100513 12288 Feb 23  2019 /home/rgoodman

На a рабочий сервер (на котором на самом деле работает CentOS), я вижу следующее:

$ id rgoodman
uid=1101210(rgoodman) gid=1100513(domain users) groups=1100513(domain users),1101210(rgoodman),1110778(customer-support-sg),1110770(cacti-sg),1110867(software-development-sg),1110838(phoenix-dev-sg),1000001(BUILTIN\users)

На моем неработающем сервере я вижу следующее:

$ id rgoodman
uid=945201210(rgoodman) gid=945200513(domain users) groups=945200513(domain users),945210867(software-development-sg),945210838(phoenix-dev-sg),945210778(customer-support-sg),945210770(cacti-sg)

Интересно, что конец каждого номера одинаковый, но префикс другой . Как мне изменить префикс на этой машине, чтобы он соответствовал тому, что есть в AD? Является ли BUILTIN \ users в конце списка рабочих машин ключом к разгадке?

1
задан 17 August 2020 в 18:47

1 ответ

Я предполагаю, что вы используете SSSD для интеграции с Active Directory. Я предполагаю, что конфигурация SSSD на ваших серверах CentOS и Ubuntu просто различается.

«Конец каждого числа» почти наверняка соответствует RID в Active Directory. Обычно это добавляется к диапазону «фрагмента» в SSSD. Это сбивает с толку, но достаточно хорошо задокументировано: Ubuntu Manpage: sssd-ad - поставщик SSSD Active Directory - сопоставление идентификаторов .

Вы говорите «идентификаторы пользователей ... не соответствуют тому, что находится в Active Directory. ". Вы действительно определяете uid в Active Directory или действительно имеете в виду, что они не соответствуют серверу CentOS? Если вы определяете значения в AD, например, используя атрибут uidNumber для uid, затем вы можете обновить свой sssd.conf , чтобы отключить автоматическое сопоставление идентификаторов. Конфигурация будет примерно такой:

ldap_id_mapping = False
ldap_schema = ad

Если вы хотите сохранить автоматическое сопоставление, которое, как я полагаю, происходит, потенциальное исправление - установить домен AD в качестве домена по умолчанию. Домен по умолчанию сопоставляется со срезом 0. Это может помочь согласовать сопоставление идентификаторов с другими настройками:

ldap_idmap_default_domain_sid = S-1-5-21-blahblahblah

Вы можете установить debug_level на высокое значение, и журналы должны достаточно четко указать, как uid создается.

Если вы измените настройки сопоставления идентификаторов в SSSD, обязательно полностью очистите кеш SSSD перед повторным тестированием:

systemctl stop sssd
rm /var/lib/sss/{db,mc}/*
sss_cache -E
# optionally clear debug logs
truncate -s 0 /var/log/sssd/*.log
systemctl start sssd

Вы не предоставили никакой информации о том, как различные системы присоединены к AD, поэтому могут быть задействованы и другие инструменты. Например, Samba может использоваться для интеграции с AD и использует собственные параметры сопоставления идентификаторов.

0
ответ дан 21 August 2020 в 07:57

Другие вопросы по тегам:

Похожие вопросы: