
이 질문은 RedHat Enterprise Linux 7/8/9 및 Ubuntu 22.04에 관한 것이지만 대부분의 배포판에서는 꽤 보편적일 것입니다.
두 개의 도메인을 사용하여 Active Directory와 openldap 기반 LDAP 서버 모두에 대한 인증을 위해 sssd를 사용하고 있습니다.
사용자는 다음 계정으로 성공적으로 로그인할 수 있습니다.[이메일 보호됨]Active Directory에 대해 인증하거나 다음으로 로그인합니다.[이메일 보호됨]openldap에 대해 인증합니다. 두 경우 모두 신원 정보(UID, Gecos 및 홈 디렉터리)는 openldap 서버에서 가져옵니다. 모든 관련 사용자가 두 시스템 모두에 존재합니다(이런 방식으로 설정된 이유는 길고 여기서는 실제로 관련이 없습니다).
사용자가 두 도메인 중 어떤 도메인을 사용하는지에 관계없이 Linux에서는 해당 로그인을 동일한 사용자로 간주합니다.
방금 로컬 /etc/{password,shadow}에 대해 인증하고 네트워크 트래픽이 전혀 없이 ID 정보를 얻는 새 SSSD 도메인("local"이라는 이름)을 추가해야 하는 새로운 요구 사항이 생겼습니다. /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
오픈LDAP:
[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가 로컬 파일을 사용하도록 하는 방법이 있습니까?