Carpetas compartidas en red en Ubuntu: Instalando y configurando una con NFS

Vamos a ver cómo compartir una carpeta utilizando una distribución de linux de la familia Debian (Ubuntu, Debian, Linux Mint). Y vamos a ver cómo hacerla mediante línea de comandos para que sea universal para todas las distribuciones (en las distros “no Debian” no cambiaría mucho la cosa, exceptuando la parte de instalar los paquetes el resto iría más o menos igual, creo)

El primer paso es instalar los paquetes nfs-kernel-server,nfs-common y rpcbind en el equipo que servirá la carpeta. Para ello usamos el siguiente comando:

sudo apt-get install nfs-kernel-server nfs-common rpcbind

Tras esto reiniciamos el equipo.En los equipos clientes, que se van a conectar con la carpeta, tenemos que instalar sólo los dos últimos paquetes, no es necesario el del servidor:

sudo apt-get install nfs-common rpcbind

Lo siguiente es crear la carpeta a compartir, en este caso se llamará compartida, y configurar los permisos para no tener problemas al acceder a ella. En este caso daremos a los usuarios permisos totales sobre la carpeta y no habrá grupo propietario, para que puedan hacer lo que les plazca.

sudo mkdir /compartida
sudo chown nobody:nogroup /compartida
sudo chmod -R 777 /compartida

Ahora tenemos que decirle al sistema qué carpetas vamos a compartir editando el archivo /etc/exports. La sintaxis es rutaCarpeta cliente_A(opciones) cliente_B(opciones). Tenemos múltiples opciones a la hora de definir a los clientes: una dirección ip o un rango de ellas, el nombre DNS del equipo o caracteres comodín (para dar acceso a cualquier equipo basta poner el comodín *).

En cuanto a las opciones son las siguientes:

  • ro(read-only): La carpeta compartida será de sólo lectura. Si no se define, es la opción por defecto.
  • rw (read-write): El usuario tiene permisos para escribir en la carpeta y hacer cambios en ella.
  • wdelay: El servidor NFS no escribe en el disco si espera otra solicitud inminentemente. Esto reduce los accesos a disco mejorando el rendimiento. Sólo funciona cuando usamos la opción sync.
  • no_wdelay: Desactiva wdelay.
  • sync: No permite responder peticiones antes de escribir los cambios pendientes. Se trata de la opción predeterminada.
  • async: Deshabilita sync. Esto mejora el rendimiento pero provoca que exista el riesgo de corrupción en los archivos si se produjese un corte de luz o una caída de la red.
  • subtree_check: Si el directorio compartido es un subdirectorio de un sistema de archivos mayor NFS comprobará los directorios por encima de éste, verificando sus permisos. Se trata de la opción predeterminada.
  • no_subtree_check: Deshabilita la característica anterior. Así se consigue agilizar el envío de la lista de archivos, pero reduciendo la seguridad del sistema.
  • root_squash: Evita que los usuarios con privilegios mantengan los permisos administrativos sobre la carpeta compartida, cuando se conectan remotamente.Es la opción activada por defecto
  • no_root_squash: Deshabilita root_squash.

Así que en nuestro archivo /etc/exports toca añadir la siguiente línea, con la que daremos permisos de lectura/escritura, activaremos la opción de sync y la de no comprobar todo el árbol superior a todos los clientes que se conecten:

#recordamos: primero la ruta
#después el cliente, en este caso * para todos
#y finalmente las opciones
/compartida *(rw,sync,no_subtree_check)

Y tras eso, toca reiniciar el servidor nfs:

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

Lo siguiente será crear un punto de montaje para la carpeta compartida en los equipos cliente (vamos a suponer que la IP del servidor es 192.168.1.2):

sudo mkdir -p /mnt/nfs/compartida
#aunque ya dimos permisos a la carpeta
#también se los damos al punto
#de montaje
sudo chmod -R 777 /mnt/nfs
#y montamos la carpeta
sudo mount 192.168.1.2:/compartida /mnt/nfs/compartida

Y tras esto ya deberías poder crear y leer archivos en la carpeta compartida desde los clientes conectados en la red. Más adelante veremos algunas cosas sobre carpetas compartidas.

Anuncios

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