Wie kann ich getent auf Snow Leopard installieren?

9

Ich habe mehrere Skripte, die das Dienstprogramm erfordern getent. Außerdem habe ich einige nützliche Tipps gelesen, die getent verwenden .

getentist ein Netzwerkdienstprogramm, das auf Unix-, * BSD- und Linux-basierten Systemen weit verbreitet ist. Dieses Tool wird häufig von Sysadmins und Hauptbenutzern verwendet, um Netzwerkinformationen (IP-Adressen usw.) nachzuschlagen. Was Hostnamen angeht, getentist dies eines der wenigen Tools, die sowohl /etc/hostsDNS als auch DNS verwenden.

Wie Wikipedia sagt :

getent ist ein Unix-Befehl, mit dem ein Benutzer Einträge in einer Reihe wichtiger Textdateien abrufen kann, die als Datenbanken bezeichnet werden.

Das Wichtigste dabei ist, dass getentDienste mit demselben Namen in derselben Reihenfolge durchsucht werden wie die meisten Anwendungen auf einem Unix-ähnlichen System. Dies macht es von unschätzbarem Wert beim Debuggen von System- oder Anwendungsproblemen. Tools wie digund nslookupspeziell nur DNS betrachten, dsclerwarten jedoch , dass Sie die Namensdienste buchstabieren, nach denen Sie suchen möchten.

Ich möchte getentfür zwei Testfälle verwenden:

  1. Analysieren Sie, /etc/hostsbevor Sie DNS abfragen . Wenn ich testhost.example.orgzum Beispiel hinzufüge /etc/hosts, getent hosts testhost.example.orgsollte der Eintrag von verwendet werden, /etc/hostsbevor DNS abgefragt wird.

  2. Fragen Sie LDAP mit getent ab

MacPorts scheint kein Paket bereitzustellen getent.

Gibt getentes auf Snow Leopard?

Stefan Lasiewski
quelle
Was ist getent? Was tut es? Auf welchen Systemen ist es normalerweise verfügbar?
Cajunluke
3
Unter getentOS X gibt es keine 1: 1-Zuordnung, da OS X DirectoryService verwendet , um beispielsweise Hostnamen aufzulösen. Können Sie einige konkrete getentAnwendungsbeispiele nennen? Dies würde es einfacher machen, Ihnen den entsprechenden Weg zu zeigen, um diese Informationen unter OS X zu erhalten.
Ian C.
@CajunLuke: getentist normalerweise auf Unix-, * BSD- und Linux-ähnlichen Systemen verfügbar. Ich habe meine Frage aktualisiert.
Stefan Lasiewski
Also, womit versuchst du es zu tun getent? Hostnamen /etc/hostsvor der Verwendung von DNS auflösen?
Ian C.
Mein häufigster Anwendungsfall ist das Auflösen von Hostnamen /etc/hostsvor DNS, was für Webserver und andere Netzwerktests nützlich ist. Aber ich (und andere Systemadministratoren) verwenden getent auch für andere Zwecke, z. B. zur Fehlerbehebung bei LDAP.
Stefan Lasiewski

Antworten:

9

dscacheutilist wahrscheinlich der beste Weg, dies zu tun. Es emuliert nicht den üblichen Suchprozess, sondern verwendet ihn, sodass Sie dieselben Ergebnisse wie bei einer Standardsuche erhalten (einschließlich Caching, / etc / hosts, Computerdatensätze in Verzeichnisdiensten, DNS, mDNS für lokale Namen). usw).

$ 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
Gordon Davisson
quelle
4

Schauen Sie sich an, wie Sie Unix 'getent mit MacOSXs dscl emulieren . Da Sie Skripte haben, die diese verwenden getent, möchten Sie möglicherweise ein Skript als Wrapper um dscl verwenden.

Lars Rohrbach
quelle
2

Es ist kein Hexenwerk, die Getent-Quelle von OpenSolaris (oder einem anderen Betriebssystem, ich würde eher eines der BSDs als Linux ausprobieren) zu durchsuchen und zu portieren. Ich habe das hauptsächlich dadurch funktioniert, dass ich nur die Dinge deaktiviert habe, für die macOS kein Äquivalent hatte (Netzmasken und Projekt - Solaris-spezifisch). Oder man kann es ziemlich einfach in Perl schreiben. Jemand hat vor langer Zeit eine begrenzte gemacht, und ich habe eine vollständigere gemacht; Ether werden nicht unterstützt, da es keine Standard-Suche für Perl gibt, aber der Rest scheint in Ordnung zu sein.

getent.pl

R. Hamilton
quelle