
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?