Usando sssd para autenticação e identificação local em/etc/passwd?

Usando sssd para autenticação e identificação local em/etc/passwd?

Esta questão é sobre RedHat Enterprise Linux 7/8/9 e Ubuntu 22.04, mas provavelmente é bastante universal para a maioria das distros.

Eu tenho o sssd trabalhando para autenticação no Active Directory e em um servidor LDAP baseado em openldap, usando dois domínios.

Os usuários podem fazer login com sucesso como[e-mail protegido]e autentique-se no Active Directory ou faça login como[e-mail protegido]e autenticar no openldap. As informações de identidade (UID, Gecos e diretório inicial) vêm do servidor openldap em ambos os casos. Todos os usuários relevantes existem em ambos os sistemas (uma longa história sobre o motivo pelo qual está configurado dessa maneira e não é realmente relevante aqui).

Independentemente de qual dos dois domínios o usuário usa, o Linux verá esse login como o mesmo usuário.

Acabei de receber um novo requisito para adicionar um novo domínio SSSD (chamado "local") que se autentica no /etc/{password,shadow} local e também obtém as informações de identidade sem qualquer tráfego de rede. /etc/password e /etc/shadow serão preenchidos corretamente (fora do escopo desta questão).

Existe uma maneira de criar um domínio sssd que use os arquivos locais como fonte de autenticação e identificação?

Provavelmente isso não é relevante, mas aqui estão os dois domínios SSSD existentes.

Diretório Ativo:

[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

abrirldap:

[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

O que eu gostaria de fazer é algo como (isso realmente não funciona):

[domain/local]
auth_provider = files
id_provider = files # don't use LDAP for this domain
... other parameters

Existe uma maneira de fazer com que o SSSD use os arquivos locais?

informação relacionada