Como o LDAP manipula grupos de usuários suplementares / secundários?

1

Já vi perguntas semelhantes relacionadas à configuração do Apache para autenticação via LDAP, mas essa questão básica ainda me confunde.

Na minha configuração, criei usuários que têm o mesmo GID principal e adicionei usuários a vários grupos (complementares / secundários). Eu testei essas contas de usuário e, na maioria das situações, tudo funciona bem - minhas permissões baseadas em associação de grupo suplementar estão funcionando. Eu usei o pacote smbldap-tools para configurar meus usuários e grupos e, especificamente, usei smbldap-usermod -G +NEW_GROUP user para adicionar usuários aos grupos suplementares.

Se eu getent group , vejo esses grupos suplementares e seus membros. Bom.

Se eu olhar para a entrada LDAP de um dos grupos suplementares, vejo todos os usuários listados como esperado.

No entanto, quando olho para a entrada LDAP de cada usuário, apenas um gidNumber correspondente ao grupo primário é listado. Ou seja, as entradas LDAP de cada usuário listam apenas o grupo principal e não mencionam grupos secundários.

Como o Samba / LDAP (usando smbldap-tools) manipula grupos suplementares / secundários?

Além disso, como eu poderia formar um filtro de pesquisa para identificar membros de um grupo suplementar?

    
por Mr. Shickadance 22.11.2011 / 20:35

2 respostas

2

O LDAP é apenas um diretório de informações. Como essa informação é armazenada e recuperada depende da aplicação. Neste caso, os usuários e grupos posix são modelados após os arquivos / etc / passwd e / etc / group. Cada entrada de usuário lista o gid para seu grupo primário. Cada grupo lista todos os seus membros (geralmente menos os que o listam como seu grupo primário).

O Samba e os vários plug-ins do nss para armazenar informações de usuários e grupos no LDAP fazem uma pesquisa para localizar os grupos dos quais um usuário é membro no login. O atributo memberUid deve ser indexado para tornar as pesquisas de associação de grupo rápidas. Para uma determinada conta de usuário, o filtro de pesquisa é algo como:

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

Se você quisesse ver os usuários em um grupo específico, poderia pesquisar com:

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

Isso pressupõe que todos os seus grupos são do posixGroup objectClass.

    
por 22.11.2011 / 21:48
3

Não sou um grande usuário do OpenLDAP, mas se fosse um ambiente do Active Directory, usaria o atributo "memberOf" presente em cada objeto de conta de usuário. No mundo do OpenLDAP, parece que o memberOf overlay fará o que você está procurando. Eu suspeito que esta questão dirá o que você precisa saber para fazer isso funcionar.

    
por 22.11.2011 / 20:44