Active-Directory
從 Active Directory 分配 UID 和 GID
我的 CentOS 7 機器已成功加入域 FOOBAR(由 驗證
realm list
),以下是來自 AD(非本地)的使用者的資訊:[root@centos7 ~]# id jdoe@FOOBAR.GLOBAL uid=5631533(jdoe@FOOBAR.GLOBAL) gid=5600513(domain users@FOOBAR.GLOBAL) groups=5600513(domain users@FOOBAR.GLOBAL),5631532(othergroup@FOOBAR.GLOBAL)
UID 和 GID 是如何分配的?是否有可能以某種方式將它們映射到某個期望的值?
SSSD 中的 AD 映射是使用守護程序本身中的算法(可能是雜湊函式)確定的:因為它是內置的,如果您保持預設值相同,則使用 SSSD 的每台電腦都應將 ID 映射到相同的值,而不管電腦如何正在使用。以下是Red Hat 對 AD 映射的解釋:
SSSD 可以使用 AD 使用者的 SID 在稱為 ID 映射的過程中通過算法生成 POSIX ID。ID 映射在 AD 中的 SID 和 Linux 上的 ID 之間創建映射。
- 當 SSSD 檢測到新的 AD 域時,它會將一系列可用 ID 分配給新域。因此,每個 AD 域在每個 SSSD 客戶端電腦上具有相同的 ID 範圍。
- 當 AD 使用者首次登錄 SSSD 客戶端電腦時,SSSD 會在 SSSD 記憶體中為該使用者創建一個條目,包括基於使用者 SID 的 UID 和該域的 ID 範圍。
- 因為 AD 使用者的 ID 是從同一個 SID 以一致的方式生成的,所以使用者在登錄到任何 Red Hat Enterprise Linux 系統時都具有相同的 UID 和 GID。
[您可以使用 sssd.conf的 domain/ name [] 部分中的](https://linux.die.net/man/5/sssd.conf)[`min_id`和
max_id
](https://linux.die.net/man/5/sssd.conf)設置 ID 最小值和最大值。在“域部分”下查看描述;“範例”有一個使用範例:[sssd] domains = LDAP services = nss, pam config_file_version = 2 [nss] filter_groups = root filter_users = root [pam] [domain/LDAP] id_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com auth_provider = krb5 krb5_server = kerberos.example.com krb5_realm = EXAMPLE.COM cache_credentials = true min_id = 10000 max_id = 20000 enumerate = False
如果您覆蓋這些值,如果您想保持一致的映射,請確保在使用 SSSD 中該域的任何其他系統上設置相同的映射!