NIS(YP)/NIS+/NYS

NIS(YP)/NIS+/NYS COMO
Andrea Dell’Amico, Mitchum DSouza, Erwin Embsen, Peter
Eriksson
l0.5, 24 de Enero de 1995 18 de Julio de 1996

Configuración y detalles de NIS(YP), NIS+ y NYS (Yellow Pages), sis­
temas de autentificación distribuída.
______________________________________________________________________

Índice General:

1. Glosario

1.1. Algo de Información General

2. Introducción

2.1. Nuevas Versiones de Este Documento (En inglés)

2.2. Nota de Renuncia

2.3. FeedBack

2.4. Agradecimientos

3. ¿ NIS o NIS+ ?

3.1. ¿ NIS tradicional o la librería NYS ?

4. Cómo trabaja

5. ¿ Qué necesitas para configurar NIS ?

5.1. El Mapeador de Puertos RPC

5.2. Determinar si eres Servidor, Esclavo o Cliente.

5.3. El Software

5.4. Configurar un Cliente NIS usando NIS Tradicional

6. ¿ Qué necesitas para configurar NYS ?

6.1. Determinar si eres un Servidor, Esclavo o Cliente.

6.2. El Software

6.3. Configurar un Cliente NYS usando NYS

6.4. El Fichero nsswitch.conf

6.5. Haz usar NYS a tus binarios

7. Configurar un Servidor NIS

7.1. El Programa Servidor ypserv

7.2. El Programa yppasswdd

8. Verificar la Instalación NIS/NYS

9. Problemas Comunes y soluciones con NIS

10. Preguntas Realizadas Frecuentemente

11. Anexo: El INSFLUG
______________________________________________________________________

1. Glosario

En este documento se han usado muchos acrónimos. Aquí se listan los
más importantes junto a una breve explicación:

DBM
DataBase Management, una librería de funciones que mantiene
pares clave-contenido en una base de datos.

DLL
Dynamically Linked Library, una librería enlazada a un programa
ejecutable en tiempo de ejecución.

domainname
Un nombre “clave” que es usado por clientes NIS para ser capaces
de localizar un servidor NIS adecuado que sirve a esa clave
domainname. Notar que esto no tiene nada que ver necesariamente
con el “dominio” (nombre de máquina) DNS de la(s) máquina(s).

FTP
File Transfer Protocol, un protocolo usado para transferir
ficheros entre dos ordenadores.

libnsl
Name services library, una librería de llamadas a servicios de
nombres (getpwnam, getservbyname, etc…) en Unixes SVR4.

libsocket
Socket services library, una librería para llamadas a servicios
de sockets (socket, bind, listen, etc…) en Unixes SVR4.

NIS
Network Information Service, un servicio que proporciona
información, que tiene que ser conocida por toda la red, a todas
las máquinas de la red. Hay soporte para NIS en la librería
estándar de Linux libc, y a la que en el texto nos referiremos
como “NIS tradicional”.

NIS+
Network Information Service (Plus :-), es esencialmente un NIS
con “esteroides”. NIS+ fue diseñado por Sun Microsystems Inc.
como un sustituto de NIS, con una mejor seguridad y un mejor
manejo de _grandes_ instalaciones.

NYS
Este es el nombre de un proyecto que viene de NIS+,YP y Switch y
que está organizado por Peter Eriksson .
Contiene, entre otras cosas, una completa reimplementación del
código del NIS (=YP) usando la funcionalidad del Name Services
Switch de la librería NYS.

RPC
Remote Procedure Call. Las rutinas RPC permiten a los programas
en C realizar llamadas a procedimientos en otras máquinas a
través de la red. Cuando la gente habla de RPC, normalmente se
refiere a la variante SunRPC.

YP Yellow Pages(tm), Páginas Amarillas en Inglés, es una marca
registrada en el Reino Unido por la British Telecom plc. (la
telefónica inglesa, vamos).

TCP-IP
Transmission Control Protocol/Internet Protocol. Es un protocolo
de comunicación de datos usado a menudo en máquinas Unix.

1.1. Algo de Información General

Las siguientes líneas están sacadas del Sun(tm) System & Network
Administration Manual:

“NIS se llamaba en un principio Sun Yellow Pages (YP)
pero el nombre Yellow Pages(tm) es una marca registrada
en el Reino Unido por la British Telecom plc y no
puede ser usado sin permiso.”

NIS viene de Network Information Service. Su propósito es proveer
información, que tiene que ser conocida a lo largo de la red, a todas
las máquinas de la red. La información más indicada para ser
distribuida por NIS es:

· nombres de login/passwords/directorios home (/etc/passwd)

· información de grupos (/etc/group)

Así que, por ejemplo, si la entrada de tu password está grabada en la
base de datos passwd de NIS, serás capaz de entrar en todas las
máquinas de la red que tengan corriendo los programas clientes NIS.

Sun es una marca registrada de Sun Microsystems, Inc. licenciada a
SunSoft, Inc.

2. Introducción

Cada vez más y más máquinas Linux están siendo instaladas como parte
de una red de computadoras. Para simplificar la administración de la
red, la mayor parte de las redes (sobre todo, redes basadas en
máquinas Sun) ejecutan el Network Information Service. Las máquinas
Linux pueden sacar gran partido a los servicios NIS existentes o
proveer servicio NIS por sí mismas. Pueden incluso (con la librería
NYS) actuar como un cliente NIS+ limitado.

Este documento intenta responder cuestiones sobre la configuración de
NIS(YP) en tu máquina Linux. No habla sobre cómo configurar NIS+. No
olvides leer la sección “”

2.1. Nuevas Versiones de Este Documento (En inglés)

Nuevas versiones de este documento serán enviadas periódicamente
(aproximadamente, cada mes) a los newsgroups comp.os.linux.announce y
comp.os.linux.misc. Este documento se encuentra archivado en varios
FTP sites, incluyendo sunsite.unc.edu en el directorio
/pub/Linux/docs/HOWTO.

2.2. Nota de Renuncia

Aunque este documento ha sido recogido con lo mejor de nuestros
conocimientos, puede contener, y probablemente contendrá, errores. Por
favor, léete todos los ficheros README adjuntos a cualquiera de los
varios paquetes de software descritos en este documento para obtener
una información más detallada y precisa. Nosotros intentaremos
mantener este documento tan libre de errores como sea posible.

2.3. FeedBack

Si tienes algún comentario, preguntas o sugerencias, por favor,
enviámelas por e-mail a Erwin Embsen . Y si encuentras
errores u omisiones obvias, definitivamente debes contactar con él (–
Aunque me temo que no sabe castellano, así que cuéntale lo que sea en
inglés…–) .

2.4. Agradecimientos

Nos gustaría agradecer a toda la gente que ha contribuido (directa o
indirectamente) a la realización de este documento. En orden
alfabético:

Andrea Dell’Amico
Mitchum DSouza
Erwin Embsen
Byron A Jeff
Peter Eriksson

Theo de Raadt es responsable del código original de
los yp-clients. Swen Thuemmler portó el código
de los yp-clients y de las yp-routines en la libc (de nuevo, basándose
en el trabajo de Theo).

3. ¿ NIS o NIS+ ?

La elección entre NIS y NIS+ es fácil – usa NIS si no tienes que usar
NIS+ o si no tienes severas necesidades de seguridad. NIS+ es mucho
más problemático de administrar (es bastante fácil de manejar la parte
del cliente, pero la parte del servidor es horrible). Otro problema es
que el soporte para NIS+ bajo Linux está todavía en desarrollo –una
cosa importante de la que todavía carece es del soporte para
encriptación y autentificación de datos que es _la_ principal razón
por la que alguien querría usar NIS+…–

3.1. ¿ NIS tradicional o la librería NYS ?

La elección entre el NIS tradicional o el código NIS de la librería
NYS es una elección entre vagancia y madurez vs. flexibilidad y deseos
de aventura.

El código “NIS tradicional” está en la librería C estándar y ha estado
ahí fuera por mucho tiempo, sufriendo a veces de su edad y de un poco
de inflexibilidad.

El código NIS de la librería NYS, por otro lado, requiere, una de dos,
o que recompiles y re-enlaces todos tus programas a la librería
libnsl, o que recompiles la librería libc para que incluya el código
libnsl (o tal vez puedas ir y obtener una versión precompilada de
alguien que ya lo haya hecho).

Otra diferencia es que el código tradicional NIS tiene algún soporte
para Netgroups NIS, cosa que el código NYS no tiene (todavía). Por
otro lado, el código NYS te permite manejar Shadow Passwords de una
forma transparente.

4. Cómo trabaja

En una red debe haber al menos una máquina actuando como un servidor
NIS. Puedes tener múltiples servidores NIS, cada uno sirviendo a
diferentes “dominios” NIS – o puedes tener servidores NIS
cooperativos, donde uno es el llamado servidor NIS maestro, y todos
los demás son los llamados servidores NIS esclavos (¡para un “dominio”
NIS determinado, eso es!) – o puedes tener una mezcla de ellos…

Los servidores esclavos solo tienen copias de las bases de datos NIS y
reciben estas copias del servidor NIS maestro cada vez que se realizan
cambios a las bases de datos maestras. Dependiendo del número de
máquinas que haya en tu red y de la seriedad de tu red, podrías
decidir si instalar uno o más servidores esclavos. Cada vez que un
servidor NIS se cae o va muy lento respondiendo peticiones, un cliente
NIS conectado a ese servidor intentará encontrar otro que no esté
caído o que vaya más rápido.

Las bases de datos NIS están en el formato DBM, que deriva de las
bases de datos ASCII. Por ejemplo, los ficheros /etc/passwd y
/etc/group pueden ser directamente convertidos a formato DBM usando
software de translación ASCII <--> DBM (“dbload”, incluído con el
software del servidor). El servidor NIS maestro debería tener ambas,
las bases de datos ASCII y las DBM.

Los servidores esclavos serán notificados de cualquier cambio en los
mapas NIS, (vía el programa “yppush”), y recibirán automáticamente los
cambios necesarios para sincronizar sus bases de datos. Los clientes
NIS no necesitan hacer esto ya que éstos siempre hablan directamente
con el servidor NIS para leer la información almacenada en sus bases
de datos DBM.

El autor de los clientes YP para Linux nos ha informado de que el
ypbind más reciente (del paquete yp-clients.tar.gz) es capaz de
obtener el servidor a partir de un fichero de configuración –lo que
quiere decir que no es necesario un broadcast (lo cual es inseguro,
debido al hecho de que cualquiera podría instalar un servidor NIS y
contestar a las peticiones de broadcast…).–

5. ¿ Qué necesitas para configurar NIS ?

5.1. El Mapeador de Puertos RPC

Para ejecutar algún software de los mencionados más adelante
necesitarás ejecutar antes el programa /usr/sbin/rpc.portmap. Algunas
distribuciones Linux ya tienen código para arrancar éste demonio en
/etc/rc.d/rc.inet2. Todo lo que tienes que hacer es “descomentar” ese
código y rearrancar tu máquina Linux para activarlo.

El mapeador RPC (portmap(8c)) es un servidor que convierte números de
programas RPC en números de puerto de protocolo TCP/IP (o UDP/IP).
Debe estar ejecutándose para poder realizar llamadas RPC (que es lo
que el software de cliente NIS hace) a servidores RPC (como un
servidor NIS) de esa máquina. Cuando un servidor RPC arranca, avisará
al mapeador de puertos por cuál puerto está escuchando, y a qué
números de programas RPC está preparado para servir. Cuando un cliente
desea hacer una llamada RPC a un número de programa dado, primero
deberá contactar con el mapeador de puertos de la máquina servidora
para determinar el número de puerto al que los paquetes RPC deben ser
enviados.

Normalmente los servidores RPC estándar son arrancados por inetd(8c),
de modo que el mapeador de puertos debe ser iniciado antes de que
inetd sea invocado.

5.2. Determinar si eres Servidor, Esclavo o Cliente.

Para contestar a esta cuestión debes considerar dos casos:

1. Tu máquina va a ser parte de una red en la que ya existen
servidores NIS.

2. Todavía no tienes servidores NIS en la red.

En el primer caso, sólo necesitas los programas cliente (ypbind,
ypwhich, ypcat, yppoll, ypmatch). El programa más importante es
ypbind. Este programa debe estar ejecutándose en todos los casos, esto
es, debe aparecer siempre en la lista de procesos. Es un proceso de
los llamados demonio y necesita ser iniciado desde el fichero de
arranque del sistema (ej. /etc/rc.local). Tan pronto como ypbind esté
en marcha, tu sistema se convierte en un cliente NIS.

En el segundo caso, si no tienes servidores NIS, entonces también
necesitarás un programa servidor NIS (normalmente llamado ypserv). La
sección “¿ Qué necesitas para configurar NYS ?” describe como
configurar un servidor NIS en tu maquina Linux usando la
implementación del ypserv de Peter Eriksson ( ).
Nota que ésta implementación NO soporta el concepto maestro-esclavo
del que hemos hablado en la sección “¿ NIS o NIS+ ?”. Usando este
software, todos tus servidores NIS serán servidores maestros. Hay otro
servidor gratuito disponible, llamado “yps”, escrito por Tobias Reber
en Alemania que sí soporta el concepto maestro-esclavo, pero que tiene
otras limitaciones.

5.3. El Software

La librería del sistema “/usr/lib/libc.a” (version 4.4.2 y superiores)
o la librería compartida “/usr/lib/libc.sa” y sus DLL relacionadas
contienen todas las llamadas al sistema necesarias para compilar
satisfactoriamente el software del cliente y del servidor NIS.

Ha habido informes de gente diciendo que NIS sólo funciona con las
versiones 4.5.21 y superiores de “/usr/lib/libc.a” así que si quieres
ir a lo seguro, no uses libc’s más antiguas. El software de cliente
NIS puede obtenerse de:

Servidor               Directorio                       Nombre de fichero
ftp.uni-paderborn.de   /pcsoft2/linux/local/yp          yp-clients.tar.gz
ftp.funet.fi           /pub/OS/Linux/BETA/NYS/clients   yp-clients.tar.gz
ftp.lysator.liu.se     /pub/NYS/clients                 yp-clients.tar.gz
sunsite.unc.edu        /pub/Linux/system/Network/admin  yp-clients.tar.gz

Una vez hayas obtenido el software, por favor, sigue las instrucciones
que vienen con él.

5.4. Configurar un Cliente NIS usando NIS Tradicional

Asumiendo que hayas compilado satisfactoriamente el software, ya
estarás preparado para instalarlo. Un lugar idóneo para el demonio
ypbind es el directorio /usr/sbin.

Por supuesto, para ello deberás entrar como root. Los otros binarios
(ypwhich, ypcat, yppoll, ypmatch) deben ir en un directorio accesible
por todos los usuarios, /usr/etc o /usr/local/bin por ejemplo. Sería
una buena idea probar el ypbind antes de incorporarlo en
/etc/rc.d/rc.inet2.

Para probar el ypbind haz lo siguiente:

· Asegúrate de que tienes establecido ya tu nombre de dominio. Si no
lo tienes ejecuta el comando:

 /bin/domainname-yp nis.domain

donde nis.domain debe ser alguna cadena de caracteres, que normalmente
¡_NO_ debe estar relacionada con el nombre de dominio de tu máquina!
La razón para esto es que hace un poco más difícil a crackers externos
el obtener la base de datos de passwords de tus servidores NIS. Si no
sabes cuál es el nombre de dominio NIS de tu red, pregunta al admin­
istrador de tu sistema/red.

· Arrancar “/usr/sbin/rpc.portmap” si no está ya ejecutándose.

· Crear el directorio “/var/yp” si no existe.

· Iniciar “/usr/sbin/ypbind”

· Usar el comando “rpcinfo -p localhost” para comprobar si ypbind es
capaz de registrar su servicio con el mapeador de puertos. El
rpcinfo debería producir una salida parecida a:

              program vers proto   port
               100000    2   tcp    111  portmapper
               100000    2   udp    111  portmapper
               100007    2   udp    637  ypbind
               100007    2   tcp    639  ypbind
               300019    1   udp    660

· Podrías también ejecutar “rpcinfo -u localhost ypbind”. Este
comando debería producir una salida similar a:

               program 100007 version 2 ready and waiting

Finalmente, no olvides que para búsquedas de nodos debes establecer (o
añadir) “nis” a la entrada de orden de búsquedas en tu fichero
/etc/host.conf. Por favor, lee la página man “resolv+.8” para más
detalles.

En este punto, ya podrías usar programas cliente NIS como ypcat,
etc… Por ejemplo, “ypcat passwd” te devolverá la base de datos NIS
de los passwords completa.

IMPORTANTE: Si te saltaste el procedimiento de prueba asegúrate de que
has establecido el nombre de dominio, y creado el directorio:

           /var/yp

Este directorio DEBE existir para que ypbind pueda iniciarse
satisfactoriamente.

Si el test funcionó, puede que ahora quieras cambiar los ficheros
/etc/rc.d/rc.M y /etc/rc.d/rc.inet2 en tu sistema para que ypbind se
inicie durante el arranque y para que tu sistema actúe como un cliente
NIS. Edita el fichero /etc/rc.d/rc.M y busca los comandos que
establecen el nombre de dominio. Cambia el nombre de dominio por el
nombre de tu dominio. También, edita el fichero /etc/rc.d/rc.inet2,
“descomenta” las líneas que inician el demonio rpc.portmap, y añade
las siguientes líneas justo después del lugar donde se arranca
rpc.portmap:

           #
           # Arranca el demonio ypbind:
           #
           if [ -f ${NET}/ypbind -a -d /var/yp ]; then
               echo -n " ypbind"
               ${NET}/ypbind
           fi

Al contrario que con la implementación de Sun del NIS no necesitas
editar los ficheros /etc/passwd y /etc/group para poder aprovechar
NIS. La implementación de Sun necesita una línea “+:*:0:0:::” en el
/etc/passwd y una línea “+:*:0:” en el /etc/group para decirle a NIS
que busque en las bases de datos NIS de los passwords y de los grupos.

IMPORTANTE: Nota que el comando finger te informará con mensajes “no
such user” si no añades la línea “+:*:0:0:::” en /etc/passwd. Volver a
poner la línea “+:*:0:0:::” en /etc/passwd arreglará el finger.

Bueno, esto es todo. Rearranca la máquina y observa los mensajes de
arranque para ver si ypbind efectivamente se ha iniciado.

IMPORTANTE: Nota que la característica netgroup está implementada
empezando en la libc v4.5.26. Los netgroups permiten control de acceso
para cada máquina y para cada usuario en el dominio NIS, y requieren
una entrada como ésta:

           +@this_machine_users

en /etc/passwd. Pero si tienes una versión de libc anterior a la
4.5.26, todos los usuarios de la base de datos NIS de passwords pueden
acceder a tu máquina Linux si ejecutas “ypbind”.

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. Actual­
mente 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.

7. Configurar un Servidor NIS

7.1. El Programa Servidor ypserv

Este documento sólo describe cómo configurar el servidor NIS “ypserv”.
La configuración del servidor “yps” es similar _pero_ no exactamente
igual así que ¡ten esto en cuenta si intentas aplicar estas
instrucciones a “yps”!

El software del Servidor NIS puede ser encontrado en:

Servidor            Directorio                         Nombre fichero

ftp.lysator.liu.se  /pub/NYS/servers                   ypserv-0.11.tar.gz
ftp.funet.fi        /pub/OS/Linux/BETA/NYS/servers     ypserv-0.11.tar.gz
mcsun.eu.net        /os/linux/BETA/NYS/servers         ypserv-0.11.tar.gz
ftp.univie.ac.at    /unix/system/linux/funet/BETA/NYS/servers ypserv-0.11.tar.gz

El setup del servidor es el mismo para NIS tradicional y para NYS.

Compila el software para generar los programas “ypserv”, “dbcat” y
“dbload”. Primeramente debes determinar qué ficheros necesitas que
estén disponibles via NIS y después añade o elimina las entradas
apropiadas de ypMakefile. Luego instala el fichero ypMakefile en
/var/yp con el nombre Makefile.

Y ahora crea los ficheros DLL escribiendo:

           % cd /var/yp; make

Cerciórate de que el mapeador de puertos (rpc.portmap) está en marcha,
y arranca el servidor “ypserv”. El comando

          % rpcinfo -u localhost ypserv

debería dar una salida como

           program 100004 version 2 ready and waiting

Ya está, tu servidor ya está en marcha.

7.2. El Programa yppasswdd

Cada vez que los usuarios cambien sus passwords, la base de datos NIS
y probablemente otras bases de datos que dependan de la base de datos
NIS de los passwords deben ser actualizadas. El programa “yppasswdd”
es un servidor que maneja cambios de password y que se asegura de que
la información NIS será actualizada acordemente. El software para
“yppasswdd” puede encontrarse en:

Servidor                   Directorio                     Nombre fichero

ftp.lysator.liu.se    /pub/NYS                        yppasswdd-0.5.tar.gz
ftp.funet.fi          /pub/OS/Linux/BETA/NYS/servers  yppasswdd-0.5.tar.gz

Una vez obtenido el software, sigue las instrucciones que vienen con
él.

8. Verificar la Instalación NIS/NYS

Si todo es correcto (como debería serlo), deberías poder verificar tu
instalación con unos pocos comandos. Asumiendo, por ejemplo, que tu
fichero passwd está siendo soportado por NIS, el comando

      % ypcat passwd

debería devolverte los contenidos de tu fichero NIS passwd. El comando

           % ypmatch userid passwd

(donde userid es el nombre de login de un usuario arbitrario) debería
devolver la entrada correspondiente a ese usuario en el fichero NIS
passwd. Los programas “ypcat” e “ypmatch” deberían venir incluidos con
tu distribución de NIS tradicional o de NYS.

9. Problemas Comunes y soluciones con NIS

Aquí van algunos problemas comunes según los informes de varios
usuarios:

1. La versión 4.5.19 de libc no funciona. NIS no funcionará con ellas.

2. Si actualizas las librerías de 4.5.19 a 4.5.24, el comando su
dejará de funcionar. Necesitas obtener el comando su de la
distribución 1.2.0 de Slackware. También de ahí podrás obtener las
librerías actualizadas.

3. Puedes encontrar problemas con NIS y DNS en la misma máquina. Mi
servidor DNS a veces pasa del NIS. Todavía no he averiguado por
qué.

4. Cuando un servidor NIS se cae y vuelve a levantarse ypbind arranca
con mensajes como:

       yp_match: clnt_call:
       RPC: Unable to receive; errno = Connection refused

y los logins de aquellos que están registrados en la base de datos NIS
son rechazados. Intenta entrar como root y si lo consigues, mata el
ypbind y arráncalo de nuevo.

10. Preguntas Realizadas Frecuentemente

La mayoría de tus preguntas ya deberían estar contestadas. Si todavía
tienes alguna pregunta sin contestar tal vez quieras enviar un mensaje
a

           comp.os.linux.help

o contactar con uno de los autores de este HOWTO.

11. Anexo: El INSFLUG

El INSFLUG forma parte del grupo internacional Linux Documentation
Project, encargándose de las traducciones al castellano de los Howtos
(Comos), así como la producción de documentos originales en aquellos
casos en los que no existe análogo en inglés.

En el INSFLUG se orienta preferentemente a la traducción de documentos
breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
:) ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las últimas versiones de las
traducciones: www.insflug.org. Asegúrese de comprobar cuál es la
última versión disponible en el Insflug antes de bajar un documento de
un servidor réplica.

Se proporciona también una lista de los servidores réplica (mirror)
del Insflug más cercanos a Vd., e información relativa a otros
recursos en castellano.

Francisco José Montilla, pacopepe@insflug.org.

Los comentarios están cerrados.