Solaris에서는 좋은 ID 매핑을 얻을 수 있지만 Linux에서는 그렇지 않습니다. 왜 그렇습니까?

Solaris에서는 좋은 ID 매핑을 얻을 수 있지만 Linux에서는 그렇지 않습니다. 왜 그렇습니까?

인증을 위해 Active Directory 서버를 사용하고 있으며 다음과 같이 Solaris가 제대로 작동합니다.어떻게.

모든 것이 잘 작동합니다. 내 사용자 "user1"에게 Windows AD의 올바른 UID인 10000이 할당되었습니다.

리눅스에서는 이것을 따릅니다어떻게AD..user 작업에 참여할 수 있지만 ..id는 10000이 아니라 "uid=744201108"로 완전히 다릅니다. Linux에서 올바른 uid를 얻는 방법은 무엇입니까? 이게 내 SSD야

[sssd]
domains = server.example
config_file_version = 2
services = nss, pam

[domain/server.example]
ad_domain = server.example
krb5_realm = SERVER.EXAMPLE
realmd_tags = manages-system joined-with-adcli 
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = false
fallback_homedir = /home/%u@%d
access_provider = ad

# needed to use correct active directory properties (Windows Server 2003)
ldap_schema = ad
ldap_user_object_class = person
ldap_user_name = msSFU30Name
ldap_user_uid_number = msSFU30UidNumber
ldap_user_gid_number = msSFU30GidNumber
ldap_user_home_directory = msSFU30HomeDirectory
ldap_user_shell = msSFU30LoginShell
ldap_user_gecos = displayName
ldap_group_object_class = group
ldap_group_name = msSFU30Name
ldap_group_gid_number = msSFU30GidNumber

# id 
ldap_idmap_autorid_compat = true

답변1

이것SSSD 문서이에 대해 좀 더 자세히 설명합니다. 기본적으로 SSSD는 새 도메인에 가입하는 데 사용될 때 해당 도메인에 고유하도록 설계된 UID 블록을 할당하여 AD가 할당했을 수 있는 모든 UID 블록을 덮어씁니다. 이를 통해 여러 도메인을 사용할 수 있으며 모든 도메인의 사용자가 고유한 UID를 얻을 수 있습니다.

이 부분이 문서들이 귀하에게 필요한 정보를 제공할 수 있다고 생각합니다. (기본적으로 ldap_id_mapping = FalseSSSD를 설정하고 다시 시작하고 캐시를 삭제합니다)

답변2

대체 솔루션은 Solaris 기반 ldapclient 설정과 완벽하게 작동하는 이 sssd.conf를 사용하는 것입니다.

[sssd]
domains = server.example
config_file_version = 2
services = nss, pam

[domain/server.example]
ad_domain = server.example
krb5_realm = SERVER.EXAMPLE
realmd_tags = manages-system joined-with-adcli 
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
use_fully_qualified_names = False
fallback_homedir = /home/%u@%d
min_id = 10000
max_id = 20000
override_homedir = /home/%u
access_provider = ldap
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
ldap_uri = ldap://windowserver.example.domain
ldap_search_base = dc=server,dc=example
ldap_default_bind_dn = cn=proxyldap,cn=Users,dc=server,dc=example
ldap_default_authtok_type = password
ldap_default_authtok = *********YOURPASSHERE*****
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_schema = rfc2307bis
ldap_user_principal = userPrincipalName
ldap_user_fullname = displayName
ldap_user_name = sAMAccountName
ldap_user_object_class = user
ldap_user_home_directory = unixHomeDirectory
ldap_user_shell = msSFU30LoginShell
ldap_group_object_class = group
ldap_force_upper_case_realm = true
ldap_group_uuid = objectGUID
ldap_user_uuid = objectGUID
ldap_user_gid_number = gidNumber
ldap_user_uid_number = uidNumber

관련 정보