¿Cuál es el equivalente de OS X al NSS de Linux?

3

Cualquier persona que esté familiarizada con los aspectos internos de Linux sabe acerca de NSS ; es el subsistema que los servicios, como gethostname() y tal, delegan en. El código que realmente hace consultas de DNS o lee /etc/passwd , etc., está en la forma de módulos NSS. Además, los módulos NSS adicionales se pueden compilar y vincular, lo que permite a los desarrolladores proporcionar diferentes formas de buscar hosts, usuarios, etc.

Estoy tratando de encontrar el subsistema equivalente en OS X, pero parece ser algo que ha cambiado con frecuencia a lo largo de los años. Aparentemente se usó un sistema antiguo llamado NetInfo desde los días de NeXtStep, pero eso no ha existido desde 10.4. Aparentemente, esto fue superado por algo llamado lookupd, pero tampoco creo que esté presente en Lion, ya que no hay un proceso de búsqueda en mi sistema y man lookupd redirige a dscacheutil .

¿Cuál es el sistema actual que Lion utiliza para delegar este tipo de búsquedas? ¿Apple proporciona alguna documentación para escribir nuevos complementos para lo que sea este subsistema, para permitir que diferentes backends presten estos servicios?

Otra forma de pensar esta pregunta es : ¿qué subsistema en OSX es responsable de leer /etc/hosts y resolver búsquedas según su contenido?

    
pregunta Adrian Petrescu 10.12.2011 - 22:43

1 respuesta

4

No estoy muy familiarizado con Linux, pero parece que estás buscando Directorio abierto . Advertencia: Apple usa este término para referirse a todas las diversas partes de la arquitectura de su servicio de directorio, por lo que si busca en Google "Open Directory" encontrará el servidor de directorio basado en LDAP de Apple y el demonio que se ejecuta en OS X. la función que estás buscando.

Permítame intentar darle una descripción histórica de su desarrollo (y espero recordar qué cambios ocurrieron en qué versión):

NextSTEP (el sistema operativo en el que se basaba OS X) tenía un demonio llamado lookupd que, según tengo entendido, era muy similar a NSS. La mayoría de los datos reales se almacenaron en las bases de datos de NetInfo (que podrían ser locales en la computadora o accedidas a través de la red desde un servidor).

Las primeras versiones de OS X agregaron otro demonio, llamado DirectoryService, que hacía cosas similares (pero de manera un poco diferente); como no hizo todo lo que hizo lookupd, cualquier consulta a la que no pudo encontrar una respuesta se le entregaría a lookupd. Resultado: una cierta cantidad de redundancia y confusión. IIRC, en realidad hubo algunas consultas que se dirigieron a buscar primero, y que podría tener que entregarlas a DirectoryService. También había dos conjuntos diferentes de complementos (equivalentes a los módulos NSS): los de DirectoryService y los de lookupd. Usuarios locales & Los grupos aún estaban almacenados en NetInfo, pero estaban en desuso para las cuentas de red en favor de LDAP.

Ya no recuerdo los detalles, pero las responsabilidades de las versiones pasaron gradualmente de lookupd a DirectoryService.

En 10.5, se eliminó NetInfo; los usuarios locales, los grupos, etc. se almacenaron en archivos de lista de propiedades XML en / var / db / dslocal /. El complemento (disculpe, ahora se llaman "conectores") para acceder a ellos tiene el nombre no local "Genérico" (a veces se lo denomina "dslocal" para desambiguarlo). En este punto, lo único que lookupd todavía es responsable es por las búsquedas de DNS (aunque las búsquedas de multidifusión se entregan a mDNSResponder).

En 10.6, se eliminó lookupd; mDNSResponder ahora maneja todas las búsquedas de DNS, tanto estándar (unicast) como multicast.

En 10.7, el demonio de Open Directory fue renombrado de DirectoryService a opendirectoryd.

    
respondido por el Gordon Davisson 11.12.2011 - 07:52

Lea otras preguntas en las etiquetas