3 votes

Quel est l'équivalent pour OS X du NSS de Linux ?

Toute personne familière avec les rouages de Linux connaît l'existence de NSS ; c'est le sous-système qui sert, par exemple, de base à l'élaboration d'un plan d'action. gethostname() et autres, délèguent à. Le code qui effectue les requêtes DNS ou qui lit les données du /etc/passwd etc., se présente sous la forme de modules NSS. En outre, des modules NSS supplémentaires peuvent être compilés et liés, ce qui permet aux développeurs de proposer différentes manières de rechercher des hôtes, des utilisateurs, etc.

J'essaie de trouver le sous-système équivalent dans OS X, mais il semble que ce soit quelque chose qui ait changé fréquemment au fil des ans. Apparemment, un ancien système appelé NetInfo était utilisé depuis l'époque de NeXtStep, mais il n'existe plus depuis la version 10.4. Il a apparemment été remplacé par quelque chose appelé lookupd, mais je ne pense pas qu'il soit encore présent dans Lion, car il n'y a pas de processus lookupd en cours d'exécution sur mon système, et man lookupd redirige vers dscacheutil .

Quel est le système actuel utilisé par Lion pour déléguer ce type de recherche ? Est-ce qu'Apple fournit de la documentation pour écrire de nouveaux plugins pour ce sous-système, quel qu'il soit, afin de permettre à différents backends de fournir ces services ?

Une autre façon d'aborder cette question est la suivante : Quel est le sous-système responsable de la lecture dans OSX ? /etc/hosts et de résoudre les requêtes basées sur son contenu ?

4voto

Gordon Davisson Points 30215

Je ne suis pas très familier avec Linux, mais il semble que vous recherchiez Répertoire ouvert . Avertissement : Apple utilise ce terme pour désigner les différentes parties de son architecture de services d'annuaire. Si vous tapez "Open Directory" sur Google, vous trouverez à la fois le serveur d'annuaire LDAP d'Apple et le démon qui fonctionne sous OS X et qui exécute la fonction que vous recherchez.

Je vais essayer de vous donner un aperçu historique de son développement (et j'espère me souvenir des changements apportés à chaque version) :

NextSTEP (le système d'exploitation sur lequel OS X était basé) disposait d'un démon appelé lookupd qui était, d'après ce que j'ai compris, très similaire à NSS. La plupart des données réelles étaient stockées dans des bases de données NetInfo (qui pouvaient être soit locales sur l'ordinateur, soit accessibles via le réseau à partir d'un serveur).

Les premières versions d'OS X ont ajouté un autre déamon, nommé DirectoryService, qui faisait des choses similaires (mais un peu différemment) ; comme il ne faisait pas tout ce que faisait lookupd, toute requête pour laquelle il ne trouvait pas de réponse était transmise à lookupd. Résultat : un certain nombre de redondances et de confusions. IIRC, il y avait en fait des requêtes qui étaient dirigées vers lookupd d'abord, et qui devaient ensuite être transférées à DirectoryService. Il y avait également deux ensembles différents de plug-ins (équivalents aux modules NSS) : ceux pour DirectoryService et ceux pour lookupd. Les utilisateurs locaux et les groupes étaient toujours stockés dans NetInfo, mais il a été abandonné pour les comptes réseau au profit de LDAP.

Je ne me souviens plus des détails, mais au fil des versions, les responsabilités sont progressivement passées de lookupd à DirectoryService.

En 10.5, NetInfo a été supprimé ; les utilisateurs locaux, les groupes, etc. ont été stockés dans des fichiers de liste de propriétés XML sous /var/db/dslocal/. Le plug-in (excusez-moi, on les appelle "connecteurs" maintenant) pour y accéder porte le nom pas du tout générique de "Local" (on l'appelle parfois "dslocal" pour le désambiguïser un peu). A ce stade, la seule chose dont lookupd est encore responsable est la recherche DNS (bien qu'il transfère la recherche multicast à mDNSResponder).

Dans la version 10.6, lookupd a été supprimé ; mDNSResponder gère désormais toutes les requêtes DNS, qu'elles soient standard (unicast) ou multicast.

Dans la version 10.7, le démon Open Directory a été renommé DirectoryService en opendirectoryd.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X