Siguiente: , Anterior: , Subir: Configuración del sistema   [Índice general][Índice]


10.11 Selector de servicios de nombres

El módulo (gnu system nss) proporciona una interfaz con el archivo de configuración del selector de servicios de nombres o NSS (véase NSS Configuration File en The GNU C Library Reference Manual). En resumen, NSS es un mecanismo que permite la extensión de libc con nuevos métodos de búsqueda de “nombres”, lo que incluye nombres de máquinas, nombres de servicios, cuentas de usuaria y más (véase System Databases and Name Service Switch en The GNU C Library Reference Manual).

La configuración de NSS especifica, para cada base de datos del sistema, que método de búsqueda debe ser usado, y cómo los varios métodos se enlazan entre sí—por ejemplo, bajo qué circunstancias NSS deberá probar con el siguiente método en la lista. La configuración de NSS se proporciona en el campo name-service-switch de las declaraciones operating-system (véase name-service-switch).

Como ejemplo, la siguiente declaración configura NSS para que use el motor nss-mdns, que permite las búsquedas de nombres de máquinas sobre DNS multicast (mDNS) para nombres de máquinas terminados en .local:

(name-service-switch
   (hosts (list %files    ;primero, comprueba /etc/hosts

                ;; Si lo anterior no funcionó, prueba
                ;; con 'mdns_minimal'.
                (name-service
                  (name "mdns_minimal")

                  ;; 'mdns_minimal' tiene autoridad sobre
                  ;; '.local'.  Cuando devuelve 'not-found,
                  ;; no es necesario intentarlo con los
                  ;; métodos siguientes.
                  (reaction (lookup-specification
                             (not-found => return))))

                ;; Si no, usa DNS.
                (name-service
                  (name "dns"))

                ;; Finalmente, prueba con 'mdns' "al completo".
                (name-service
                  (name "mdns")))))

No se preocupe: la variable %mdns-host-lookup-nss (véase a continuación) contiene esta configuración, de manera que no tiene que escribirla si todo lo que desea es que funcione la búsqueda de nombres de máquina en .local.

Fíjese que, en este caso, además de establecer el valor de name-service-switch en la declaración operating-system, es necesario también usar el servicio avahi-service-type (véase avahi-service-type) o %desktop-services, donde está incluido. Esto permite el acceso a nss-mdsn desde el daemon de la caché del servicio de nombres (véase nscd-service).

Por conveniencia, las siguientes variables proporcionan configuraciones NSS típicas.

Variable Scheme: %default-nss

Esta es la configuración predeterminada del selector de servicios de nombres, un objeto name-service-switch.

Variable Scheme: %mdns-host-lookup-nss

Esta es la configuración del selector de servicios de nombres que permite la búsqueda de nombres de máquinas por DNS multicast (mDNS) para nombres de máquinas terminados en .local.

La referencia de la configuración del selector de servicios de nombres se proporciona a continuación. Tiene una asociación directa con el formato del archivo de configuración de la biblioteca C, por lo que se recomienda el manual de la biblioteca C para obtener más información (véase NSS Configuration File en The GNU C Library Reference Manual). En comparación con el formato del archivo de configuración del NSS de libc, no solo tiene solo la ventaja de la cálida sensación proporcionada por la adición de paréntesis que tanto nos gustan, sino que también tiene comprobaciones estáticas: conocerá los errores sintácticos y tipográficos con la ejecución de guix system.

Tipo de datos: name-service-switch

El tipo de datos que representa la configuración del selector de servicios de nombres (NSS). Cada campo a continuación representa una de las bases de datos del sistema admitidas.

aliases
ethers
group
gshadow
hosts
initgroups
netgroup
networks
password
public-key
rpc
services
shadow

The system databases handled by the NSS. Each of these fields must be a list of <name-service> objects (see below).

Tipo de datos: name-service

Este es el tipo de datos que representa un servicio de nombres real y la acción de búsqueda asociada.

name

Una cadena que denota el nombre de servicio (véase Services in the NSS configuration en The GNU C Library Reference Manual).

Fíjese que los servicios de nombres enumerados aquí deben ser visibles para nscd. Esto se consigue mediante la adición del parámetro #:name-services a nscd-service con la lista de paquetes que proporcionan los servicios de nombres necesarios (véase nscd-service).

reaction

Una acción especificada mediante el uso del macro lookup-specification (véase Actions in the NSS configuration en The GNU C Library Reference Manual). Por ejemplo:

(lookup-specification (unavailable => continue)
                      (success => return))

Siguiente: , Anterior: , Subir: Configuración del sistema   [Índice general][Índice]