13.7. Escogiendo los Mapas Correctos

Habi�ndose asegurado de que puede acceder al servidor NIS, debe decidir qu� ficheros de configuraci�n reemplazar o aumentar con los mapas NIS. Normalmente querr� usar mapas NIS para las funciones de b�squeda de nodo y de contrase�a. La primera es especialmente �til si carece de servicio BIND. La b�squeda de contrase�a permite a todos los usuarios ingresar en sus cuentas desde cualquier sistema del dominio NIS; normalmente esto implica compartir un directorio /home central entre todos los nodos v�a NFS. El mapa de contrase�as se explica con detalle en la siguiente secci�n.

Otros mapas, como el services.byname, no proporcionan ganancias tan dram�ticas, pero s� le ahorran algo de trabajo de edici�n. El mapa services.byname cobra valor si instala alguna aplicaci�n de red que utilice un servicio que no est� en el fichero est�ndar services.

Generalmente querr� tener donde elegir cuando una funci�n de b�squeda utilice los ficheros locales, cuando consulte a un servidor NIS y cuando utilice otros servidores como el DNS. La libc de GNU le permite configurar el orden en el que una funci�n accede a estos servicios. Esto se controla a trav�s del fichero /etc/nsswitch.conf, que quiere decir Conmutador de Servicio de Nombres (Name Service Switch), aunque por supuesto no est� limitado al servicio de nombres. El fichero contiene una l�nea nombrando el servicio a usar para cada una de las funciones de b�squeda de datos soportadas por la libc de GNU.

El orden correcto de los servicios depende del tipo de datos que ofrece cada servicio. No es probable que el mapa services.byname contenga entradas diferentes a las del fichero local services; s�lo contendr� entradas adicionales. Por tanto, parece razonable consultar primero a los ficheros locales y usar NIS s�lo si el nombre del servicio no se encuentra. Por otra parte, la informaci�n del nombre de nodo puede cambiar frecuentemente, por lo que el servidor DNS o NIS siempre debe tener la informaci�n m�s precisa posible, mientras que el fichero local hosts s�lo se conserva como copia de seguridad por si DNS o NIS fallan. Por tanto, para los nombres de nodo, normalmente querr� que el fichero local se lea en �ltimo lugar.

El siguiente ejemplo muestra c�mo forzar a gethostbyname y gethostbyaddr que busquen en NIS y DNS antes de buscar en el fichero hosts, y c�mo hacer que la funci�n getservbyname busque en los ficheros locales antes de consultar a NIS. Estas funciones de resoluci�n probar�n con cada uno de los servicios listados en orden; si una b�squeda tiene �xito, se devuelve el resultado; si no, probar�n con el siguiente servicio de la lista. La configuraci�n para estas prioridades es:

    # peque�o ejemplo de /etc/nsswitch.conf
    #
    hosts:     nis dns files 
    services:  files nis

Lo siguiente es una lista completa de los servicios y lugares que pueden utilizarse en una entrada del fichero nsswitch.conf. Los verdaderos mapas, ficheros, servidores y objetos consultados dependen del nombre de la entrada. Lo siguiente puede aparecer a la derecha de los dos puntos:

nis

Utilizar el servidor NIS del dominio actual. La situaci�n del servidor consultado se configura en el fichero yp.conf, como se muestra en la secci�n anterior. Para la entrada hosts, se consultan los mapas hosts.byname y hosts.byaddr.

nisplus o nis+

Utilizar el servidor NIS+ de este dominio. La situaci�n del servidor se obtiene a partir del fichero /etc/nis.conf.

dns

Utilizar el servidor de nombres DNS. Este tipo de servicio s�lo es �til con la entrada hosts. Los servidores de nombres consultados todav�a est�n determinados por el fichero est�ndar resolv.conf.

files

Utilizar el fichero local, como el fichero /etc/hosts para la entrada hosts.

compat

Ser compatible con formatos de fichero antiguos. Esta opci�n puede utilizarse cuando se use NYS o la glibc 2.x para hacer b�squedas NIS o NIS+. Como estas versiones normalmente no saben interpretar las entradas antiguas de NIS en los ficheros passwd y group, la opci�n compat les permite funcionar con esos formatos.

db

Buscar la informaci�n en los ficheros DBM situados en el directorio /var/db. Para ese fichero se utiliza el nombre de mapa NIS correspondiente.

Actualmente, el soporte de NIS de la libc de GNU proporciona las siguientes bases de datos de nsswitch.conf: aliases, ethers.group, hosts, netgroup, network, passwd, protocols, publickey, rpc, services, y shadow. Es probable que se a�andan m�s entradas.

El Ejemplo 13-2 muestra un ejemplo m�s completo que introduce otra caracter�stica del fichero nsswitch.conf. La palabra clave [NOTFOUND=return] especificada en la entrada hosts le dice al cliente NIS que devuelva si el elemento deseado no pudo encontrarse en la base de datos de NIS o DNS. Esto es, el cliente NIS continuar� buscando en los ficheros locales s�lo si las llamadas a los servidores NIS y DNS fallan por alguna raz�n. Por tanto, cuando el servidor NIS no responda se utilizar�n los ficheros locales s�lo en tiempo de ejecuci�n y como copia de seguridad.

Ejemplo 13-2. Fichero nsswitch.conf de Ejemplo

    # /etc/nsswitch.conf
    #
    hosts:      nis dns [NOTFOUND=return] files
    networks:   nis [NOTFOUND=return] files
    services:   files nis
    protocols:  files nis
    rpc:        files nis

La libc de GNU proporciona otras acciones descritas en la p�gina del manual nsswitch.