¿Cómo maneja LDAP los grupos de usuarios suplementarios/secundarios?

¿Cómo maneja LDAP los grupos de usuarios suplementarios/secundarios?

He visto preguntas similares relacionadas con la configuración de Apache para autenticarse mediante LDAP, pero esta pregunta básica todavía me confunde.

En mi configuración, creé usuarios que tenían el mismo GID principal, luego agregué usuarios a varios grupos (suplementarios/secundarios). He probado estas cuentas de usuario y, en la mayoría de las situaciones, todo funciona bien: mis permisos basados ​​en la membresía de un grupo complementario están funcionando. Utilicé el smbldap-toolspaquete para configurar mis usuarios y grupos, y específicamente solía smbldap-usermod -G +NEW_GROUP useragregar usuarios a los grupos suplementarios.

Si lo hago, getent groupveo esos grupos suplementarios y sus miembros. Bien.

Si miro la entrada LDAP de uno de los grupos suplementarios, veo todos los usuarios enumerados tal como se esperaba.

Sin embargo,cuando miro la entrada LDAP de cada usuario, solo gidNumberaparece la correspondiente al grupo principal. Es decir, las entradas LDAP para cada usuario solo enumeran el grupo principal y no mencionan los grupos secundarios.

¿Cómo maneja Samba/LDAP (usando smbldap-tools) grupos suplementarios/secundarios?

Además, ¿cómo podría formar un filtro de búsqueda para identificar miembros de un grupo complementario?

Respuesta1

LDAP es sólo un directorio de información. La forma en que se almacena y recupera esa información depende de la aplicación. En este caso, los usuarios y grupos posix se modelan a partir de los archivos /etc/passwd y /etc/group. Cada entrada de usuario enumera el gid de su grupo principal. Cada grupo enumera a todos sus miembros (generalmente menos los que lo enumeran como su grupo principal).

Samba y los diversos complementos nss para almacenar información de usuarios y grupos en LDAP realizan una búsqueda para encontrar los grupos de los que es miembro un usuario al iniciar sesión. El atributo memberUid debe indexarse ​​para agilizar las búsquedas de membresía de grupos. Para una cuenta de usuario determinada, el filtro de búsqueda es algo como:

(&(objectclass=posixGroup)(memberUid=$user))

Si desea ver los usuarios de un grupo en particular, puede buscar con:

(&(objectclass=posixGroup)(cn=$group))

Esto supone que todos sus grupos son de la clase de objeto posixGroup.

Respuesta2

No soy un gran usuario de OpenLDAP, pero si se tratara de un entorno de Active Directory, usaría el atributo "memberOf" presente en cada objeto de cuenta de usuario. En el mundo OpenLDAP, parece elmiembro de superposiciónHará lo que estás buscando. Sospechoesta preguntale dirá lo que necesita saber para que esto funcione.

información relacionada