
Diese Frage bezieht sich auf RedHat Enterprise Linux 7/8/9 und Ubuntu 22.04, gilt aber wahrscheinlich ziemlich universell für die meisten Distributionen.
Ich habe SSDD für die Authentifizierung sowohl gegenüber Active Directory als auch gegenüber einem OpenLDAP-basierten LDAP-Server unter Verwendung von zwei Domänen im Einsatz.
Benutzer können sich erfolgreich anmelden als[email geschützt]und authentifizieren Sie sich gegenüber Active Directory oder melden Sie sich an als[email geschützt]und authentifizieren sich gegenüber OpenLDAP. Identitätsinformationen (UID, Gecos und Home-Verzeichnis) kommen in beiden Fällen vom OpenLDAP-Server. Alle relevanten Benutzer sind in beiden Systemen vorhanden (warum es so eingerichtet ist, ist eine lange Geschichte und hier nicht wirklich relevant).
Unabhängig davon, welche der beiden Domänen ein Benutzer verwendet, erkennt Linux diese Anmeldung als denselben Benutzer.
Ich habe gerade eine neue Anforderung erhalten, eine neue SSSD-Domäne (mit dem Namen „local“) hinzuzufügen, die sich gegenüber dem lokalen /etc/{password,shadow} authentifiziert und auch die Identitätsinformationen ohne jeglichen Netzwerkverkehr erhält. /etc/password und /etc/shadow werden korrekt ausgefüllt (außerhalb des Rahmens dieser Frage).
Gibt es eine Möglichkeit, eine SSDD-Domäne zu erstellen, die die lokalen Dateien sowohl als Authentifizierungs- als auch als Identifikationsquelle verwendet?
Dies ist wahrscheinlich nicht relevant, aber hier sind die beiden vorhandenen SSSD-Domänen.
Active Directory:
[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
Ich würde gerne etwas in der Art machen (das funktioniert eigentlich nicht):
[domain/local]
auth_provider = files
id_provider = files # don't use LDAP for this domain
... other parameters
Gibt es eine Möglichkeit, SSSD dazu zu bringen, die lokalen Dateien zu verwenden?