GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Windows Active Directory-Konto zeigt inkonsistente UID/GID in verschiedenen Linux-SSSD-Clients (CentOS/RHEL)

Das Problem

Die ID Der Befehl zeigt unterschiedliche UID und GID auf verschiedenen SSD-Servern für denselben Windows Active Directory-Benutzer an. Nach dem Löschen des sssd-Cache durch sss_cache sind UID und GID immer noch unterschiedlich.

1. Ausgabe von einem Server:

# 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. Ausgabe von einem anderen Server:

# 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)

Mögliche Auswirkungen auf den Linux-Server:AD-Benutzer können sich nicht bei Linux anmelden

# 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$

Die Lösung

Die UID und GID des Linux-Benutzers stammen von der Windows AD SID. Die SSD ändert nichts daran. Die ID-Mapping-Funktion ermöglicht es sssd, als Client von Active Directory zu fungieren, ohne dass Administratoren Benutzerattribute erweitern müssen, um POSIX-Attribute für Benutzer- und Gruppenkennungen zu unterstützen.

Active Directory stellt für jedes Benutzer- und Gruppenobjekt im Verzeichnis eine Objekt-ID bereit. Diese Objekt-ID kann in Komponenten aufgeteilt werden, die die Identität der Active Directory-Domäne und den relativen Bezeichner (RID) des Benutzer- oder Gruppenobjekts darstellen. Der sssd-ID-Zuordnungsalgorithmus nimmt eine Reihe verfügbarer UIDs und unterteilt sie in gleich große Komponentenabschnitte – sogenannte „Slices „-. Jeder Bereich stellt den Speicherplatz dar, der einer Active Directory-Domäne zur Verfügung steht.

Wenn ein Benutzer- oder Gruppeneintrag für eine bestimmte Domain zum ersten Mal angetroffen wird, weist der sssd(8) einen der verfügbaren Slices für diese Domain zu. Um diese Slice-Zuweisung auf verschiedenen Client-Rechnern wiederholbar zu machen, wird der folgende Algorithmus verwendet:Der SID-String wird durch den murmurhash3-Algorithmus geleitet, um ihn in einen 32-Bit-Hash-Wert umzuwandeln. Nehmen Sie dann den Modul dieses Werts mit der Gesamtzahl der verfügbaren Scheiben, um die Scheibe auszuwählen.

Hinweis :Es ist möglich, dass Kollisionen im Hash und im nachfolgenden Modul auftreten. In diesen Situationen wird der nächste verfügbare Slice verwendet, aber es ist möglicherweise nicht möglich, denselben Satz von Slices auf anderen Maschinen zu reproduzieren, da die Reihenfolge, in der sie angetroffen werden, ihren Slice bestimmt. In dieser Situation wird empfohlen, entweder zur Verwendung expliziter POSIX-Attribute in Active Directory zu wechseln (ID-Zuordnung zu deaktivieren) oder eine Standarddomäne zu konfigurieren, um sicherzustellen, dass mindestens eine immer konsistent ist. Einzelheiten finden Sie unter „Konfiguration“.

Wenn ID-Mapping in sssd(8) aktiviert ist, werden die Attribute uidNumber und gidNumber ignoriert. Dies soll die Möglichkeit von Konflikten zwischen automatisch zugewiesenen und manuell zugewiesenen Werten vermeiden. Wenn Sie manuell zugewiesene Werte verwenden müssen, müssen ALLE Werte manuell zugewiesen werden.

Hinweis :Die Änderung der Konfigurationsoptionen im Zusammenhang mit der ID-Zuordnung führt zu einer Änderung der Benutzer- und Gruppen-IDs. Momentan unterstützt sssd(8) keine Änderung von IDs, daher muss die sssd-Datenbank entfernt werden. Da zwischengespeicherte Kennwörter auch in der Datenbank gespeichert werden, sollte das Entfernen der Datenbank nur durchgeführt werden, während die Authentifizierungsserver erreichbar sind, da Benutzer sonst möglicherweise ausgesperrt werden. Um das Passwort zwischenzuspeichern, muss eine Authentifizierung durchgeführt werden.

Die sssd.conf Datei auf Linux-Clients sollte konsistent sein. Insbesondere die folgenden zwei Parameter müssen in allen sssd.conf konsistent sein, da sie den sssd-ID-Zuordnungsalgorithmus beeinflussen:

1. ldap_idmap_default_domain_sid (Zeichenfolge)
Geben Sie die Domänen-SID der Standarddomäne an. Dadurch wird garantiert, dass diese Domain in der ID-Map immer Slice 0 zugewiesen wird, wobei der oben beschriebene Murmurhash-Algorithmus umgangen wird.
Standard:nicht gesetzt

2. ldap_idmap_default_domain (Zeichenfolge)
Geben Sie den Namen der Standarddomäne an.
Standard:nicht gesetzt


Cent OS
  1. So installieren Sie VirtualBox 4.1 unter CentOS 5 / RHEL 5

  2. Installieren Sie VirtualBox 4.2 auf CentOS 6 / RHEL 6

  3. So stellen Sie mit Realmd eine Verbindung zu einer Active Directory-Domäne her (Konfigurieren Sie CentOS/RHEL 7 als Active Directory-Client)

  4. So installieren Sie ein RPM-Paket in einem anderen Verzeichnis in CentOS/RHEL/Fedora

  5. So konfigurieren Sie sssd für die Arbeit mit mehreren Active Directory-Domänen in verschiedenen Gesamtstrukturen (CentOS/RHEL)

RHEL 8 / CentOS 8 ändern den Hostnamen

So ändern Sie die IP-Adresse unter RHEL 8 / CentOS 8 Linux

So installieren Sie Java unter RHEL 8 / CentOS 8 Linux

So installieren Sie WordPress unter RHEL 8 / CentOS 8 Linux

So installieren Sie GIMP unter CentOS 8 / RHEL 8 Linux

So integrieren Sie RHEL 7 oder CentOS 7 in Windows Active Directory