Para gerenciar minha árvore LDAP eu uso alguns scripts que varrem toda a árvore usando o comando “getent passwd”. Até algum tempo atrás eles funcionavam muito bem, até que em dado momento comecei a notar que alguns usuários não eram afetados como esperava. Depois de quebrar a cabeça tentando encontrar o motivo achei a resposta e com ela a solução. O OpenLDAP limita o número de resultados da pesquisa em 500 itens (ou algo próximo disso). Foi só alterar este valor e tudo estava resolvido.
Pra quem não conhece, o comando “Getent” é um comando disponível em toda instalação Linux e permite consultar as bases de usuários, senha, grupos, aliases, hosts, redes, serviços e protocolos (respectivamente passwd, shadow, aliases, hosts, networks, services e protocols) usadas pelo seu sistema. Se, por exemplo, o seu sistema autentica usuários de uma base remota (como um servidor LDAP, por exemplo) e você quer saber se ele está realmente encontrando os usuários, você precisará deste comando.
O meu problema era que se eu procurasse um usuário diretamente com o comando abaixo, que retorna os dados de um usuário especifico, os dados do usuário eram retornados sem problemas porém se eu omitisse o login do sujeito, na intenção de ver toda a listagem, ele limitava a algo em torno dos 525 (embora o limite padrão seja 500 e tenha encontrado relatos com diversos valores próximo disso) era este o problema.
getent passwd meuusuario
Se você tiver este problema, a solução é simples, rápida e não requer qualquer instalação ou compilação. Basta alterar o parâmetro SizeLimit do OpenLDAP, reiniciar o serviço (na verdade eu não tenho muita certeza se é necessário reiniciar) e mais nada. Todos seus usuários serão listados normalmente.
Como o meu servidor LDAP usa o novo formato de configuração eu tive entrar no diretório /etc/ldap/slapd.d/cn=config, editar o arquivo olcDatabase={-1}frontend.ldif e alterar o atributo “olcSizeLimit” que tinha o valor 500 para outro maior. No meu caso era suficiente colocar 1500, mas você pode colocar qualquer valor que resolva o seu problema, reinicie o serviço slapd e seja feliz.
Depois que se descobre o problema e como resolver é fácil achar as referências, então se precisar mais informações consulte as páginas abaixo:
OpenLDAP. Limits. http://www.openldap.org/doc/admin24/limits.html
Zitrax. LDAP configurations: olcSizeLimits. http://www.zytrax.com/books/ldap/ch6/#sizelimit