Logo de AulaDigital

Nis Como 6

NIS(YP)/NIS+/NYS COMO: ¿ Qué necesitas para configurar NYS ? Anterior Siguiente Indice

6. ¿ Qué necesitas para configurar NYS ?

6.1 Determinar si eres un Servidor, Esclavo o Cliente.

Para contestar esta cuestión debes considerar dos casos:

  • Tu máquina va a ser parte de una red en la que ya existen servidores NIS.
  • Todavía no tienes servidores NIS en la red.

En el primer caso tienes dos opciones:

  • O reenlazas todos los programas cliente y demonio con la librería NYS libnsl.so (o las enlazas estáticamente con libnsl.a). Esto supone añadir la línea:
                LIBS=-lnsl
            
    
    a tu Makefile, que indica que quieres enlazar la Network Services Library. Básicamente, todos los demonios de red y el programa "login" necesitan ser recompilados.
  • O puedes recompilar la librería C estándar libc para que incluya las funciones de librería de los clientes NYS, y después reenlazar todos los programas enlazados estáticamente (los programas enlazados dinámicamente tienen la nueva versión de libc automáticamente). Para más información sobre ésta opción, mira la sección Haz usar NYS a tus binarios más abajo.

De forma similar al caso del NIS tradicional, si no tienes servidores NIS, entonces también necesitarás un programa servidor NIS (normalmente llamado ypserv) y tendrás que designar una de las máquinas de tu red como servidor NIS maestro. De nuevo, quizás quieras establecer al menos un servidor esclavo junto con el maestro.

6.2 El Software

Necesitas obtener y compilar la librería libnsl.so de servicios NYS. Si no tienes las herramientas DLL instaladas puedes obtener una librería precompilada compartida, estática o en código fuente del mismo servidor mencionado más abajo. Nota, de todos modos, que la versión precompilada puede ser (y probablemente es) más vieja que la última edición del código fuente.

La librería NYS (en versión código fuente y precompilada) puede ser obtenida de:

    Servidor            Directorio                     Nombre fichero

    ftp.lysator.liu.se  /pub/NYS/libs                  nys-0.27.4.tar.gz
    ftp.lysator.liu.se  /pub/NYS/binaries/lib          libnsl.so.1.0.a26
 
    ftp.funet.fi        /pub/OS/Linux/BETA/NYS/libs    nys-0.27.4.tar.gz
    ftp.funet.fi        /pub/OS/Linux/BETA/NYS/lib     libnsl.so.1.0.a26

Versiones precompiladas de los programas "login" y "su" pueden ser obtenidos de:

    Servidor            Directorio                     Nombre fichero

    ftp.lysator.liu.se  /pub/NYS/binaries/bin          login
    ftp.lysator.liu.se  /pub/NYS/binaries/bin          su

    ftp.funet.fi        /pub/OS/Linux/BETA/NYS/bin     login
    ftp.funet.fi        /pub/OS/Linux/BETA/NYS/bin     su

Similarmente, se pueden obtener ejemplos de ficheros de cofiguración de:

    Servidor            Directorio                     Nombre fichero

    ftp.lysator.liu.se  /pub/NYS/binaries/etc          *conf
    ftp.funet.fi        /pub/OS/Linux/BETA/NYS/etc     *conf

Para compilar la librería nsl, sigue las instrucciones que vienen con el software. Si deseas compilar la librería DLL compartida debes tener las herramientas DLL instaladas en su sitio (/usr/dll). Las herramientas DLL (el paquete tools-2.11.tar.gz o posterior) pueden ser obtenidas de los servidores habituales.

6.3 Configurar un Cliente NYS usando NYS

A diferencia del NIS tradicional, no se necesita ninguna configuración para un cliente NYS. Todo lo que se necesita, es que el fichero de configuración NIS (/etc/yp.conf) apunte al servidor correcto para su información. Además, el fichero de configuración del Name Services Switch (/etc/nsswitch.conf) debe estar correctamente configurado.

Por favor, refieráse a los ejemplos proporcionados con el código fuente.

6.4 El Fichero nsswitch.conf

El fichero de Network Services Switch /etc/nsswitch.conf determina el orden de las búsquedas realizadas cuando se pide una pieza específica de información, de la misma forma que el fichero /etc/host.conf determina la manera en que se realizan las búsquedas de hosts. Insistimos, eche un vistazo al fichero proporcionado en la distribución del código fuente. Por ejemplo, la línea

    hosts: files nis dns

especifica que las funciones de búsqueda de host deben primero mirar en el fichero /etc/hosts local, seguido de una búsqueda NIS y, finalmente, usar el DNS (/etc/resolv.conf y named). Si al llegar a este punto no se encuentra el host correspondiente se devuelve un error.

6.5 Haz usar NYS a tus binarios

En vez de reenlazar cada binario con la librería NYS (libnsl.so), se ha conseguido una solución más limpia proporcionando al usuario la posibilidad de compilar una libc que incluya NYS. Esto significa que todo lo que necesitas hacer es recompilar una nueva libc y sustituir la /lib/libc.so.x.y.z existente para que todos los programas (los compilados no-estáticamente) utilicen NYS.

Esta combinación también te da la ventaja sobre la implementación del NIS tradicional en la libc de linux, en que permite soporte transparente para shadow passwords (vía el fichero /etc/nisswitch.conf).

Sigue los sencillos pasos indicados más adelante para recompilar una libc que incluya NYS.

  • Asegúrate de que tienes las últimas herramientas DLL instaladas. Para más información acerca de dónde conseguirlas léete el GCC-FAQ.
  • Consigue los últimos fuentes de la libc. (de nuevo, mira el GCC-FAQ)
  • Consigue los últimos fuentes del nys de:
              ftp.lysator.liu.se:/pub/NYS/libs
          
    
    y descomprímelos en el directorio de la libc-linux fuente. Actualmente la distribución es la "nys-0.27.4.tar.gz".
  • Ejecuta el ./configure y contesta "n" a la pregunta
              Values correct (y/n) [y] ?
          
    
    Luego sigue con las siguientes cuestiones y la última pregunta ahora será
              Build a NYS libc from nys-0.27 (y default) ?
          
    
    contesta "y" a ésta.
  • Luego ejecuta el comando
              % make
          
    

La librería generada tras la compilación se llamará algo así como

    libc.so.4.5.26

y estará bajo el directorio jump/libc-nys. Para instalar esta librería nuestro consejo sería copiarla a /lib con un nombre lexicográficamente superior que el número que actualmente tiene. Simplemente con añadir la letra "a" lo podremos conseguir. Por ejemplo:

    % cp jump/libc-nys/libc.so.4.5.26 /lib/libc.so.4.5.26a

Alternativamente, podríamos añadirle "nys" para poder identificarlo rápidamente. Ahora ejecuta el siguiente comando

    % ldconfig

que reseteará tu caché para usar la nueva librería. La estrategia del enlazador dinámico puede ser examinada con el comando "ldconfig -p".

Básicamente esto es todo. Ahora todos tus programas deben poder utilizar NYS. Por favor, nota que usualmente el programa "login" está compilado estáticamente y que por lo tanto no puede acceder a las nuevas funciones NYS de la nueva libc. Deberás recompilar "login" sin el parámetro -static, o enlazarlo estáticamente a la librería libnsl.a.


Anterior Siguiente Indice