3 votos

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

Cualquiera que esté familiarizado con el funcionamiento interno de Linux sabe que NSS es el subsistema que da servicio, como gethostname() y tal, delegar en. El código que realmente hace consultas DNS o lee /etc/passwd etc., está en forma de módulos NSS. Además, se pueden compilar y enlazar módulos NSS adicionales, lo que permite a los desarrolladores ofrecer 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. Al parecer, un viejo sistema llamado NetInfo fue utilizado desde los días de NeXtStep, pero que no ha sido de alrededor de 10,4. Esto fue aparentemente reemplazado por algo llamado lookupd, pero no creo que esté presente en Lion tampoco, ya que no hay ningún proceso lookupd corriendo en mi sistema, y man lookupd redirige a dscacheutil .

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

Otra forma de pensar en esta pregunta es : ¿Qué subsistema en OSX es responsable de la lectura /etc/hosts y resolver las búsquedas en función de su contenido?

4voto

Nate Puntos 220

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

Permítanme que intente hacer un repaso histórico de su desarrollo (y espero recordar qué cambios se produjeron en cada versión):

NextSTEP (el sistema operativo en el que se basó OS X) tenía un demonio llamado lookupd que era, según tengo entendido, muy similar a NSS. La mayor parte de los datos se almacenaban en bases de datos NetInfo (que podían ser locales en el ordenador, o bien se accedía a ellas a través de la red desde un servidor).

Las primeras versiones de OS X añadieron otro deamon, llamado DirectoryService, que hacía cosas similares (pero un poco diferentes); como no hacía todo lo que hacía lookupd, cualquier consulta para la que no pudiera encontrar una respuesta se pasaba a lookupd. Resultado: cierta redundancia y confusión. Recuerdo que había algunas consultas que se dirigían primero a lookupd, y que luego tenían que pasar a DirectoryService. También había dos conjuntos diferentes de plug-ins (equivalente a los módulos NSS): los de DirectoryService y los de lookupd. Los usuarios y grupos locales se seguían almacenando en NetInfo, pero se obvió para las cuentas de red en favor de LDAP.

Ya no recuerdo los detalles, pero a lo largo de las versiones las responsabilidades fueron pasando de lookupd a DirectoryService.

En 10.5 se eliminó NetInfo; los usuarios locales, grupos, etc. se almacenaban en archivos de listas de propiedades XML en /var/db/dslocal/. El plug-in (perdón, ahora se llaman "conectores") para acceder a ellos tiene el nombre nada genérico de "Local" (a veces se le llama "dslocal" para desambiguar un poco). En este punto, la única cosa de la que lookupd sigue siendo responsable es de las búsquedas de DNS (aunque pasa las búsquedas de multidifusión 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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X