Si /etc/nsswitch.conf
a:
passwd: files ldap
cette ligne dedans, et je fais getent passwd
va-t-elle dabord parcourir le /etc/passwd
liste et puis passez par chaque utilisateur dans LDAP? Cela semble être ce qui se passe.
Je lai essayé sur un serveur Red Hat et il faisait défiler des milliers de lignes alors que /etc/passwd
ne faisait que 36 lignes.
Commentaires
Réponse
getent
retournera quels que soient les résultats pour la « base de données » que vous spécifiez. Il détermine les backends à utiliser lors de la construction de cette « base de données » en fonction du contenu de /etc/nsswitch.conf
.
getent
répertorie ses « bases de données » lorsque vous interrogez sa page dutilisation, getent --help
.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
À ma connaissance, il ny a pas de wa y pour désactiver son comportement de fournir tous les résultats pour les différents backends configurés dans /etc/nsswitch.conf
.
getent
et /etc/nsswitch.conf
font tous deux partie du nss (Name Service Switch).
Extrait de la page de manuel nss
Chaque appel à une fonction qui récupère des données à partir dune base de données système comme le mot de passe ou la base de données de groupe est géré par limplémentation de Name Service Switch dans la bibliothèque GNU C. Les différents services fournis sont implémentés par des modules indépendants, dont chacun varie naturellement largement les uns des autres.
Les implémentations par défaut fournies avec la bibliothèque GNU C sont par défaut conservatrices et nutilisent pas de données non sécurisées. Cela peut être très coûteux dans certaines situations, en particulier lorsque les bases de données sont volumineuses. Certains modules permettent à ladministrateur système de demander des raccourcis si ceux-ci sont connus pour être sûrs. Il incombe alors à ladministrateur système de sassurer que lhypothèse est correcte.
Dans dautres modules, limplémentation a changé au fil du temps. Si une implémentation utilisé pour sacrifier la vitesse pour la consommation de mémoire, cela peut créer des problèmes si le la préférence est changée.
Backends
Il y en a une variété, trop nombreux à couvrir ici. Mais il suffit de dire, là sont des backends tels que sssd
(sss / LDAP), NIS et NIS + pour nen nommer que quelques-uns.
Donc, selon ce que votre système a spécifié dans votre /etc/nsswitch.conf
, influencera la sortie getent
quand une « base de données » donnée est interrogée, comme getent passwd
.
Références
Commentaires
- Le lien sssd howto est mort.
- @GhostLyrics – lien modifié
Réponse
Oui, si vous dites simplement getent passwd
, il listera tous les utilisateurs quil peut trouver dans lune des bases de données répertoriées dans nsswitch.
Commentaires
- uniquement pour les fournisseurs NSS qui activent lénumération. Par exemple, avec
sss
, vous pouvez désactiver lénumération pour certains domaines.
getent passwd
listera tous les utilisateurs (local + ldap)