Я готовлюсь к возможному обновлению с 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 или наоборот. Возможно, это не заметно задокументировано на страницах руководства - не стесняйтесь сообщать об ошибке, чтобы улучшить нашу документацию. Спасибо!