GNU/Linux >> Znalost Linux >  >> Cent OS

Účet Windows Active Directory zobrazuje nekonzistentní UID/GID v různých klientech Linux SSSD (CentOS/RHEL)

Problém

ID příkaz zobrazuje různé UID a GID na různých serverech sssd pro stejného uživatele Windows Active Directory. Po vyčištění mezipaměti sssd pomocí sss_cache se UID a GID stále liší.

1. Výstup z jednoho serveru:

# id ad_test_user
uid=[UID](ad_test_user) gid=[GID](ad_test_group) groups=[GID](ad_test_group2),[GID](ad_test_group)
# sss_cache -u ad_test_user
# id ad_test_user
uid=[UID](ad_test_user) gid=[GID](ad_test_group) groups=[GID](ad_test_group2),[GID](ad_test_group)

2. Výstup z jiného serveru:

# id ad_test_user
uid=[UID](ad_test_user) gid=[GID](ad_test_group) groups=[GID](ad_test_groups),[GID](ad_test_group3),[GID](ad_test_group4),[GID](ad_test_group5), [GID](ad_test_group2),[GID](ad_test_group)
# sss_cache -u ad_test_user
# id ad_test_user
uid=[UID](ad_test_user) gid=[GID](ad_test_group) groups=[GID](ad_test_groups),[GID](ad_test_group3),[GID](ad_test_group4),[GID](ad_test_group5), [GID](ad_test_group2),[GID](ad_test_group)

Možné dopady na server Linux:Uživatel AD se nemůže přihlásit do Linuxu

# su - ad_test_user
Last login: Fri Sep 11 11:11:11 COT 2015 from 10.10.xx.xx on pts/1
Last failed login: Tue Mar 13 13:13:13 COT 2015 from 10.10.10.2 on ssh:hostname
There were 1 failed login attempts since the last successful login.
su: warning: cannot change directory to /home/ad_test_user: Permission denied
id: cannot find name for group ID [GID]
-bash: /home/ad_test_user/.bash_profile: Permission denied
-bash-4.2$

Řešení

UID a GID uživatele Linuxu pochází z Windows AD SID. Sssd to nezmění. Funkce mapování ID umožňuje sssd fungovat jako klient služby Active Directory, aniž by správci vyžadovali rozšíření uživatelských atributů o podporu atributů POSIX pro identifikátory uživatelů a skupin.

Active Directory poskytuje objectSID pro každý objekt uživatele a skupiny v adresáři. Toto objectSID lze rozdělit na součásti, které představují identitu domény Active Directory a relativní identifikátor (RID) objektu uživatele nebo skupiny. Algoritmus sssd pro mapování ID bere řadu dostupných UID a rozděluje je na stejně velké části – nazývané „řezy “-. Každý řez představuje prostor dostupný pro doménu Active Directory.

Když se poprvé objeví záznam uživatele nebo skupiny pro určitou doménu, sssd(8) alokuje jeden z dostupných řezů pro tuto doménu. Aby bylo toto přiřazení řezů opakovatelné na různých klientských počítačích, používá se následující algoritmus:řetězec SID je předán přes algoritmus murmurhash3, aby byl převeden na 32bitovou hašovanou hodnotu. Potom vezměte modul této hodnoty s celkovým počtem dostupných řezů pro výběr řezu.

Poznámka :Je možné narazit na kolize v hashe a následném modulu. V těchto situacích se použije další dostupný řez, ale nemusí být možné reprodukovat stejnou přesnou sadu řezů na jiných počítačích, protože pořadí, ve kterém se setkají, určuje jejich řez. V této situaci se doporučuje buď přejít na používání explicitních atributů POSIX ve službě Active Directory (zakázat mapování ID), nebo nakonfigurovat výchozí doménu, která zaručí, že alespoň jedna bude vždy konzistentní. Podrobnosti viz „Konfigurace“.

Když je v sssd(8 povoleno mapování ID), atributy uidNumber a gidNumber jsou ignorovány. Tím se zabrání možnosti konfliktů mezi automaticky přiřazenými a ručně přiřazenými hodnotami. Pokud potřebujete použít ručně přiřazené hodnoty, VŠECHNY hodnoty je nutné přiřadit ručně.

Poznámka :změna konfiguračních možností souvisejících s mapováním ID způsobí změnu ID uživatelů a skupin. V současné době sssd(8) nepodporuje změnu ID, takže databáze sssd musí být odstraněna. Protože hesla uložená v mezipaměti jsou také uložena v databázi, odstranění databáze by mělo být prováděno pouze v době, kdy jsou ověřovací servery dosažitelné, jinak by uživatelé mohli být uzamčeni. Aby bylo možné heslo uložit do mezipaměti, musí být provedeno ověření.

Soubor sssd.conf soubor na klientech Linuxu by měl být konzistentní. Zejména následující dva parametry musí být konzistentní ve všech sssd.conf, protože ovlivňují algoritmus mapování ID sssd:

1. ldap_idmap_default_domain_sid (řetězec)
Uveďte SID domény výchozí domény. Tím bude zaručeno, že tato doména bude vždy přiřazena k nulovému řezu v mapě ID, čímž se obejde výše popsaný algoritmus murmurhash.
Výchozí:není nastaveno

2. ldap_idmap_default_domain (řetězec)
Uveďte název výchozí domény.
Výchozí:není nastaveno


Cent OS
  1. Nainstalujte VirtualBox 4.2 na CentOS 6 / RHEL 6

  2. Jak omezit přihlášení uživatelů a skupin služby Active Directory ke klientovi CentOS/RHEL 7

  3. Výběr SSSD nebo Winbind &Samba pro integraci Active Directory v CentOS/RHEL

  1. Jak nainstalovat VirtualBox 4.1 na CentOS 5 / RHEL 5

  2. Jak se připojit k doméně Active Directory pomocí Realmd (nakonfigurujte CentOS/RHEL 7 jako klienta Active Directory)

  3. Klient NFSv4 ukazuje „nikdo“ jako vlastníka a skupinu pro přípojný bod (CentOS/RHEL)

  1. Jak nainstalovat balíček RPM do jiného adresáře v CentOS/RHEL/Fedora

  2. Nelze se připojit k serveru Linux Samba k doméně Windows Active Directory

  3. Jak nakonfigurovat sssd pro práci s více doménami Active Directory v různých doménových strukturách (CentOS/RHEL)