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

Как заставить centos 7 использовать идентификаторы uid и gids из активного каталога?

Я готовлюсь к возможному обновлению с CentOS 6 до CentOS 7. Сейчас, в версии 6, мы просто используем LDAP, сопоставленный с AD, для аутентификации. Затем он использует UID и GID из расширения Active Directory для Unix.

В своих экспериментах с CentOS 7 я просмотрел документацию (я думаю, что она была от Red Hat), в которой объяснялось, как присоединиться к домену. Процесс был в основном простым и в основном отлично работает. Однако он не просто использует UID и GID из атрибутов AD Unix. Он сопоставляет эти идентификаторы с совершенно разными идентификаторами. В AD количество пользователей находится в диапазоне 10000. CentOS7 предоставляет каждому пользователю UID в диапазоне 625000000.

До сих пор в моем небольшом тестировании (3 блока) UID, кажется, согласован для всех, и это хорошо. Однако, когда я начну выпускать 7 в производство, это будет постепенное обновление. Я не буду обновлять все коробки одновременно. Меня беспокоят проблемы с пользователями, имеющими разные UID на разных устройствах. Есть ли способ заставить CentOS 7 просто использовать UID и GID в атрибутах AD Unix?

Вот мой smb.conf:

[global]
    workgroup = COMPANY
    client signing = yes
    client use spnego = yes
    kerberos method = secrets and keytab
    log file = /var/log/samba/%m.log
    password server = ad_domaincontroller.company.net
    realm = COMPANY.NET
    security = ads
    server string = Samba Server Version %v
    max log size = 50

А вот и мой sssd.conf

[sssd]
config_file_version = 2
domains = company.net
services = nss, pam, pac

[nss]
filter_groups = root
filter_users = root

[domain/company.net]
id_provider = ad
ad_server = ad_domiancontroller.company.net
ad_hostname = centos7-22.company.net
auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
use_fully_qualified_names = False
cache_credentials = true
ldap_access_order = expire
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = true

Изменить: я попытался добавить ldap_id_mapping = False в sssd.conf, но с этой включенной строкой sssd.service не запустится. Вот результат:

Sep 29 12:59:55 centos7-22 sssd[32827]: Starting up
Sep 29 12:59:55 centos7-22 sssd[32828]: Starting up
Sep 29 12:59:55 centos7-22 sssd[32831]: Starting up
Sep 29 12:59:55 centos7-22 sssd[32830]: Starting up
Sep 29 12:59:55 centos7-22 sssd[32829]: Starting up
Sep 29 12:59:55 centos7-22 sssd[32832]: Starting up
Sep 29 12:59:56 centos7-22 sssd[be[32833]: Starting up
Sep 29 12:59:56 centos7-22 systemd[1]: sssd.service: control process exited, code=exited status=1
Sep 29 12:59:56 centos7-22 systemd[1]: Failed to start System Security Services Daemon.
-- Subject: Unit sssd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit sssd.service has failed.
--
-- The result is failed.
Sep 29 12:59:56 centos7-22 systemd[1]: Unit sssd.service entered failed state.

На странице руководства sssd-ad:

По умолчанию поставщик AD сопоставляет значения UID и GID из параметра objectSID в Active Directory. Подробнее об этом см. В разделе «ИДЕНТИФИКАЦИЯ» ниже. Если вы хотите отключить сопоставление идентификаторов и вместо этого полагаться на атрибуты POSIX, определенные в Active Directory, вы должны установить ldap_id_mapping = False

SSSD внутренне использует идентификаторы как атрибут уникальности, и изменение UID в настоящий момент не поддерживается.

Ожидается и требуется, чтобы база данных была удалена при изменении распределения идентификаторов, как это происходит, если вы переключаетесь с сопоставления идентификаторов на информацию POSIX или наоборот. Возможно, это не заметно задокументировано на страницах руководства - не стесняйтесь сообщать об ошибке, чтобы улучшить нашу документацию. Спасибо!