Compartir carpetas NFS

Aunque Samba se ha convertido en una forma muy popular de compartir recursos en red para equipos Linux, también disponemos de la opción de utilizar NFS (Network File System), un protocolo desarrollado por Sun Systems para los sistemas Unix.

Como equipo servidor, utilizaremos un Ubuntu 12.04 LTS Server sin entorno gráfico y como cliente un Ubuntu 10.04 Desktop, aunque los pasos son fácilmente exportables a cualquier otra distribución de Linux.

En primer lugar instalaremos en el servidor los siguientes paquetes: portmap, nfs-common y nfs-kernel-server. Para ello ejecutaremos el siguiente comando, recordar hacerlo con privilegios de superusuario o directamente como root, en nuestro caso todos los pasos en el servidor los haremos como root.

# apt-get install portmap nfs-common nfs-kernel-server

Una vez realizada la instalación, comprobamos que tenemos las conexiones establecidas,  mediante el comando rcpinfo.

nf1

A continuación crearemos la carpeta que compartiremos en red, en este caso, crearemos una carpeta que llamaremos compartida y le daremos permisos totales a todos los usuarios.

nfs2

Para compartir este recurso en red, debemos ir al archivo /etc/exports y allí publicar la ruta, indicando los permisos correspondientes.

nfs3

Si observamos la imagen anterior, vemos que en primer lugar se indica la ruta de la carpeta a compartir. A continuación, el * indica que aceptaremos conexiones de cualquier IP. Si queremos restringir la conexión a una red en concreto (o a un sólo equipo), substituiremos el asterisco por la IP del equipo o subred ( por ejemplo, 192.168.2.0/28, permitiría únicamente conexiones para equipos con IP,s comprendidas entre 192.168.2.1 y 192.168.2.14).

A continuación se indican los permisos con los que se comparte la carpeta, en este caso rw indica que se permite la lectura y escritura. Si se quisiera permitir únicamente la lectura, escribiríamos ro (read only).

El último componente no_root_squash, regula el comportamiento de la conexión del usuario root. Si no ponemos o nada, o indicamos explícitamente root_squash, cuando un usuario root se conecte al recurso, se mapeará al usuario nobody. Si por el contrario, utilizamos no_root_squash, permitimos que el usuario root de los clientes acabe como root en el sistema de ficheros. Evidentemente, esta opción únicamente la deberemos aplicar en un entorno donde el root de los clientes esté perfectamente controlado, caso contrario supondría un riesgo de seguridad.

Para finalizar la configuración del servidor, editaremos el archivo /etc/hosts.allow para permitir las conexiones a los servicios de portmap y nfs.

nfs4

Para finalizar reiniciaremos el servicio para aplicar los cambios:

# /etc/init.d/nfs-kernel-server restart

Pasamos a configurar el cliente. En primer lugar, debemos instalar si no lo están portmap i nfs-common (habitualmente, suelen venir instalados por defecto en la mayoría de distribuciones).

Comprobamos que efectivamente tenemos conexión con el servidor NFS mediante la orden showmount, que además nos indicará qué recursos comparte dicho servidor.

nfs5

Para mapear el recurso compartido, ejecutaremos el siguiente comando, siempre con privilegios de superusuario, en este caso compartimos la carpeta en el escritorio con el nombre remot.

nfs6

Obviamente, resulta incómodo tener que mapear el recurso cada vez que iniciemos sesión. Por eso, a continuación montaremos el recurso de forma automática. De esta manera, cuando iniciemos sesión en el cliente ya tendremos el recurso disponible, sin necesidad de mapearlo cada vez. Para ello, editamos el archivo /etc/fstab:

nfs7

Si reiniciamos ahora el cliente, comprobamos como ahora nos aparece el recurso compartido en el escritorio:

nfs8

En posteriores artículos, veremos como integrar clientes y servidores Windows con este protocolo NFS.

Anuncios

5 comentarios en “Compartir carpetas NFS

  1. Hola,
    Primero de todo agradecer tu magníficos tutorial. Tengo una duda, ya que he compartido una carpeta, en el servidor con un usuario no root, el mismo que en el cliente i con mismos uid i gid. Cuando intento entrar en la carpeta compartida desde el cliente (la monto en fstab como en el tutorial) me indica que solo el root puede montar. ¿se podria solventar de alguna forma?
    Muchas gracias.

  2. Te detallo la prueba que estoy haciendo:

    Servidor:
    -Creo un usuario no administrador ‘professorat’ con uid i gid 4848
    -Creo es su home un directorio que voy a compartir con permisos 700, propietario professorat
    -Configuro con el administrador el fichero /etc/exports

    Cliente/s:
    -Creo un usuario no administrador ‘professorat’ con uid i gid 4848
    -Creo en su home un directorio donde montar la unidad de red
    -Configuro con el root del cliente el fichero /etc/fstab

    Al iniciar session en el cliente con el usuario professorat, en el administrador de archivos me aparece como sítio correctamente. Pero cuando hago click para entrar me da el error:

    mount: solo el usuario root puede montar 192.168….

    Mi pregunta es si un usuario no administrador puede montar una unidad de red de esta forma.

    Un saludo y gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s