¿Cómo puedo instalar getent en Snow Leopard?


9

Tengo varios scripts que requieren la utilidad getent. Además, he leído varios consejos útiles que usan getent .

getentes una utilidad de red que está ampliamente disponible en Unix, * BSD y sistemas basados ​​en Linux. Los administradores de sistemas y los usuarios avanzados suelen utilizar esta herramienta para buscar información de red (direcciones IP, etc.). En lo que respecta a los nombres de host, getentes una de las pocas herramientas que usan ambos /etc/hostsy DNS.

Como dice Wikipedia :

getent es un comando unix que ayuda al usuario a obtener entradas en varios archivos de texto importantes llamados bases de datos.

Lo importante aquí es que getentbuscará los mismos servicios de nombres en el mismo orden que la mayoría de las aplicaciones en un sistema similar a Unix. Esto lo hace invaluable al depurar problemas del sistema o de la aplicación. Las herramientas tienen gusto digy nslookupmiran específicamente el DNS solamente, mientras que dsclespera que deletree los servicios de nombres que desea buscar.

Me gustaría usar getentpara dos casos de prueba:

  1. Analizar /etc/hostsantes de consultar DNS . Por ejemplo, si agrego testhost.example.orga /etc/hosts, entonces getent hosts testhost.example.orgdebería usar la entrada de /etc/hostsantes de consultar DNS.

  2. Consulta LDAP usando getent

MacPorts no parece proporcionar un paquete que proporcione getent.

¿Existe getenten Snow Leopard?


¿Qué es getent? ¿Qué hace? ¿En qué sistemas está típicamente disponible?
CajunLuke

3
No hay mapeo 1: 1 para getentOS X porque OS X usa DirectoryService para resolver problemas como nombres de host. ¿Puedes dar algunos getentejemplos de uso específicos ? Haría que mostrarte la forma correspondiente de obtener esa información en OS X más fácil.
Ian C.

@CajunLuke: getentnormalmente está disponible en Unix, * BSD y sistemas similares a Linux. Actualicé mi pregunta.
Stefan Lasiewski

Entonces, ¿qué es lo que estás tratando de hacer getent? ¿Resolver nombres de host /etc/hostsantes de usar DNS?
Ian C.

Mi caso de uso más común es resolver nombres de host /etc/hostsanteriores a DNS, lo cual es útil para el servidor web y otras pruebas de red. Pero yo (y otros administradores de sistemas) también uso getent para otras cosas, como la solución de problemas de LDAP.
Stefan Lasiewski

Respuestas:


9

dscacheutilEs probablemente la mejor manera de hacer esto. No emula el proceso de búsqueda habitual, lo usa , por lo que en realidad obtendrá los mismos resultados que una búsqueda estándar (incluyendo almacenamiento en caché, / etc / hosts, registros de computadora en servicios de directorio, DNS, mDNS para nombres locales, 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

No es ciencia de cohetes rastrear la fuente getent de OpenSolaris (o algún otro sistema operativo, probaría uno de los BSD en lugar de Linux) y portarlo; Conseguí que funcionara principalmente deshabilitando las cosas para las que macOS no tenía ningún equivalente (máscaras de red y proyecto, específicos de Solaris). O se puede escribir en perl con bastante facilidad. Alguien hizo una limitada hace mucho tiempo, y yo hice una más completa; no admite éteres porque no hay una búsqueda estándar para eso de perl, pero el resto parece funcionar bien.

getent.pl

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.