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.
Para contestar a esta cuestión debes considerar dos casos:
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
(<pen@lysator.liu.se>
). 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.
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.
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:
/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 administrador de tu sistema/red.
/usr/sbin/rpc.portmap
" si no está ya ejecutándose.
/var/yp
" si no existe.
/usr/sbin/ypbind
"
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
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
".