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

La cuenta de Active Directory de Windows muestra un UID/GID incoherente en diferentes clientes Linux SSSD (CentOS/RHEL)

El problema

El identificador El comando muestra diferentes UID y GID en diferentes servidores sssd para el mismo usuario de Windows Active Directory. Después de purgar el caché sssd con sss_cache, el UID y el GID siguen siendo diferentes.

1. Salida de un servidor:

# 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. Salida desde otro servidor:

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

Posibles impactos en el servidor Linux:el usuario de AD no puede iniciar sesión en Linux

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

La solución

El UID y GID del usuario de Linux provienen de Windows AD SID. El sssd no lo cambiará. La función de mapeo de ID permite que sssd actúe como un cliente de Active Directory sin requerir que los administradores amplíen los atributos de usuario para admitir atributos POSIX para identificadores de usuario y grupo.

Active Directory proporciona un objectSID para cada usuario y objeto de grupo en el directorio. Este objectSID se puede dividir en componentes que representan la identidad del dominio de Active Directory y el identificador relativo (RID) del objeto de usuario o grupo. El algoritmo de mapeo de ID de sssd toma un rango de UID disponibles y lo divide en secciones de componentes de igual tamaño, llamadas "segmentos “-. Cada segmento representa el espacio disponible para un dominio de Active Directory.

Cuando se encuentra por primera vez una entrada de usuario o grupo para un dominio en particular, el sssd(8) asigna uno de los segmentos disponibles para ese dominio. Para que esta asignación de segmento sea repetible en diferentes máquinas cliente, se utiliza el siguiente algoritmo:la cadena SID se pasa a través del algoritmo murmurhash3 para convertirla en un valor hash de 32 bits. Luego tome el módulo de este valor con el número total de cortes disponibles para elegir el corte.

Nota :Es posible encontrar colisiones en el hash y el módulo posterior. En estas situaciones, se utiliza el siguiente segmento disponible, pero puede que no sea posible reproducir exactamente el mismo conjunto de segmentos en otras máquinas, ya que el orden en que se encuentren determinará su segmento. En esta situación, se recomienda cambiar al uso de atributos POSIX explícitos en Active Directory (deshabilitar la asignación de ID) o configurar un dominio predeterminado para garantizar que al menos uno sea siempre coherente. Consulte "Configuración" para obtener más detalles.

Cuando la asignación de ID está habilitada en sssd(8), los atributos uidNumber y gidNumber se ignoran. Esto es para evitar la posibilidad de conflictos entre los valores asignados automáticamente y los asignados manualmente. Si necesita usar valores asignados manualmente, TODOS los valores deben asignarse manualmente.

Nota :el cambio de las opciones de configuración relacionadas con la asignación de ID hará que cambien los ID de usuario y grupo. Por el momento, sssd(8) no admite el cambio de ID, por lo que se debe eliminar la base de datos sssd. Debido a que las contraseñas en caché también se almacenan en la base de datos, la eliminación de la base de datos solo debe realizarse mientras los servidores de autenticación estén accesibles; de lo contrario, los usuarios podrían quedar bloqueados. Para almacenar en caché la contraseña, se debe realizar una autenticación.

El sssd.conf El archivo en clientes Linux debe ser consistente. Especialmente los siguientes dos parámetros deben ser consistentes en todos los sssd.conf porque afectan el algoritmo de asignación de ID de sssd:

1. ldap_idmap_default_domain_sid (cadena)
Especifique el SID de dominio del dominio predeterminado. Esto garantizará que este dominio siempre se asignará a la división cero en el mapa de ID, sin pasar por el algoritmo Murmurhash descrito anteriormente.
Predeterminado:no establecido

2. ldap_idmap_default_domain (cadena)
Especifique el nombre del dominio predeterminado.
Predeterminado:no establecido


Cent OS
  1. Instale VirtualBox 4.2 en CentOS 6 / RHEL 6

  2. Cómo instalar un paquete RPM en un directorio diferente en CentOS/RHEL/Fedora

  3. Cómo restringir usuarios y grupos de Active Directory para iniciar sesión en el cliente CentOS/RHEL 7

  4. Elegir SSSD o Winbind &Samba para la integración de Active Directory en CentOS/RHEL

  5. El cliente NFSv4 muestra a "nadie" como propietario y grupo para el punto de montaje (CentOS/RHEL)

RHEL 8/CentOS 8 cambiar nombre de host

Cómo cambiar la dirección IP en RHEL 8 / CentOS 8 Linux

Cómo instalar Java en RHEL 8 / CentOS 8 Linux

Cómo instalar WordPress en RHEL 8 / CentOS 8 Linux

Cómo instalar GIMP en CentOS 8 / RHEL 8 Linux

Cómo integrar RHEL 7 o CentOS 7 con Windows Active Directory