Como ya se ha mencionado en el apartado 13.8, “NIS – Network Information Service”, el servicio NFS sirve, junto con el servicio NIS, para hacer una red transparente para el usuario. NFS permite la distribución de sistemas de archivos en la red, gracias a lo cual el usuario encuentra siempre el mismo entorno, independientemente del ordenador en el que trabaje.
Al igual que NIS, NFS es un servicio asimétrico de estructura cliente-servidor; pero a diferencia de este, NFS puede ofrecer sistemas de archivos a la red (“exportar”) y a su vez montar los de otros ordenadores (“importar”). La constelación más habitual consiste en utilizar servidores con discos duros de gran capacidad para exportar sistemas de archivos que serán montados por los clientes.
Todo usuario (al que le han asignado ciertos derechos) puede distribuir directorios NFS de servidores NFS en su propio árbol de directorios. Para ello, el método más sencillo consiste en utilizar el módulo de YaST. Allí se debe introducir el nombre de host del ordenador que hace las veces de servidor NFS, el directorio a exportar del servidor, y el punto de montaje en el que se debe montar en el ordenador. En la primera ventana de diálogo escoja e introduzca la información mencionada (Fig. 13.9, “Configuración de un cliente NFS”).
Importar manualmente sistemas de archivos desde un servidor NFS es muy simple y tiene como única condición que el mapeador de puertos o portmapper RPC esté activo. Para iniciar este servidor, ejecute el comando rcportmap start como usuario root. Una vez iniciado este servicio es posible incorporar sistemas de archivos externos al sistema de archivos local, siempre que puedan exportarse de las máquinas correspondientes. El procedimiento es análogo a la incorporación de discos locales usando el comando mount. La sintaxis del comando es la siguiente:
mount ordenador:ruta remota ruta local
Se pueden importar por ejemplo los directorios de usuario del ordenador sol con el siguiente comando:
mount sol:/home /home
Con YaST puede convertir un ordenador de su red en un servidor NFS; en otras palabras, un servidor que pone archivos y directorios a disposición de todos los ordenadores a los que se haya otorgado acceso. Muchas aplicaciones pueden por ejemplo estar disponible para los empleados sin que sea necesario instalarlas en sus PCs.
Para realizar la instalación, escoja en YaST la opción y allí la opción (Fig. 13.10, “Herramienta de configuración de servidores NFS”).
A continuación active la opción y pulse en . Ahora ya sólo queda introducir en la casilla superior los directorios que deben exportarse y en la inferior los ordenadores de la red a los que se les permite el acceso (figura 13.11, “Servidor NFS: Introducir el host y los directorios de exportación”). Existen cuatro opciones disponibles para los ordenadores: single host, netgroups, wildcards y IP networks. Puede encontrar una explicación más detalladas de estas opciones en las páginas man del paquete exports (man exports).
Con cierra la ventana de configuración.
Si prescinde del apoyo de YaST, asegúrese de que los siguientes servicios estén en funcionamiento en el servidor NFS:
RPC-Portmapper (portmap)
RPC-Mount-Daemon (rpc.mountd)
RPC-NFS-Daemon (rpc.nfsd)
Introduzca los comandos insserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap para que los servicios sean activados por los scripts /etc/init.d/portmap y /etc/init.d/nfsserver al arrancar el ordenador.
Aparte de iniciar estos daemons es preciso definir qué sistemas de archivos se deben exportar a qué ordenadores. Esto se realiza con el archivo /etc/exports.
Por cada directorio a exportar se necesita una línea que defina qué ordenador debe acceder a él y de qué forma; los subdirectorios se exportan automáticamente. Los ordenadores con permiso de acceso se indican generalmente por sus nombres (con el nombre del dominio incluido). También puede usar los comodines * y ? con sus funciones conocidas de la shell bash. Si no se indica ningún nombre, todos los ordenadores tienen la posibilidad de montar el directorio con los derechos de acceso indicados.
Los derechos con los que el directorio se exporta están indicados entre paréntesis en una lista detrás del nombre de ordenador. La siguiente tabla resume las opciones de acceso más importantes.
Tabla 13.12. Derechos de acceso a directorios exportados
| Opciones | Significado |
|---|---|
| ro | Exportación sólo con derecho de lectura (por defecto). |
| rw | Exportación con derecho de escritura y lectura. |
| root_squash | Esta opción hace que el usuario root del ordenador indicado no tenga sobre el directorio los derechos especiales típicos de root. Esto se logra modificando los accesos con la identidad de usuario (User-ID) 0 al de 65534 (-2). Esta identidad debe estar asignada al usuario nobody (esta es la opción por defecto). |
| no_root_squash | Ninguna modificación de los derechos de root. |
| link_relative | Modificación de enlaces simbólicos absolutos (aquellos que comienzan con /) a una secuencia de ../. Esta opción sólo tiene sentido si se monta el sistema de archivos completo de un ordenador (es así por defecto). |
| link_absolute | No se modifican los enlaces simbólicos. |
| map_identity | El cliente usa el mismo número de identificación (User-ID) que el servidor (esta es la opción por defecto). |
| map_daemon | Los números de identificación de usuario, cliente y servidor no coinciden. Con esta opción, el nfsd genera una tabla para la conversión de los números de identificación de usuario. El requisito para ello es la activación del daemon ugidd. |
El archivo 13.27, “/etc/exports” muestra un ejemplo de un archivo exports.
Ejemplo 13.27. /etc/exports
# # /etc/exports # /home sol(rw) venus(rw) /usr/X11 sol(ro) venus(ro) /usr/lib/texmf sol(ro) venus(rw) / tierra(ro,root_squash) /home/ftp (ro) # End of exports
Los programas mountd y nfsd leen el archivo /etc/exports. Después de haberlo modificado, es preciso reiniciar mountd y nfsd para que los cambios se activen. Para ello lo más sencillo es introducir el comando:
rcnfsserver restart