Cómo compartir archivos con NFS en sistemas Linux

  1. Ordenadores
  2. Sistemas Operativos
  3. Linux
  4. Cómo compartir archivos con NFS en sistemas Linux

Libro Relacionado

Linux All-In-One For Dummies, 6ª Edición

Por Emmett Dulaney

Es fácil compartir archivos entre ordenadores Linux en una red local. La forma de Linux de lograr esto es utilizar NFS (Network File System). Compartir archivos a través de NFS es sencillo e implica dos pasos básicos:

  • En el sistema Linux que ejecuta el servidor NFS, usted exporta (comparte) uno o más directorios listándolos en el archivo /etc/exports y ejecutando el comando exportfs. Además, debe iniciar el servidor NFS.
  • En cada sistema cliente, utilice el comando mount para montar los directorios que su servidor ha exportado.

El único problema con el uso de NFS es que cada sistema cliente debe soportarlo. Microsoft Windows no incluye NFS, por lo que debe comprar el software de NFS por separado si desea compartir archivos mediante NFS. Sin embargo, usar NFS si todos los sistemas en su LAN ejecutan Linux (u otras variantes de Unix con soporte NFS incorporado) tiene sentido.

NFS tiene vulnerabilidades de seguridad, por lo que no debería configurar NFS en sistemas que estén conectados directamente a Internet sin utilizar la seguridad RPCSEC_GSS que viene con NFS versión 4 (NFSv4). La versión 4.2 fue lanzada en noviembre de 2016; debería utilizarla para la mayoría de los propósitos, ya que incluye todas las actualizaciones necesarias.

La siguiente información le guiará a través de la configuración de NFS, utilizando un ejemplo de dos PCs Linux en una LAN.

Exportación de un sistema de archivos con NFS en Linux

Comience con el sistema de servidor que exporta – pone a disposición de los sistemas cliente – el contenido de un directorio. En el servidor, debe ejecutar el servicio NFS y designar uno o más sistemas de archivos para exportar.

Para exportar un sistema de ficheros, debe añadir una entrada apropiada al fichero /etc/exports. Suponga que desea exportar el directorio /home, y que desea habilitar el host llamado LNBP75 para montar este sistema de ficheros para operaciones de lectura y escritura. Puede hacerlo añadiendo la siguiente entrada al fichero /etc/exports:

/home LNBP75(rw,sync)

Si desea dar acceso a todos los hosts en una LAN como 192.168.0.0, puede cambiar esta línea a

/wWw.Subs-Team.Tv P r e s e n t a.

Cada línea en el fichero /etc/exports tiene este formato general:

Directorio host1(opciones) host2(opciones) ....

El primer campo es el directorio que se comparte a través de NFS, seguido de uno o más campos que especifican qué hosts pueden montar ese directorio remotamente y varias opciones entre paréntesis. Puede especificar los hosts con nombres o direcciones IP, incluyendo rangos de direcciones.

Las opciones entre paréntesis indican el tipo de acceso que se concede a cada host y cómo se asignan los ID de usuario y de grupo del servidor a la identificación del cliente. (Si un archivo es propiedad de root en el servidor, por ejemplo, ¿qué propietario es el del cliente?) Entre paréntesis, las opciones están separadas por comas. Si a un host se le permite el acceso de lectura y escritura, y todos los IDs deben ser asignados al usuario anónimo (por defecto, el usuario anónimo no se llama nadie), las opciones tienen el siguiente aspecto:

(rw,all_squash)

La siguiente tabla muestra las opciones que puede utilizar en el fichero /etc/exports. Encontrará dos tipos de opciones: opciones generales y opciones de asignación de ID de usuario.

Options in /etc/exportsOptionDescriptionGeneral OptionssecurePermite conexiones sólo desde el puerto 1024 o inferior (por defecto)insecurePermite conexiones desde el puerto 1024 o superiorPermite leer-only access (default)rwPermite tanto el acceso de lectura como el de escrituraEfectúa operaciones de escritura (escritura de información en el disco) cuando se solicita (por defecto)asyncEfectúa operaciones de escritura cuando el servidor está listono_wdelayEfectúa operaciones de escritura inmediatamentewdelayEspera un poco a ver si las peticiones de escritura relacionadas llegan y luego las ejecutan juntas (por defecto)hideOculta un directorio exportado que es un subdirectorio de otro directorio exportado (por defecto)no_hideCausa que un directorio no se oculte (opuesto a hide)subtree_checkRealiza la comprobación de subárboles, que implica comprobar los directorios principales de un subdirectorio exportado cada vez que se accede a un archivo (por defecto)no_subtree_checkDesactiva la comprobación de subárboles (opuesto a subárboles_check)insecure_locksPermite el bloqueo de archivos insegurosOpciones de asignación de ID de usuariostodos los ID de usuarios y de gruposMapasea todos los ID de usuarios y los ID de grupos al usuario anónimo en los ID remotos de usuario y de grupo de clientno_all_squashMaps a IDs parecidos en los IDs de clientes. (por defecto)root_squashMaps remote root user to the anonymous user on the client (por defecto)no_root_squashMaps remote root user to the local root useranonuid=UIDS Define el ID de usuario de usuario anónimo a utilizar para las opciones all_squash y root_squashanongid=GIDS Define el ID de grupo de usuario anónimo a utilizar para las opciones all_squash y root_squashDespués de

añadir la entrada en el fichero /etc/exports, exportar manualmente el sistema de archivos escribiendo el siguiente comando en una ventana de terminal:

exportaciones -a

Este comando exporta todos los sistemas de ficheros definidos en el fichero /etc/exports.

Ahora puede iniciar los procesos del servidor NFS.

En Debian, inicie el servidor NFS iniciando sesión como root y escribiendo /etc/init.d/nfs-kernel-server en una ventana de terminal. En Fedora, escriba /etc/init.d/nfs start. En SUSE, escriba /etc/init.d/nfsserver start. Si desea que el servidor NFS se inicie cuando el sistema arranque, escriba update-rc.d nfs-kernel-server de forma predeterminada en Debian. En Fedora, escriba chkconfig – – nivel 35 nfs on. En SUSE, escriba chkconfig – – -level 35 nfsserver on.

Cuando el servicio NFS está listo, el lado del servidor de NFS está listo. Ahora puede intentar montar el sistema de archivos exportado desde un sistema cliente y acceder al sistema de archivos exportado según sea necesario.

Si alguna vez realiza algún cambio en los sistemas de ficheros exportados que aparecen en el fichero /etc/exports, recuerde reiniciar el servicio NFS. Para reiniciar un servicio, invoque el script en el directorio /etc/init.d con restart como argumento (en lugar del argumento de inicio que utiliza para iniciar el servicio).

Montaje de un sistema de ficheros NFS en Linux

Para acceder a un sistema de archivos NFS exportado en un sistema cliente, debe montar ese sistema de archivos en un punto de montaje. El punto de montaje no es más que un directorio local. Suponga que desea acceder al directorio /home exportado desde el servidor llamado LNBP200 en el directorio local /mnt/lnbp200 en el sistema cliente. Para ello, siga estos pasos:

  1. Inicie sesión como root , y cree el directorio con este comando:mkdir /mnt/lnbp200
  2. Escriba el siguiente comando para montar el directorio desde el sistema remoto (LNBP200) en el directorio local/mnt/lnbp200:mount lnbp200:/home /mnt/lnbp200

Después de completar estos pasos, puede ver y acceder a los archivos exportados desde el directorio local /mnt/lnbp200.

Para confirmar que el sistema de archivos NFS está realmente montado, inicie sesión como root en el sistema cliente y escriba mount en una ventana de terminal. Verá una línea similar a la siguiente sobre el sistema de archivos NFS:

lnbp200:/home/public en /mnt/lnbp200 tipo nfs (rw,addr=192.168.0.4)

NFS soporta dos tipos de operaciones de montaje: duro y suave. Por defecto, un montaje es difícil, lo que significa que si el servidor NFS no responde, el cliente sigue intentando acceder al servidor indefinidamente hasta que el servidor responde. Puede montar suavemente un volumen NFS añadiendo la opción -o soft al comando mount. Para un montaje suave, el cliente devuelve un error si el servidor NFS no responde y no vuelve a intentarlo.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*