GNU/Linux >> Tutoriales Linux >  >> Cent OS

CentOS/RHEL:el comando "id" no muestra el nombre del grupo contra GID para usuarios de LDAP

El problema

Al ejecutar el comando "id" contra los usuarios de LDAP, solo muestra el gid para algún grupo secundario y el nombre del grupo no se imprime:

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

Y, el siguiente error se registró en /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 solución

El nuevo grupo se agregó con el mismo GID que el del grupo existente.

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

El mismo ID está asignado a 2 grupos, group5 y group6. Entonces, cuando hacemos una identificación, obtenemos un resultado correcto para el usuario (se muestran todos los grupos de usuarios). Luego ejecutamos getent group para el otro grupo:

# getent group group5

Pero después de eso, parece que el grupo se eliminó de los resultados de identificación.

SSSD tiene una restricción estricta en SysDB de que solo puede existir un grupo con una identificación particular. Cuando se cambia el nombre de un grupo en el servidor, se convierte en un problema de orden de operaciones, ya sea que lo manejemos correctamente o no. No admitimos varias entradas con el mismo GID y, al hacerlo, se producirá un comportamiento inesperado.

Entonces, el siguiente error se registró en /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 !?!

Por lo tanto, una vez que corrija la entrada en el servidor LDAP, el sssd debería poder recuperarla correctamente. Si no lo hace, espere 300 segundos, ya que el tiempo predeterminado para que ese caché se vacíe es de 300 segundos (es decir, cinco minutos). También puede usar el siguiente comando para vaciar el caché sssd con las opciones adecuadas según el requisito:

El -E bandera se puede utilizar para invalidar todas las entradas en caché. La excepción son las reglas de Sudo.

# sss_cache -E

También puede invalidar a un usuario específico solo desde el caché con -u bandera, seguida del nombre de usuario.

# sss_cache -u user1

Además, puede eliminar el archivo sss_cache desde el directorio /var/lib/sss/db/.

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


Cent OS
  1. Cómo listar usuarios en CentOS 7

  2. CentOS/RHEL 7:Cómo habilitar telnet para un grupo de usuarios

  3. Cómo ejecutar el comando Pstack en CentOS/RHEL

  4. SSH sin contraseña no funciona para usuarios locales en servidores LDAP:CentOS/RHEL 7

  5. CentOS/RHEL 6:Cómo cambiar el nombre del grupo de volúmenes para el dispositivo de disco raíz

Cómo listar paquetes instalados en RHEL 8 / CentOS 8 Linux

Instalar nmap en RHEL 8 / CentOS 8

Cómo habilitar la configuración de proxy para Yum Command en servidores RHEL / CentOS

Configurar OpenLDAP con SSL en CentOS 7 / RHEL 7

Los 50 mejores ejemplos de comandos YUM para usuarios de RHEL o CentOS

Cómo enumerar todos los usuarios de un grupo en Linux