Используем sssd для локальной аутентификации и идентификации по /etc/passwd?

Используем sssd для локальной аутентификации и идентификации по /etc/passwd?

Этот вопрос касается 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 использовать локальные файлы?

Связанный контент