Para contestar esta cuestión debes considerar dos casos:
En el primer caso tienes dos opciones:
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.
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.
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.
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.
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.
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.
libc
. (de nuevo, mira el GCC-FAQ)
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
".
./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.
% 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
.