getent passwd quando a configuração nsswitch passwd é: arquivos ldap

1

Se /etc/nsswitch.conf tiver:

passwd:     files ldap

esta linha, e eu faço getent passwd primeiro percorrerá a lista /etc/passwd e depois passará por todos os usuários no LDAP? Isso parece ser o que acontece.

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

    
por Gregg Leventhal 12.12.2013 / 18:57

2 respostas

1

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

    
por 12.12.2013 / 21:46
1

getent retornará quaisquer que sejam os resultados para o "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á como desabilitar o comportamento de fornecer todos os resultados para os vários back-ends configurados em /etc/nsswitch.conf .

getent e /etc/nsswitch.conf são ambos parte do nss (Name Service Switch).

Trecho da página de manual do nss

Each call to a function which retrieves data from a system database like the password or group database is handled by the Name Service Switch implementation in the GNU C library. The various services provided are implemented by independent modules, each of which naturally varies widely from the other.

The default implementations coming with the GNU C library are by default conservative and do not use unsafe data. This might be very costly in some situations, especially when the databases are large. Some modules allow the system administrator to request taking shortcuts if these are known to be safe. It is then the system administrator's responsibility to ensure the assumption is correct.

There are other modules where the implementation changed over time. If an implementation used to sacrifice speed for memory consumption it might create problems if the preference is switched.

Backends

Há uma variedade destes, muitos para cobrir aqui. Mas é suficiente dizer que existem backends como sssd (sss / LDAP), NIS e NIS +, para citar alguns.

Então, dependendo de qual sistema especificou no seu arquivo /etc/nsswitch.conf , irá influenciar o que a saída getent mostra quando um dado "banco de dados" é consultado, como getent passwd .

Referências

por 06.12.2014 / 16:38