Comment installer getent sur Snow Leopard?


9

J'ai plusieurs scripts qui nécessitent l'utilitaire getent. De plus, j'ai lu plusieurs conseils pratiques qui utilisent getent .

getentest un utilitaire de mise en réseau largement disponible sur les systèmes Unix, * BSD et Linux. Cet outil est couramment utilisé par les administrateurs système et les utilisateurs expérimentés pour rechercher des informations sur le réseau (adresses IP, etc.). En ce qui concerne les noms d'hôte, getentc'est l'un des rares outils qui utilisent à la fois /etc/hostset DNS.

Comme le dit Wikipedia :

getent est une commande unix qui aide un utilisateur à obtenir des entrées dans un certain nombre de fichiers texte importants appelés bases de données.

L'important ici est de getentrechercher les mêmes services de noms dans le même ordre que la plupart des applications sur un système de type Unix. Cela le rend inestimable lors du débogage du système ou des problèmes d'application. Des outils comme diget nslookupspécifiquement ne regardent que le DNS, tandis dsclque vous attendez que vous précisiez les services de noms que vous souhaitez rechercher.

Je voudrais utiliser getentpour deux tests:

  1. Analyser /etc/hostsavant d'interroger DNS . Par exemple, si j'ajoute testhost.example.orgà /etc/hosts, je getent hosts testhost.example.orgdois utiliser l'entrée /etc/hostsavant d'interroger DNS.

  2. Requête LDAP à l'aide de getent

MacPorts ne semble pas fournir un package fournissant getent.

getentExiste- t- il sur Snow Leopard?


Qu'est-ce que c'est getent? Qu'est ce que ça fait? Sur quels systèmes est-il généralement disponible?
Cajunluke

3
Il n'y a pas de mappage 1: 1 getentsur OS X car OS X utilise DirectoryService pour résoudre des choses comme les noms d'hôte. Pouvez-vous donner des getentexemples d'utilisation spécifiques ? Cela vous montrerait la manière correspondante d'obtenir plus facilement ces informations sur OS X.
Ian C.

@CajunLuke: getentest généralement disponible sur les systèmes Unix, * BSD et Linux. J'ai mis à jour ma question.
Stefan Lasiewski

Alors qu'est-ce que vous essayez de faire getent? Résoudre les noms d'hôte d' /etc/hostsavant d'utiliser DNS?
Ian C.

Mon cas d'utilisation le plus courant consiste à résoudre les noms d'hôte /etc/hostsantérieurs au DNS, ce qui est utile pour le serveur Web et d'autres tests de réseau. Mais moi (et d'autres administrateurs système) j'utilise aussi getent pour d'autres choses, comme le dépannage de LDAP.
Stefan Lasiewski

Réponses:


9

dscacheutilest probablement la meilleure façon de procéder. Il n'émule pas le processus de recherche habituel, il l' utilise , vous obtiendrez donc les mêmes résultats qu'une recherche standard (y compris la mise en cache, / etc / hosts, les enregistrements informatiques dans les services d'annuaire, DNS, mDNS pour les noms .local, etc).

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 69.192.45.15

$ dscacheutil -q host -a name gordons-mbp.local
name: gordons-mbp.local
ipv6_address: fe80:5::e6ce:8fff:fe50:136

name: gordons-mbp.local
ip_address: 192.168.10.249

$ dscacheutil -q host -a ip_address 127.0.0.1
name: localhost
alias: 1.0.0.127.in-addr.arpa 
ip_address: 127.0.0.1

$ dscacheutil -q user -a name gordon
name: gordon
password: ********
uid: 501
gid: 20
dir: /Users/gordon
shell: /bin/bash
gecos: Gordon Davisson


2

Ce n'est pas sorcier de chercher la source actuelle d'OpenSolaris (ou d'un autre système d'exploitation, j'essaierais l'un des BSD plutôt que Linux) et le porterais; Je l'ai fait fonctionner principalement en désactivant simplement les choses pour lesquelles macOS n'avait pas d'équivalent (netmasks et projet - spécifiques à Solaris). Ou on peut l'écrire en perl assez facilement. Il y a longtemps que quelqu'un en a fait une limitée, et j'en ai fait une plus complète; il ne prend pas en charge les éthers car il n'y a pas de recherche standard pour cela depuis perl, mais le reste semble fonctionner correctement.

getent.pl

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.