Se /etc/nsswitch.conf tiver:

passwd: files ldap 

esta linha nela, e eu getent passwd executará primeiro o /etc/passwd lista e, em seguida, percorrer todos os usuários no LDAP? Parece ser isso o que está acontecendo.

Eu tentei em um servidor Red Hat e ele estava rolando milhares de linhas quando /etc/passwd tem apenas 36 linhas.

Comentários

  • O que você descreve me parece perfeitamente normal. Quando você usa LDAP, getent passwd listará todos os usuários (local + ldap)
  • Obrigado, ' é muito possível que seja normal. Sou relativamente novo no uso de LDAP com Linux. Anteriormente, eu gerenciava usuários usando um utilitário de gerenciamento de configuração.

Resposta

getent retornará quaisquer que sejam os resultados para qualquer “banco de dados” que você especificar. Ele determina quais backends usar ao construir esse “banco de dados” com base no conteúdo de /etc/nsswitch.conf.

getent lista seus “bancos de dados” quando você consulta sua página de uso, getent --help.

Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow 

Até onde sei, não há wa y para desativar seu comportamento de fornecer todos os resultados para os vários back-ends configurados em /etc/nsswitch.conf.

getent e /etc/nsswitch.conf fazem parte do nss (Name Service Switch).

Trecho da página do manual do nss

Cada chamada para uma função que recupera dados de um banco de dados do sistema como a senha ou banco de dados de grupo é tratada pela implementação do Name Service Switch na biblioteca GNU C. Os vários serviços fornecidos são implementados por módulos independentes, cada um dos quais naturalmente varia amplamente um do outro.

As implementações padrão que vêm com a biblioteca GNU C são conservadoras por padrão e não usam dados inseguros. Isso pode ser muito caro em algumas situações, especialmente quando os bancos de dados são grandes. Alguns módulos permitem que o administrador do sistema solicite a tomada de atalhos, caso sejam seguros. É então responsabilidade do administrador do sistema garantir que a suposição esteja correta.

Existem outros módulos onde a implementação mudou ao longo do tempo. Se uma implementação costumava sacrificar a velocidade para o consumo de memória, poderia criar problemas se o a preferência é trocada.

Back-ends

Há uma variedade desses, muitos para cobrir aqui. Mas basta dizer, lá são back-ends como sssd (sss / LDAP), NIS e NIS +, para citar alguns.

Portanto, dependendo de qual seu sistema especificou em seu /etc/nsswitch.conf arquivo, influenciará a saída getent que mostra quando um determinado “banco de dados” é consultado, como getent passwd.

Referências

Comentários

  • O link howto sssd está morto.
  • @GhostL Budap – link alterado

Resposta

Sim, se você apenas disser getent passwd, ele listará todos os usuários que pode encontrar em qualquer um dos bancos de dados listados em nsswitch.

Comentários

  • apenas para os provedores NSS que permitem enumeração. Por exemplo, com sss, você pode desativar a enumeração para alguns domínios.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *