GNU/Linux >> Tutoriels Linux >  >> Cent OS

CentOS/RHEL :la commande "id" ne répertorie pas le nom du groupe par rapport au GID pour les utilisateurs LDAP

Le problème

Lors de l'exécution de la commande "id" sur les utilisateurs LDAP, elle n'affiche que le gid de certains groupes secondaires et le nom du groupe n'est pas imprimé :

# id user1
uid=48254(user1) gid=100(users) groups=100(users),5002(group1),5001(group2),41257(group3),856(group4),56971

Et, l'erreur ci-dessous a été enregistrée dans /var/log/sssd/sssd_nss.log :

(Tue Mar 14 05:40:09 2020) [sssd[nss]] [nss_cmd_getgrgid_search] (0x0010): getgrgid call returned more than one result !?!

La solution

Le nouveau groupe a été ajouté avec le même GID que celui du groupe existant.

# id user1
uid=48254(user1) gid=100(users) groups=100(users),5002(group1),5001(group2),41257(group3),856(group4),56971(group6)

# getent group group5
group5:*:56971:

# id user1
uid=48254(user1) gid=100(users) groups=100(users),5002(group1),5001(group2),41257(group3),856(group4)

Le même ID est mappé à 2 groupes, group5 et group6. Ainsi, lorsque nous identifions une fois, nous obtenons un résultat correct pour l'utilisateur (tous les groupes d'utilisateurs sont affichés). Ensuite, nous exécutons getent group pour l'autre groupe :

# getent group group5

Mais après cela, il semble que le groupe soit supprimé des résultats de l'identifiant.

SSSD a une restriction stricte dans la SysDB selon laquelle un seul groupe peut exister avec un ID particulier. Lorsqu'un groupe est renommé sur le serveur, cela devient un problème d'ordre des opérations, que nous le traitions correctement ou non. Nous ne prenons pas en charge plusieurs entrées avec le même GID et cela entraînerait un comportement inattendu.

L'erreur ci-dessous a donc été enregistrée dans /var/log/sssd/sssd_nss.log :

(Tue Mar 14 05:40:09 2020) [sssd[nss]] [nss_cmd_getgrgid_search] (0x0010): getgrgid call returned more than one result !?!

Ainsi, une fois que vous avez corrigé l'entrée dans le serveur LDAP, le sssd devrait pouvoir la récupérer correctement. Si ce n'est pas le cas, attendez 300 secondes car le temps par défaut pour que ce cache se vide est de 300 secondes (c'est-à-dire cinq minutes). Vous pouvez également utiliser la commande ci-dessous pour vider le cache sssd avec les options appropriées selon l'exigence :

Le -E flag peut être utilisé pour invalider toutes les entrées mises en cache. L'exception est les règles sudo.

# sss_cache -E

Vous pouvez également invalider un utilisateur spécifique uniquement à partir du cache avec le -u drapeau, suivi du nom d'utilisateur.

# sss_cache -u user1

Vous pouvez également supprimer le fichier sss_cache du répertoire /var/lib/sss/db/.

# service sssd stop
# rm -rf /var/lib/sss/db/*
# service sssd start


Cent OS
  1. CentOS / RHEL 7 :Comment ouvrir le port Firewall pour le serveur Samba en utilisant FirewallD

  2. CentOS / RHEL 7 :Comment renommer le groupe de volume pour root et swap

  3. CentOS / RHEL 7 :Comment activer telnet pour un groupe d'utilisateurs

  4. SSH sans mot de passe ne fonctionne pas pour les utilisateurs locaux sur les serveurs LDAP - CentOS/RHEL 7

  5. Comment appliquer la complexité du mot de passe pour tous les utilisateurs, y compris "root", en utilisant le module PAM "passwdqc" CentOS/RHEL

Comment répertorier les packages installés sur RHEL 8 / CentOS 8 Linux

Installez nmap sur RHEL 8 / CentOS 8

Comment activer les paramètres proxy pour la commande Yum sur les serveurs RHEL / CentOS

Configurer OpenLDAP avec SSL sur CentOS 7 / RHEL 7

Les 50 meilleurs exemples de commandes YUM pour les utilisateurs RHEL ou CentOS

Comment lister tous les utilisateurs d'un groupe sous Linux