
Этот вопрос касается RedHat Enterprise Linux 7/8/9 и Ubuntu 22.04, но, вероятно, он довольно универсален для большинства дистрибутивов.
У меня sssd работает для аутентификации как с Active Directory, так и с LDAP-сервером на основе openldap, используя два домена.
Пользователи могут успешно войти в систему как[email protected]и аутентифицируйтесь в Active Directory или войдите в систему как[email protected]и аутентифицироваться через openldap. Информация об идентичности (UID, Gecos и домашний каталог) поступает с сервера openldap в обоих случаях. Все соответствующие пользователи существуют в обеих системах (длинная история, почему это настроено таким образом, и не особо актуально здесь).
Независимо от того, какой из двух доменов использует пользователь, Linux будет видеть этот логин как одного и того же пользователя.
Я только что получил новое требование добавить новый домен SSSD (с именем «local»), который проходит аутентификацию по локальному /etc/{password,shadow}, а также получает идентификационную информацию без какого-либо сетевого трафика. /etc/password и /etc/shadow будут заполнены правильно (это выходит за рамки этого вопроса).
Есть ли способ создать домен sssd, который будет использовать локальные файлы в качестве источника аутентификации и идентификации?
Это, возможно, не относится к делу, но вот два существующих домена SSSD.
Активный каталог:
[domain/ad.mydomain.com]
auth_provider = krb5
id_provider = ldap
# We do not allow changing passwords
# chpass_provider = none
krb5_server = <redacted>
krb5_realm = AD.MYDOMAIN.COM
# Regardless of the auth provider, the id information always comes from
# LDAP.
ldap_schema = rfc2307
ldap_uri = ldaps://<redacted>/
ldap_search_base = ou=people,dc=mydomain,dc=com
ldap_group_member = memberuid
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/openldap/cacerts/<redacted>
ldap_default_bind_dn = <redacted>
ldap_default_authtok_type = password
ldap_default_authtok = <redacted>
ldap_user_ssh_public_key = sshPublicKey
entry_cache_timeout = 600
ldap_network_timeout = 3
cache_credentials = True
override_homedir = /home/%u
fallback_homedir = /home/%u
default_shell = /bin/bash
# Some performance tweaks. Without it, LDAP is painfully slow!
enumerate = false
ignore_group_members = true
openldap:
[domain/mydomain.com]
auth_provider = ldap
id_provider = ldap
# We do not allow changing passwords outside of USD_ONE
# chpass_provider = none
# Regardless of the auth provider, the id information always comes from
# LDAP.
ldap_schema = rfc2307
... Remainder is same as for Active Directory
Я бы хотел сделать что-то вроде этого (на самом деле это не работает):
[domain/local]
auth_provider = files
id_provider = files # don't use LDAP for this domain
... other parameters
Есть ли способ заставить SSSD использовать локальные файлы?