%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                       Nota Legal                              %
%                                                               %
% Este documento es copyright (C) Olaf Kirch, okir@monad.swb.de %
%                                                               %
% Para las condiciones de copia, vease el fichero COPYING.      %
%                                                               %
% El autor no se responsabiliza de ningun dan~o, directo o      %
% indirecto, resultado del uso de la informacion proporcionada  %
% en este documento.                                            %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Cuando lea este documento con vi en una pantalla de 80        %
% columnas, haga primero un ':se nonumber'.                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Revisado el 30-Enero-1999 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Revisado el 9-Marzo-1999 por:                                 %
%   I\~naki Arenaza <inaki.arenaza@jet.es>                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%          C O M I E N Z O   D E L   C A P I T U L O            %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\NISplus{{NIS$+$}}

\chapter{El Sistema de Informaci\'on de Red (NIS)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis}
\index{configurar!NIS|(}
\index{Sistema de Informaci\'on de Redes|see {NIS}}
\index{Yellow Pages|see {NIS}}
\index{YP|see {NIS}}
\index{NIS|(}
\index{red!sincronizar contrase\~nas}
\index{nombres de nodos!resoluci\'on}

Cuando se usa una red de \'area local, su objetivo fundamental es,
normalmente, proporcionar a sus usuarios un entorno que haga a la red
transparente. Para este fin una importante piedra de toque es mantener
datos vitales, como la informaci\'on de cuentas de usuario,
sincronizadas entre todos los nodos.  Vimos anteriormente que
para resolver nombres de nodos existe un potente y sofisticado
servicio denominado DNS. Para otras tareas, sin embargo, no existe un
servicio especializado similar. M\'as a\'un, si usted s\'olo est\'a
administrando una peque\~{n}a LAN sin conexi\'on a Internet, puede que
no le merezca la pena el esfuerzo de instalar un DNS.


Esta es la raz\'on por la que Sun desarroll\'o NIS, el \emph{Sistema de
  Informaci\'on de Red}.  NIS proporciona facilidades de acceso gen\'erico
a bases de datos que pueden ser usadas para distribuir informaci\'on
como la contenida en los ficheros \file{passwd} y \file{groups} entre
todos los nodos de su red.  Esto hace que la red aparezca como un
sistema \'unico, con las mismas cuentas en todos los nodos. De forma
similar usted puede usar NIS para distribuir el fichero de informaci\'on
de nombres de nodos \file{/etc/hosts} entre todas las m\'aquinas de la
red.


NIS est\'a basado en RPC, e incluye un servidor, una biblioteca para la
parte del cliente, y varias herramientas de administraci\'on.
Originalmente NIS se llamaba \emph{Yellow Pages}\footnote{N. del T.:
  P\'aginas Amarillas}, o YP, que todav\'{\i}a son t\'erminos ampliamente
usados para referirse informalmente a este servicio. Por otra parte
Yellow Pages es una marca registrada de la compa\~{n}\'{\i}a British Telecom, la cual
pidi\'o que Sun dejara de utilizar ese nombre. Pero, como algunos
nombres impactan mucho entre la gente, YP contin\'ua viviendo como
prefijo en los nombres de la mayor\'{\i}a de los comandos relacionados con
NIS como \prog{ypserv}, \prog{ypbind}, etc.


\index{Thummler, Swen@Th\"ummler, Swen}
\index{Reber, Tobias}
\index{yp-linux@\prog{yp-linux}}
\index{yps@\prog{yps}}
Hoy en d\'{\i}a NIS est\'a disponible en pr\'acticamente todos los sistemas
\unix{}, y hay incluso implementaciones gratuitas de \'el. Una de ellas
es de la edici\'on BSD Net-2, derivada de una implementaci\'on de
referencia de dominio p\'ublico donada por Sun. El c\'odigo de la
biblioteca cliente de esta versi\'on existe en la GNU \lib{libc} desde
hace mucho tiempo, mientras que los programas de administraci\'on han
sido recientemente portados a \linux{} por Swen Th\"ummler.\footnote{
  Que puede ser localizado en \email{swen@uni-paderborn.de}. Los
  clientes NIS est\'an disponibles como {\tt yp-linux.tar.gz} en
  \host{metalab.unc.edu} en el directorio \file{system/Network}.}
Falta, sin embargo, un servidor NIS en la implementaci\'on de
referencia. Tobias Reber ha escrito otro paquete NIS incluyendo todas
las herramientas y un servidor; se llama \prog{yps}.\footnote{ La
  \'ultima versi\'on (en la fecha en que se escribi\'o este documento) es
  {\tt yps-0.21} y puede obtenerse en \host{ftp.lysator.liu.se}, en el
  directorio \file{/pub/NYS}.  }


\index{Eriksson, Peter}
\index{NYS|(}
\index{host.conf@\file{host.conf}}
Actualmente, el c\'odigo de NIS est\'a siendo reescrito por completo por
Peter Eriksson\footnote{ Localizable en \email{pen@lysator.liu.se}.
  }, se denominar\'a NYS y soportar\'a tanto el NIS normal como la
revisi\'on ampliada de Sun, el \NISplus{}. NYS no s\'olo proporciona un
conjunto de herramientas NIS y un servidor, sino que tambi\'en a\~{n}ade
un nuevo y completo conjunto de funciones de biblioteca que muy
probablemente se incluir\'an con el tiempo en la \lib{libc} est\'andar.
Esto incluye un nuevo sistema de configuraci\'on para resolver nombres
de nodos que reemplace el sistema actual que usa el fichero
\file{host.conf}. Las caracter\'{\i}sticas de estas funciones ser\'an
discutidas m\'as adelante.


Este cap\'{\i}tulo se centrar\'a en NYS m\'as que en los otros dos paquetes, a
los que nos referiremos como el c\'odigo NIS ``tradicional''. Si usted
desea utilizar alguno de esos paquetes, las instrucciones de este
cap\'{\i}tulo podr\'{\i}an ser suficientes o tal vez no. Para obtener
informaci\'on adicional, por favor, consiga un libro est\'andar sobre NIS
como el \emph{NFS y NIS} de Hal Stern (v\'ease~\cite{stern-nfs}).
 

Por el momento NYS est\'a todav\'{\i}a en desarrollo y por lo tanto las
utilidades est\'andar de \linux{} como los programas de red o el
programa de \prog{login} todav\'{\i}a no tienen en cuenta el sistema de
configuraci\'on de NYS. Por lo tanto, hasta que NYS no sea incluido en
la \lib{libc} principal tendr\'a que compilar todos esos programas usted
mismo si quiere conseguir que usen NYS. Para ello, en los
\file{Makefile}s de cualquiera de esas aplicaciones deber\'a especificar
\file{-lnsl} como la \'ultima opci\'on antes de \file{libc} al enlazador.
Esto enlazar\'a las funciones relevantes de \file{libnsl}, la biblioteca
NYS, en lugar de la biblioteca~C est\'andar.


\section{Familiarizaci\'on con NIS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{NIS!databases}
\index{NIS!mapa|(}
NIS mantiene informaci\'on de la base de datos en los llamados
\emph{mapas} que contienen pares clave-valor. Los mapas se
almacenan en un nodo central que est\'a ejecutando el servidor NIS y
del que los clientes pueden obtener la informaci\'on a trav\'es de varias
llamadas RPC. Muy frecuentemente, los mapas se almacenan en
ficheros DBM.\footnote{ DBM es una biblioteca de manejo de bases de
  datos sencillas que usa t\'ecnicas hashing para acelerar operaciones
  de b\'usqueda. Existe una implementaci\'on gratuita de DBM perteneciente
  al proyecto GNU llamada \lib{gdbm}, que forma parte de la mayor\'{\i}a de
  las distribuciones de \linux{}.  }


\index{nodos@\file{hosts}}
\index{passwd@\file{passwd}}
\index{hosts.byname@\file{hosts.byname}}
\index{hosts.byaddr@\file{hosts.byaddr}}
Los mapas en s\'{\i} mismos suelen ser generados a partir de ficheros de
texto maestros como \file{/etc/hosts} o \file{/etc/passwd}. Para
algunos ficheros se crean varios mapas, uno por cada tipo de clave de
b\'usqueda.  Por ejemplo, usted podr\'{\i}a buscar en el fichero \file{hosts}
tanto por un nombre de nodo como por su direcci\'on~IP. As\'{\i} pues, de \'el
se derivan dos mapas NIS, llamados \map{hosts.byname} y
\map{hosts.byaddr} respectivamente.  La tabla~\ref{nis.table.maps}
lista los mapas t\'{\i}picos y los ficheros de los que son generados.


\begin{table}[htbp]
 \begin{center}
 \begin{tabular}{|l|ll|}
 \hline
 Fichero Maestro          & Mapa(s)                & \\
 \hline
 \hline
 \file{/etc/hosts}      & \map{hosts.byname}    & \map{hosts.byaddr}\\
 \file{/etc/networks}   & \map{networks.byname} & \map{networks.byaddr}\\
 \file{/etc/passwd}     & \map{passwd.byname}   & \map{passwd.byuid}\\
 \file{/etc/group}      & \map{group.byname}    & \map{group.bygid}\\
 \file{/etc/services}   & \map{services.byname} & \map{services.bynumber}\\
 \file{/etc/rpc}        & \map{rpc.byname}      & \map{rpc.bynumber}\\
 \file{/etc/protocols}  & \map{protocols.byname}& \map{protocols.bynumber}\\
 \file{/usr/lib/aliases}& \map{mail.aliases}    & \\
 \hline
 \end{tabular}
 \end{center}
 \caption{
  \label{nis.table.maps}
  Algunos mapas NIS est\'andar y los ficheros correspodientes.  
 }
\end{table}


Hay otros ficheros y mapas para los que puede encontrar soporte en uno
u otro paquete NIS. \'Estos pueden contener informaci\'on sobre
aplicaciones no tratadas en este libro, como el mapa
\map{bootparams}\footnote{ N. del T.: relacionado con los par\'ametros
  de arranque } que puede ser usado por algunos servidores BOOTP, o
mapas que actualmente no tienen ninguna funci\'on en \linux{} (como los
mapas \map{ethers.byname}
  y \map{ethers.byaddr}).


\index{presentar!apodos mapas NIS}
\index{ypcat@\prog{ypcat}}
\index{NIS!apodo}
\index{NIS!mapa}
La gente usa habitulamente apodos para algunos mapas, ya que son m\'as
cortos y por lo tanto m\'as faciles de escribir. Para obtener una lista
completa de los apodos\footnote{N. del T.:  del ingl\'es \emph{nicknames}
  } reconocidos por sus herramientas NIS, ejecute el siguiente
comando:


\begin{tscreen}
\begin{verbatim}
$ ypcat -x
NIS map nickname translation table:
        "passwd" -> "passwd.byname"
        "group" -> "group.byname"
        "networks" -> "networks.byaddr"
        "hosts" -> "hosts.byname"
        "protocols" -> "protocols.bynumber"
        "services" -> "services.byname"
        "aliases" -> "mail.aliases"
        "ethers" -> "ethers.byname"
        "rpc" -> "rpc.bynumber"
        "netmasks" -> "netmasks.byaddr"
        "publickey" -> "publickey.byname"
        "netid" -> "netid.byname"
        "passwd.adjunct" -> "passwd.adjunct.byname"
        "group.adjunct" -> "group.adjunct.byname"
        "timezone" -> "timezone.byname"
\end{verbatim}
\end{tscreen}

\index{NIS!mapa|)}
\index{NIS!servidor|(}
\index{ypserv@\prog{ypserv}}
\index{servidor!ypserv@\prog{ypserv}}
\index{servidor!NIS}
El servidor NIS suele llamarse \prog{ypserv}. Para
una red de tipo medio un \'unico servidor suele ser suficiente; en redes
mayores pueden elegir ejecutar varios en m\'aquinas diferentes y en
diferentes segmentos para aliviar la carga en los servidores y en los
encaminadores. Estos servidores est\'an sincronizados haciendo que uno
de ellos sea el \emph{servidor maestro} y que los dem\'as sean
\emph{servidores esclavos}.  Los mapas se crear\'an s\'olo en la m\'aquina
del servidor maestro. A partir de ah\'{\i} son distribuidos a todos los
esclavos.


\index{NIS!dominio|(}
\index{elegir!un dominio NIS}
Habr\'a notado usted que hemos estado hablando de ``redes'' todo el rato
muy vagamente; por supuesto existe un concepto diferenciado en NIS
sobre lo que es un {\it dominio} en la red: es el conjunto de todos
los nodos que comparten parte de sus datos de configuraci\'on del
sistema mediante NIS. Desafortunadamente los dominios NIS no tienen
absolutamente nada que ver con los dominios que podemos encontrar en
DNS.  Por ello, para evitar cualquier tipo de ambig\"uedad a lo largo
de este cap\'{\i}tulo, especificaremos en todo momento el tipo de dominio
al que nos estemos refiriendo.


\index{establecer!dominio NIS}
\index{nombre de dominio!establecer NIS}
\index{domainname@\prog{domainname}}
Los dominios NIS tienen s\'olo una funci\'on puramente administrativa. Son
adem\'as invisibles para los usuarios. Por ello el nombre dado a un
dominio NIS es s\'olo relevante para administradores. Por lo general
cualquier nombre valdr\'a con tal de que sea distinto de cualquier otro
nombre de dominio NIS de su red local. Por ejemplo, el administrador
de la Cervecera Virtual puede decidir crear dos dominios NIS, uno para
la Cervecera en s\'{\i}, y otro para la Vinatera, a los que llama
\host{cervecera} y \host{vinatera} respectivamente. Otra idea bastante
utilizada es usar simplemente el nombre de dominio DNS tambi\'en para el
NIS. Para establecer y ver el nombre de dominio NIS de su nodo puede
usar el comando \prog{domainname}. Cuando se ejecuta sin ning\'un
argumento, muestra el nombre de dominio NIS actual; para establecer el
nombre de dominio, debe usted entrar como superusuario y escribir:


\begin{tscreen}
 \# domainname cervecera
\end{tscreen}


Los dominios NIS determinan a qu\'e servidor NIS preguntar\'an las
aplicaciones. Por ejemplo, el programa \prog{login} de un nodo de la
Vinatera deber\'{\i}a, por supuesto, pedir informaci\'on de la contrase\~na de un
usuario s\'olo al servidor NIS de la Vinatera (o a uno de ellos si es que
hay varios), mientras que una aplicaci\'on de un nodo de la Cervecera
deber\'{\i}a arregl\'arselas con el servidor de la Cervecera.


\index{NIS!localizar servidor}
\index{ypbind@\prog{ypbind}}
Queda un misterio por resolver: c\'omo sabe un cliente a qu\'e servidor
conectarse. La soluci\'on m\'as simple ser\'{\i}a tener un fichero de
configuraci\'on que diga el nodo en el que encontrar el servidor. Sin
embargo, esta soluci\'on es bastante inflexible porque no permite a los
clientes usar servidores diferentes (del mismo dominio, se entiende),
dependiendo de su disponiblidad. Por ello las implementaciones
tradicionales de NIS se apoyan en un demonio especial denominado
\prog{ypbind} para detectar un servidor NIS adecuado dentro de su
dominio NIS. Cualquier aplicaci\'on, antes de poder realizar cuaquier
consulta NIS, debe averiguar primero, a trav\'es de \prog{ypbind}, qu\'e
servidor usar.


\prog{ypbind} busca los servidores mandando un mensaje de difusi\'on por
toda la red~IP local. El primero en responder se supone que ser\'a el
m\'as r\'apido potencialmente y ser\'a el que se use en todas las consultas
NIS subsiguientes.  Despu\'es de un cierto intervalo de tiempo, o si el
servidor se vuelve inaccesible, \prog{ypbind} volver\'a a buscar los
servidores activos.


Ahora bien, hay dos aspectos discutibles sobre el enlazado din\'amico:
uno es que raramente es necesario y el otro es que introduce un
problema de seguridad: \prog{ypbind} cree a ciegas a cualquiera que
conteste, que podr\'{\i}a ser lo mismo un humilde servidor NIS que un
intruso malicioso. No hace falta decir que esto es especialmente
problem\'atico si usted maneja sus bases de datos de contrase\~nas a
trav\'es de NIS. Para protegerse contra esto, NYS \emph{no} usa
\prog{ypbind} por defecto, sino que obtiene el nombre de nodo del
servidor de un fichero de configuraci\'on.

\index{NIS!dominio|)}
\index{NIS!servidor|)}


\section{NIS frente a \NISplus}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.nisplus}
\index{NIS+@NIS$+$}
NIS y \NISplus{} comparten poco m\'as que su nombre y un objetivo com\'un.
\NISplus{} est\'a estructurado de una forma completamente diferente. En
lugar de un simple espacio de nombres con dominios NIS inconexos, usa
un espacio de nombres jer\'arquico similar al de DNS. En lugar de mapas,
usa \emph{tablas} que est\'an compuestas por filas y columnas, donde
cada fila representa un objeto en la base de datos \NISplus{},
mientras que las columnas cubren aquellas propiedades de los objetos
que \NISplus{} conoce y que le interesan. Cada tabla de un dominio
\NISplus{} dado incluye las de sus dominios padre. Adem\'as, una entrada
en una tabla puede contener un enlace a otra tabla. Todas estas
caracter\'{\i}sticas hacen posible la estructuraci\'on de la informaci\'on de
muchas formas.


El NIS tradicional tiene un n\'umero de versi\'on RPC de~2, mientras que
\NISplus{} tiene un n\'umero de versi\'on RPC de~3.


\NISplus{} no parece ser ampliamente usado todav\'{\i}a \footnote{N. del
  T.: En el momento de escribirse este manual esta afirmaci\'on era
  cierta. Sin embargo, hoy en d\'{\i}a \NISplus{} es ampliamente usado por
  sus ventajas frente a NIS.}  , y no conozco tanto sobre \'el realmente
(bueno, pr\'acticamente nada). Por esta raz\'on, no lo trataremos aqu\'{\i}. Si
est\'a interesado en aprender m\'as sobre \'el, por favor, refi\'erase al
manual de administraci\'on de \NISplus{} de Sun (\cite{nisplus}).


\section{El lado cliente de NIS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.clients}
\index{NIS!cliente|(}
\index{NIS!mapa}
Si est\'a usted familiarizado con la escritura o el portado de
aplicaciones de red, notar\'a que la mayor\'{\i}a de los mapas NIS listados
arriba corresponden a funciones de la biblioteca~C. Por ejemplo, para
obtener informaci\'on del fichero \file{passwd}, se suelen usar
normalmente las funciones \func{getpwnam(3)} y \func{getpwuid(3)} que
devuelven informaci\'on de la cuenta asociada al nombre de usuario dado,
o al identificador de usuario dado, respectivamente. En circunstancias
normales, estas funciones realizar\'an la b\'usqueda requerida en el
fichero est\'andar \file{/etc/passwd}.


Una implementaci\'on de estas funciones que tenga en cuenta NIS, sin
embargo, modificar\'a este comportamiento, y realizar\'a una llamada RPC
para que sea el servidor NIS el que realice la b\'usqueda del nombre o 
identificador de
usuario. Esto ocurre de forma completamente
transparente a la aplicaci\'on. La funci\'on podr\'{\i}a ``a\~nadir'' el mapa
NIS o ``sustituir'' el fichero original con \'el. Por supuesto, esto no
implica una modificaci\'on real del fichero, s\'olo significa que a la
aplicaci\'on le \emph{parece} que el fichero ha sido sustituido o que le
han a\~nadido algo.


En las implementaciones tradicionales de NIS sol\'{\i}a haber ciertas
convenciones sobre qu\'e mapas se sustitu\'{\i}an y cu\'ales eran a\~nadidos a
la informaci\'on original. Alguno, como el mapa \map{passwd}, requer\'{\i}a
modificaciones extra\~nas del fichero \file{passwd} que, si se hac\'{\i}an
mal, podr\'{\i}an abrir agujeros de seguridad. Para evitar estos
obst\'aculos, NYS usa un modo general de configuraci\'on que determina si
un conjunto de funciones cliente en particular usa los ficheros
originales, NIS o \NISplus{}, y en qu\'e orden. Esto ser\'a descrito en
otra secci\'on m\'as adelante en este mismo cap\'{\i}tulo.

\index{NIS!cliente|)}


\section{Ejecuci\'on de un servidor NIS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.server}
\index{configurar!NIS}
\index{NIS!servidor|(}
Despu\'es de todo este parloteo t\'ecnico te\'orico, ya empieza a ser hora
de que metamos mano al verdadero trabajo de configuraci\'on. En esta
secci\'on cubriremos la configuraci\'on de un servidor NIS. Si ya hay un
servidor NIS corriendo en su red, no necesita configurar su propio
servidor; en este caso puede usted saltarse esta secci\'on.


\begin{quote}
 \blackdiamond
 Observe que si \'unicamente va usted a experimentar con el servidor,
 tiene que asegurarse de que no lo configura con un nombre de dominio
 NIS que ya est\'e en uso en su red. Ello podr\'{\i}a desbaratar todo el
 servicio de red y hacer a mucha gente desdichada, y muy enfadada.
\end{quote}


Actualmente hay disponibles dos servidores NIS de forma gratuita para
\linux{}, uno contenido en el paquete \file{yps} de Tobias Reber, y el
otro en el paquete \file{ypserv} de Peter Eriksson. No deber\'{\i}a
importar cu\'al utilice usted, independientemente de que usted use NYS o
el c\'odigo de cliente NIS est\'andar que existe actualmente en
\file{libc}. En el momento de escribir esto, el c\'odigo para manejar
servidores NIS esclavos parece ser m\'as completo en \file{yps}. As\'{\i} que
si tiene que tratar con servidores esclavo, \file{yps} puede ser una
opci\'on mejor.


Tras instalar el programa servidor (\prog{ypserv}) en
\file{/usr/sbin}, deber\'a crear el directorio que va a contener los
ficheros mapa que su servidor va a distribuir. Al establecer un
dominio NIS para el dominio \host{cervecera}, los mapas ir\'{\i}an al
fichero \file{/var/yp/cervecera}.  El servidor determina si est\'a
sirviendo un dominio NIS en particular comprobando si el directorio
mapa est\'a presente. Si va a deshabilitar el servicio para alg\'un
dominio NIS, aseg\'urese de eliminar el directorio tambi\'en.


\index{NIS!crear mapas}
\index{crear!mapas NIS}
Los mapas normalmente se almacenan en ficheros DBM para acelerar las
b\'usquedas. Se crean a partir de los ficheros maestro usando un
programa llamado \prog{makedbm} (para el servidor de Tobias) o
\prog{dbmload} (para el servidor de Peter). Estos pueden no ser
intercambiables. Transformar un fichero maestro a una forma entendible
por \prog{dbmload} normalmente requiere un poco de magia \prog{awk} o
\prog{sed}, lo que tiende a ser un poco tedioso de escribir y dif\'{\i}cil
de recordar. Por ello, el paquete \file{ypserv} de Peter Eriksson
contiene un Makefile (llamado \file{ypMakefile}) que realiza todos
esos trabajos por usted. Deber\'{\i}a instalarlo como \file{Makefile} en su
directorio de mapas, y editarlo para que refleje los mapas que desee
distribuir. Hacia el principio del fichero encontrar\'a la etiqueta
\keyword{all} que lista los servicios que \prog{ypserv} ofrece. Por
defecto, la l\'{\i}nea es algo parecido a esto:


\begin{tscreen}
\begin{verbatim}
all: ethers hosts networks protocols rpc services passwd group netid
\end{verbatim}
\end{tscreen}


\index{chequear!NIS} Si no desea producir los mapas
\file{ethers.byname} y \file{ethers.byaddr}, por ejemplo, simplemente
elimine la palabra \keyword{ethers} de la l\'{\i}nea. Para probar su
configuraci\'on, puede ser suficiente con empezar con s\'olo uno o dos
mapas, como los mapas \file{services.*}.


Tras editar el \file{Makefile}, y sin salir del directorio de mapas,
teclee ``\term{make}''. Esto generar\'a e instalar\'a autom\'aticamente los
mapas. Debe asegurarse de actualizar los mapas cada vez que cambie los
ficheros maestros, de otro modo los cambios seguir\'an siendo invisibles
para la red.


\index{chequear!NIS}
La siguiente secci\'on explica c\'omo configurar el c\'odigo de cliente NIS.
Si su configuraci\'on no funciona, deber\'{\i}a comprobar si llega alguna
petici\'on a su servidor o no. Si especifica el par\'ametro \option{-D} al
servidor NYS, \'este imprimir\'a mensajes de depuraci\'on en la consola
sobre todas las peticiones NIS entrantes, y los resultados devueltos.
Esto deber\'{\i}a darle una idea sobre d\'onde puede estar el problema.
El servidor de Tobias no tiene esa opci\'on.


\index{NIS!servidor|)}
\section{Configurar un Cliente NIS con NYS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.yp}
\index{configurar!NIS}
\index{NIS!cliente|(}
A lo largo de lo que queda de este cap\'{\i}tulo, cubriremos la
configuraci\'on de un cliente NIS.

\index{yp.conf@\file{yp.conf}|(}
\index{establecer!dominio NIS}
Su primer paso deber\'{\i}a ser indicarle a NYS qu\'e servidor usar para el
servicio NIS, estableci\'endolo en el fichero de configuraci\'on
\file{/etc/yp.conf}. Un fichero de ejemplo muy sencillo para un nodo
en la red de la Vinatera ser\'{\i}a algo as\'{\i}:


\begin{tscreen}
\begin{verbatim}
# yp.conf - Configuracion YP para la biblioteca NYS.
#
domainname vinatera
ypserver vbardolino 
\end{verbatim}
\end{tscreen}

La primera sentencia indica a los clientes NIS que pertenecen al
dominio NIS \host{vinatera}. Si omite esta l\'{\i}nea, NYS usar\'a el nombre de
dominio que usted asign\'o a su sistema con el comando
\prog{domainname}. La sentencia \keyword{ypserver} indica el servidor
a usar. Por supuesto, la direcci\'on~IP correspondiente a
\host{vbardolino} debe estar establecida en el fichero \file{hosts};
alternativamente, podr\'{\i}a usar directamente la direcci\'on~IP en la
sentencia \keyword{ypserver}.

En el fichero mostrado arriba, el comando \keyword{ypserver} indica a
NYS que use el servidor indicado sea cual sea el dominio NIS actual.
Sin embargo, si mueve frecuentemente su m\'aquina entre diferentes
dominios NIS, tal vez le interesar\'{\i}a mantener la informaci\'on de varios
dominios en el fichero \file{yp.conf}. Puede tener informaci\'on sobre
los servidores para varios dominios NIS en \file{yp.conf} a\~nadiendo
el nombre de dominio NIS a la sentencia \keyword{ypserver}. Por
ejemplo, podr\'{\i}a cambiar el fichero del ejemplo anterior para que sea
algo as\'{\i}:

\begin{tscreen}
\begin{verbatim}
# yp.conf - Configuracion YP para la biblioteca NYS.
# 
ypserver vbardolino vinatera
ypserver vstout     cervecera
\end{verbatim}
\end{tscreen}

Esto le permite mover su m\'aquina a cualquiera de los dos dominios
simplemente con establecer el dominio NIS deseado durante el arranque
con el comando \prog{domainname}.  \index{yp.conf@\file{yp.conf}|)}

\index{ypcat@\prog{ypcat}}
\index{chequear!NIS}
Una vez creado este fichero de configuraci\'on b\'asico y de asegurarse de
que tiene permiso de lectura para todo el mundo, deber\'{\i}a realizar su
primera prueba para comprobar si puede conectar con su servidor.
Aseg\'urese de elegir cualquier mapa que su servidor distribuya, como
\map{hosts.byname}, e intente obtenerlo usando la utilidad
\prog{ypcat}. \prog{ypcat}, como todas las dem\'as herramientas NIS,
debe encontrarse en \file{/usr/sbin}.


\begin{tscreen}
\begin{verbatim}
# ypcat hosts.byname
191.72.2.2      vbeaujolais  vbeaujolais.linus.lxnet.org
191.72.2.3      vbardolino   vbardolino.linus.lxnet.org
191.72.1.1      vlager       vlager.linus.lxnet.org
191.72.2.1      vlager       vlager.linus.lxnet.org
191.72.1.2      vstout       vstout.linus.lxnet.org
191.72.1.3      vale         vale.linus.lxnet.org
191.72.2.4      vchianti     vchianti.linus.lxnet.org
\end{verbatim}
\end{tscreen}

\index{rpcinfo@\prog{rpcinfo}}
La salida que obtenga debe ser algo parecido a lo expuesto arriba. Si
recibe un mensaje de error en su lugar que diga ``\message{Can't bind
  to server which serves domain}'' ({\it no se puede conectar al
  servidor del dominio}), o algo similar, entonces, o el nombre de
dominio NIS que ha establecido no tiene definido su servidor
correspondiente en \file{yp.conf}, o el servidor, por alguna raz\'on, no
est\'a disponible. En este \'ultimo caso, aseg\'urese de que un \prog{ping}
a esa m\'aquina da un resultado positivo, y de que est\'a en efecto
ejecutando un servidor NIS. Puede verificar esto \'ultimo usando
\prog{rpcinfo}, que deber\'{\i}a producir la siguiente salida:

\begin{tscreen}
 \# rpcinfo -u {\sl servidor} ypserv\\
 program 100004 version 2 ready and waiting
\end{tscreen}


\section{Elecci\'on de los Mapas Correctos}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.nsswitch}
\index{nsswitch.conf@\file{nsswitch.conf}|(}
\index{Elegir!mapas NIS}
Una vez que est\'e seguro de que puede llegar al servidor NIS, debe
decidir qu\'e ficheros de configuraci\'on sustituir o aumentar con mapas
NIS. Normalmente desear\'a usar mapas NIS para las funciones de
busqueda de nodos y de claves de usuario. El primero es especialmente
\'util si no utiliza DNS. El segundo permite a todos los usuarios
entrar en su cuenta desde cualquier sistema dentro del dominio NIS;
esto suele requerir compartir un directorio \file{/home} central entre
todos los nodos mediante NFS. Todo esto se explica en detalle en la
secci\'on~\ref{nis.passwd} m\'as abajo.  Otros mapas, como
\file{services.byname}, no proporcionan una ganancia tan clara, pero
ahorran algo de trabajo de edici\'on si instala alguna aplicaci\'on de red
que use un nombre de servicio que no est\'e en el fichero
\file{services} est\'andar.

Por lo general, usted desear\'a tener alguna libertad de elecci\'on acerca
de cu\'ando una funci\'on de b\'usqueda usar\'a ficheros locales y cu\'ando har\'a
una petici\'on al servidor NIS. NYS le permite configurar el orden en
que una funci\'on accede a estos servicios. Esto se controla mediante el
fichero \file{/etc/nsswitch.conf}, que quiere decir \emph{Selector del
  Servicio de Nombrado}\footnote{N. del T.: del ingl\'es
  \emph{Name Service Switch}.  } pero por supuesto no est\'a limitado a
los servicios de nombres. Para cualquiera de las funciones de b\'usqueda
de datos soportadas por NYS, contiene una l\'{\i}nea citando los servicios
a usar.

\index{services.byname@\file{services.byname}}
\index{hosts.byname@\file{hosts.byname}}
El orden correcto de los servicios depende del tipo de datos. Es
improbable que el mapa \file{services.byname} contenga entradas
diferentes que las que se encuentran en el fichero \file{services}
local; \'unicamente podr\'{\i}a contener m\'as. As\'{\i} que una buena elecci\'on
ser\'{\i}a consultar los ficheros locales primero, y probar con NIS s\'olo si
el nombre del servicio no fue encontrado. Por otro lado, la
informaci\'on de nombres de nodos puede cambiar muy frecuentemente, de
forma que el DNS o el servidor NIS tendr\'{\i}an siempre la informaci\'on m\'as
precisa, mientras que el fichero \file{hosts} local s\'olo se mantiene
como copia de respaldo por si el DNS y NIS fallasen.  En este caso,
habr\'{\i}a que comprobar el fichero local en \'ultimo lugar.

El siguiente ejemplo muestra c\'omo configurar las funciones
\func{gethostbyname(2)}, \func{gethostbyaddr(2)}, y
\func{getservbyname(2)} de la forma descrita anteriormente. Probar\'an
los servicios listados por orden; si una busqueda es satisfactoria, se
devuelve el resultado, si no, se intentar\'a con el siguiente servicio.

\begin{tscreen}
\begin{verbatim}
# /etc/nsswitch.conf de ejemplo
#
hosts:     nis dns files 
services:  files nis
\end{verbatim}
\end{tscreen}

M\'as abajo se muestra la lista completa de servicios que pueden ser
usados en una entrada del fichero \file{nsswitch.conf}. Los mapas,
ficheros, servidores y objetos que se pueden consultar dependen del
nombre de la entrada.

\begin{dispitems}
 \ditem[\keyword{nisplus} o \keyword{nis+}]
        Usa el servidor \NISplus{} para este dominio. La situaci\'on del 
        servidor se obtiene del fichero \file{/etc/nis.conf}.

 \ditem[\keyword{nis}]
        Usa el servidor NIS actual de este dominio. La situaci\'on del
        servidor consultado est\'a configurada en el fichero \file{yp.conf} 
        como se mostr\'o en la secci\'on previa. Para la entrada 
        \keyword{hosts} se consultan los mapas \map{hosts.byname} y 
        \map{hosts.byaddr}. 

 \ditem[\keyword{dns}]
        Usa el servidor de nombres DNS. Este tipo de servicio s\'olo es 
        \'util con la entrada \keyword{hosts}. Los servidores de nombres 
        consultados siguen estando determinados por el fichero est\'andar 
        \file{resolv.conf}.

 \ditem[\keyword{files}]
        Usa el fichero local. Como el fichero \file{/etc/hosts} para la 
        entrada \keyword{hosts}.

 \ditem[\keyword{dbm}]
        Busca la informaci\'on en ficheros DBM localizados en 
        \file{/var/dbm}. El nombre usado para el fichero es el del mapa NIS 
        correspondiente.

\end{dispitems}

Actualmente NYS soporta las siguientes entradas en
\file{nsswitch.conf}: \keyword{hosts}, \keyword{networks},
\keyword{passwd}, \keyword{group}, \keyword{shadow},
\keyword{gshadow}, \keyword{services}, \keyword{protocols},
\keyword{rpc} y \keyword{ethers}. Es probable que se a\~nadan
m\'as entradas.

% \keyword{aliases}, 
% \keyword{netmasks}, 
% \keyword{publickey}, 
% \keyword{netid}, 

La figura~\ref{nis.fig.switch} muestra un ejemplo m\'as completo que
introduce otra caracter\'{\i}stica del fichero \file{nsswitch.conf}: la
palabra clave \keyword{[NOTFOUND=return]} en la entrada
\keyword{hosts} indica a NYS que retorne si el elemento deseado no
pudo ser encontrado en la base de datos NIS o DNS. Esto es, NYS
continuar\'a y buscar\'a en los ficheros locales \emph{s\'olo} si las
llamadas a los servidores NIS y DNS fallaron por alguna otra raz\'on.
Los ficheros locales ser\'an usados entonces s\'olo durante el arranque y
como copia de respaldo cuando el servidor NIS se haya ca\'{\i}do.


\begin{figure}[htbp]
\begin{tscreen}
\begin{verbatim}
# /etc/nsswitch.conf
#
hosts:      nis dns [NOTFOUND=return] files
networks:   nis [NOTFOUND=return] files

services:   files nis
protocols:  files nis
rpc:        files nis
\end{verbatim}
\end{tscreen}
 \caption{
  \label{nis.fig.switch}
  Fichero \file{nsswitch.conf} de ejemplo.
 }
\end{figure}

\index{nsswitch.conf@\file{nsswitch.conf}|)}


\section{Uso de los mapas \file{passwd} y \file{group}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.passwd}
\index{NIS!passwd maps@\file{passwd} mapas|(}
\index{passwd.byname@\file{passwd.byname}}
\index{passwd.byuid@\file{passwd.byuid}}
\index{group.byname@\file{group.byname}}
\index{group.bygid@\file{group.bygid}}
\index{contrase\~nas!network-wide|(}
\index{red!contrase\~nas}
\index{LAN!contrase\~nas}
Uno de las usos m\'as importantes de NIS es sincronizar usuarios e
informaci\'on de cuentas en todos los nodos de un dominio NIS. Para este
fin, s\'olo se suele mantener un peque\~no fichero local
\file{/etc/passwd}, al que se le a\~nade informaci\'on de todas las dem\'as
cuentas mediante los mapas NIS. Sin embargo, s\'olo con habilitar
b\'usquedas NIS para este servicio en \file{nsswitch.conf} no es
suficiente.

Cuando se base en la informaci\'on de contrase\~nas distribuida por NIS,
debe primero cerciorarse de que los n\'umeros identificadores de
cualquier usuario que tenga en su fichero \file{passwd} local
coincidan con la idea que tiene el servidor NIS de identificadores de
usuarios. Usted tambi\'en desear\'a esto para otros prop\'ositos, como
montar vol\'umenes NFS de otros nodos de su red.

Si alguno de los n\'umeros de usuario de \file{/etc/passwd} o de
\file{/etc/group} son distintos de los que aparecen en los mapas,
tiene que ajustar el propietario de todos los ficheros que pertenezcan
a ese usuario. Primero deber\'{\i}a cambiar todos los n\'umeros de uid y gid
en \file{passwd} y \file{group} a los nuevos valores; despu\'es,
encontrar todos los ficheros que pertenezcan a los usuarios reci\'en
modificados, y finalmente cambiarles el propietario.  Supongamos que
\user{news} ten\'{\i}a un n\'umero de usuario de 9, y que \user{okir} ten\'{\i}a
un n\'umero de usuario de 103, y que \'estos fueron cambiados a alg\'un otro
valor; entonces deber\'{\i}a teclear los siguientes comandos:

\begin{tscreen}
\begin{verbatim}
 # find / -uid   9 -print >/tmp/uid.9
 # find / -uid 103 -print >/tmp/uid.103
 # cat /tmp/uid.9   | xargs chown news
 # cat /tmp/uid.103 | xargs chown okir
\end{verbatim}
\end{tscreen}

Es importante que ejecute estos comandos con el \emph{nuevo} fichero
\file{passwd} ya instalado, y que recoja todos los nombres de ficheros
antes de cambiar el propietario de cualquiera de ellos. Para cambiar
el grupo propietario de los ficheros, se usar\'a un comando similar.

Una vez hecho esto, los n\'umeros de uid y gid de su sistema estar\'an de
acuerdo con los de los dem\'as nodos de su dominio NIS. El siguiente
paso ser\'a a\~nadir las l\'{\i}neas de configuraci\'on a \file{nsswitch.conf}
que habiliten las b\'usquedas NIS de informaci\'on de usuario y grupo.

\begin{tscreen}
\begin{verbatim}
# /etc/nsswitch.conf - tratamiento de contrase\~na y grupo
passwd: nis files
group:  nis files
\end{verbatim}
\end{tscreen}

Esto hace que el comando \prog{login} y otros de esta familia
consulten primero los mapas NIS cuando un usuario intenta entrar, y si
esta b\'usqueda falla, sigan con los ficheros locales. Normalmente usted
borrar\'a la mayor parte de los usuarios de sus ficheros locales y s\'olo
dejar\'a en ellos entradas para \user{root} y para cuentas gen\'ericas
como \user{mail}. Esto es porque algunas tareas vitales del sistema
pueden requerir mapear uids a nombres de usuario o viceversa. Por
ejemplo, las tareas \prog{cron} administrativas pueden ejecutar el
comando \file{su} para convertirse temporalmente en \user{news}, o el
subsistema UUCP puede enviar un informe de estado en un mensaje. Si
\user{news} y \user{uucp} no tienen entradas en el fichero
\file{passwd} local, estas tareas fallar\'an miserablemente durante un
apag\'on de NIS.

Dos observaciones importantes: por un lado, la configuraci\'on descrita
hasta aqu\'{\i} s\'olo funciona para sistemas de login que no usan contrase\~na
{\em shadow}, como los incluidos en el paquete \file{util-linux}. Los
intrincados m\'etodos para usar contrase\~nas {\em shadow} con NIS ser\'an
cubiertos m\'as adelante. Por otro lado, los comandos login no son los
\'unicos que acceden al fichero \file{passwd}~-- por ejemplo la orden
\prog{ls} que la mayor parte de la gente usa constantemente. Cada vez
que se saca un listado con la opci\'on -l, \prog{ls} mostrar\'a los
nombres simb\'olicos del propietario y del grupo; esto es, por
cada uid y gid que encuentre, deber\'a hacer una petici\'on al servidor
NIS. Esto ralentizar\'a mucho todo el sistema cuando su red local se
atasque, o, a\'un peor, cuando el servidor NIS no est\'e en la misma red
f\'{\i}sica, de forma que los datagramas tengan que pasar a trav\'es de un
encaminador o puente.


Y esto no es todo. Imagine lo que pasa si un usuario quiere cambiar su
contrase\~na. Normalmente invocar\'a el comando \prog{passwd}, que leer\'a
la nueva contrase\~na y actualizar\'a el fichero \file{passwd} local. Esto
es imposible con NIS, puesto que ese fichero no est\'a disponible
localmente, y tampoco es una opci\'on que los usuarios entren en el
servidor NIS cada vez que quieran cambiar la clave. Por ello, NIS
proporciona un sustituto para \prog{passwd} llamado \prog{yppasswd},
que realiza una tarea an\'aloga en NIS. Para cambiar la contrase\~na en la
m\'aquina servidora, contacta con el demonio \prog{yppasswdd} en ese nodo
mediante RPC, y le proporciona informaci\'on de la contrase\~na actualizada.
Generalmente, \prog{yppasswd} se instala sobre el programa normal
haciendo algo as\'{\i}:

\begin{tscreen}
\begin{verbatim}
# cd /bin
# mv passwd passwd.old
# ln yppasswd passwd
\end{verbatim}
\end{tscreen}

Al mismo tiempo tendr\'a que instalar \prog{rpc.yppasswdd} en el
servidor y arrancarlo desde los guiones \prog{rc}. Esto ocultar\'a de
forma efectiva todas las complicaciones de NIS a sus usuarios.


% N. del T. Esta parte est\'a entre comentarios tambi\'en en la versi\'on 
% inglesa :-?  As\'{\i} que lo dejo como est\'a.
% Tenga en cuenta tambi\'en que puesto que NYS es todav\'{\i}a una biblioteca aparte 
% y no est\'a todav\'{\i}a en la \lib{libc} est\'andar, el usar soporte NIS para 
% la informaci\'on de \file{passwd} es s\'olo una opci\'on te\'orica. Esta  
% situaci\'on se espera que cambie pronto.


\index{contrase\~nas!network-wide|)}
\index{NIS!mapas passwd@mapas \file{passwd}|)}

\section{Uso de NIS con Soporte {\em Shadow}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.shadow}
\index{NIS!y contrase\~nas shadow}

Todav\'{\i}a no existe soporte NIS para instalaciones que usan el conjunto
de utilidades {\em shadow password}. John F.~Haugh, el autor del conjunto
{\em shadow}, public\'o recientemente una versi\'on de las funciones de
biblioteca {\em shadow} en \ngrp{comp.sources.misc}, cubiertas por la
licencia LGPL de GNU. Ya tiene alg\'un soporte para NIS, pero no est\'a
completa, y los ficheros no han sido a\~nadidos todav\'{\i}a a la biblioteca
C~est\'andar. Por otro lado, publicar la informaci\'on de
\file{/etc/shadow} via NIS rompe de alguna manera con el prop\'osito del
conjunto {\em shadow}.

Aunque las funciones de b\'usqueda de contrase\~na en NYS no usan un mapa
\file{shadow.byname} ni nada parecido, NYS soporta el uso de un
fichero \file{/etc/shadow} local de forma transparente. Cuando la
implementaci\'on NYS de \func{getpwnam} es llamada para buscar
informaci\'on relacionada con un login dado, se consultan las
facilidades especificadas por la entrada \keyword{passwd} en
\file{nsswitch.conf}.  El servicio \keyword{nis} seguir\'a mirando en el
mapa \file{passwd.byname} del servidor NIS. En cambio, el servicio
\keyword{files} mirar\'a si existe \file{/etc/shadow} y lo
intentar\'a abrir. Si no existe, o si el usuario no tiene privilegios de
\user{root}, volver\'a al comportamiento tradicional de mirar la
informaci\'on del usuario s\'olo en \file{/etc/passwd}. Sin embargo, si el
fichero \file{shadow} existe y puede ser abierto, NYS extraer\'a la
contrase\~na del usuario de \file{shadow}. La funci\'on \func{getpwuid} se
implementa similarmente. De esta forma, los binarios compilados con
NYS funcionar\'an de forma transparente con una instalaci\'on {\em shadow}
local.

\section{Uso del C\'odigo NIS Tradicional}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{nis.old-code}
\index{NIS!c\'odigo tradicional}

Si est\'a usando el c\'odigo de cliente existente en la \file{libc}
est\'andar, la configuraci\'on de un cliente NIS es un poco diferente. Por
un lado, se usa un demonio \prog{ypbind} para buscar por la red
servidores activos en vez de obtener esta informaci\'on de un fichero de
configuraci\'on.  Usted tendr\'a por ello que cerciorarse de que arranca
\prog{ypbind} durante la inicializaci\'on del sistema. Debe ser invocado
despu\'es de que el dominio NIS haya sido establecido y de que el
mapeador de puertos RPC haya sido arrancado. Despu\'es podr\'a invocar
\prog{ypcat} para comprobar el servidor como se mostr\'o m\'as arriba.

\index{fallo del mapeador de puertos(mensaje de error)} Reci\'entemente
ha habido numerosos informes de error indicando que NIS falla con un
mensaje de error que dice: ``\term{clntudp\_create: RPC: portmapper
  failure - RPC: unable to receive}''. Estos mensajes de error son
debidos a un cambio incompatible en el modo en que \prog{ypbind}
comunica la informaci\'on de enlazado a las funciones de biblioteca.
Con obtener las fuentes m\'as recientes de las utilidades NIS y
recompilarlas se deber\'{\i}a solucionar este problema.\footnote{ El c\'odigo
  fuente de \file{yp-linux} puede obtenerse de
  \host{ftp.uni-paderborn.de}, en el directorio
  \file{/pub/Linux/LOCAL}.  }


\index{NIS!mapas passwd@mapas \file{passwd}}
\index{red!contrase\~nas}
\index{LAN!contrase\~nas}
Del mismo modo, la forma en que el NIS tradicional decide si hay que
mezclar informaci\'on NIS, y c\'omo, con la de los ficheros locales es
distinta que la usada por NYS. Por ejemplo, para usar los mapas de
contrase\~na NIS, debe incluir la siguiente l\'{\i}nea en alg\'un lugar de su
mapa \file{/etc/passwd}:

\begin{tscreen}
 +:*:0:0:::
\end{tscreen}

\index{host.conf@\file{host.conf}}
\index{red!resoluci\'on de nombres de nodos}
\index{LAN!resoluci\'on de nombres de nodos}
\index{nombres de nodos!resoluci\'on}
Esto marca el lugar donde las funciones de b\'usqueda de contrase\~nas
``insertan'' los mapas NIS. Insertando una l\'{\i}nea similar (menos los
dos \'ultimos dos puntos) en \file{/etc/group} obtenemos lo mismo para
los mapas \file{group.*}. Para usar los mapas \file{hosts.*}
distribuidos por NIS, cambie la l\'{\i}nea \keyword{order} del fichero
\file{host.conf}. Por ejemplo, si desea usar NIS, DNS, y el fichero
\file{/etc/hosts} (por ese orden), necesita cambiar esa l\'{\i}nea por:

\begin{tscreen}
 order yp bind hosts
\end{tscreen}

La implementaci\'on NIS tradicional no soporta ning\'un otro mapa m\'as por
el momento.


\index{NIS!cliente|)}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{configurar!NIS|)}
\index{NYS|)}
\index{NIS|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%                                                             %%
%%              E N D   O F   C H A P T E R                    %%
%%                                                             %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
