У меня есть sssd, установленный на сервере для использования учетных записей Active Directory, и я могу подключиться, но я вижу, что UID для пользователей AD очень неправильные (например, для posix UID пользователей AD установлено значение 1234, но я вижу что-то большое например 987654987654 на машине sssd). Файл /etc/sssd/sssd.conf выглядит так...

[sssd]
domains = ucera.local
config_file_version = 2
services = nss, pam

[domain/ucera.local]
ad_domain = co.local
krb5_realm = CO.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = False
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
default_domain_suffix = co.local

Любые идеи, почему это может происходить? Любые советы по отладке?


Я также заметил, что у меня иногда возникают проблемы со входом в систему с пользователями AD. Например. при попытке ssh на сервер я получаю отказ в пароле, но когда ssh входит в качестве root, затем su в этого пользователя и выходит, я могу затем ssh на сервер напрямую как этот пользователь AD (например, сервер не понимает, что у него есть это пользователя, пока я не «напомню» ему, su введя имя этого пользователя) (не уверен, что это связано).

0
lampShadesDrifter 15 Янв 2020 в 02:42

1 ответ

На основе найденной статьи вот вроде исправили проблему, файл sssd.conf теперь выглядит как...

[sssd]
domains = ucera.local
config_file_version = 2
services = nss, pam

[domain/ucera.local]
ad_domain = co.local
krb5_realm = CO.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = False
default_shell = /bin/bash
ldap_id_mapping = False
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_group_gid_number = gidNumber
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
default_domain_suffix = co.local

Изменения:

  1. Я думаю, что ldap_id_mapping = False является основным исправлением, которое позволяет использовать идентификаторы AD posix ID, а не вычислять их на основе атрибута пользователей AD objectSID.
  2. Я также добавил настройки ldap_..._...id_number = ... и установил их в соответствующие поля атрибутов в AD для пользователей. После выполнения части (1) UID на машине не изменились. По сравнению с другими серверами, использующими sssd, у которых не было этой проблемы, единственным отличием в sssd.conf было изменение (1). Я думаю, что на других машинах уже было ldap_id_mapping = False, поэтому, когда пользователи AD впервые вошли в систему на этих машинах, они автоматически получили свои идентификаторы AD posix UID. На этом запутанном сервере идентификаторы UID уже были установлены неправильно, поэтому необходимо явно принудительно использовать атрибуты AD uidNumber и gidNumber.

Затем перезапустите службу sssd.


Не очень разбираюсь в AD и SSSD, поэтому, если я что-то неправильно истолковал, оставьте комментарий, чтобы сообщить мне.

0
lampShadesDrifter 15 Янв 2020 в 02:42