Compartiendo archivos entre GNU/Linux

Los sistemas operativos basados en Unix, no manejan el protocolo “gritón” o NetBios que hace que las redes Windows manejen una considerable cuota de broadcast así como de paso hagan saber a los otros equipos que tienen algún recurso para compartir con ellos. Entre esos sistemas no “güindos” están los sistemas GNU/Linux, Solaris o BSD que manejan un protocolo conocido como Network File System que permite que de una manera segura y controlada se puedan compartir directorios entre dichos sistemas. A continuación veremos como hacerlo.

Una manera estándar

Aunque algunas distribuciones GNU/Linux permiten hacer las cosas de manera gráfica, lo haremos por consola de comandos. Para así tratar de establecer un método común para todas las distribuciones al menos luego de la parte de la instalación de los paquetes.

Evidentemente, la primera parte es la instalación de los paquetes que permitan hacer de nuestra máquina un servidor NFS. Actualmente la mayoría de distribuciones y otros sistemas operativos basados en Unix, ya traen la capacidad de ser cliente del protocolo NFS. Por lo que simplemente debemos instalar los paquete del servidor.

Luego de instalado el servicio (En la distribución de su gusto). El siguiente paso es configurar el archivo exports. Este archivo es donde se enuncian los recursos que se van a compartir con los demás usuarios. Como es de suponerse el archivo debe ser editado por root (Recuerden como funciona la seguridad en GNU/Linux). La estructura es la siguiente:

[Ubicación del recurso a compartir] [Equipo o equipos que pueden acceder a los recursos]([Reglas para el acceso])

Por experiencia, se recomienda que si necesitan un compartir un disco o una partición montada en /media, que sea desmontada. Y luego montada manualmente en un directorio cualquiera para evitar que automáticamente le asignen un id.

En la sección de equipo o equipos se pueden especificar nombres de equipos. (Siempre y cuando estén especificados en /etc/hosts o que puedan ser traducidos por los DNSs), direcciones IP, dominios de búsqueda o rangos de direcciones IP. Para los dos últimos casos se pueden utilizar el comodín * de tal forma que se refiera a todos los equipos del dominio (ej: *.camayihi.org). Equipos con ciertas características en su nombre (ej: pc-*.camayihi.org). O los equipos de una red (ej: 192.168.1.*) o también todos los equipos (ej: *).

Opciones de configuración

Con respecto a las reglas para el acceso hay una gama de opciones:

– Lectura y escritura: Se pueden controlar con las opciones ro (ReadOnly – Solo Lectura) y rw (ReadWrite – Lectura y Escritura).

– Sincronismo: Se puede controlar que el volumen montado se actualice o no con los contenidos del volumen remoto en la medida que ocurran cambios. Puede ser async (Asincrónico) o sync (Sincronizado).

– Subdirectorios montados: Cuando se comparte un directorio que fue montado por el anfitrión ocurre en algunos casos que el directorio padre (ej: /media) oculta los contenidos de los directorios hijos (ej: /media/disco_1). Al utilizar la opción nohide evitamos esto y permitimos el acceso sin problemas. Se debe combinar con la opción no_subtree_check para mejorar el rendimiento y poder dar acceso a los subdirectorios.

Luego de construir el archivo, no es necesario reiniciar el servicio nfs sino simplemente ejecutar el comando:

exportfs -a

que publicará los elementos incluidos en el archivo y además verificará la consistencia del mismo.

Del lado del cliente, se puede usar el comando:

showmount -e [host o dirección IP]

y el nombre del host o su dirección IP para encontrar que recursos está compartiendo el servidor nfs, y así luego poder ejecutar un:

mount [dirección IP o nombre del host][Ruta del recurso compartido como fue exportado] [Ruta donde será montado el volumen]

NFS es un protocolo aún más complejo de lo que está expuesto aquí, para mayor información pueden usar los manuales (man export y man showmount).

Artículos relacionados