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.
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.
Para compartir este recurso en red, debemos ir al archivo /etc/exports y allí publicar la ruta, indicando los permisos correspondientes.
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.
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.
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.
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:
Si reiniciamos ahora el cliente, comprobamos como ahora nos aparece el recurso compartido en el escritorio:
En posteriores artículos, veremos como integrar clientes y servidores Windows con este protocolo NFS.








Hola,
En que me beneficia usar nfs vs usar samba?
Saludos.
En principio NFS ofrece una tasa de transferencia mayor, si bien parece que con el nuevo Samba4, las tornas podrían cambiar.
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.
No entiendo bien la cuestión. Si te refieres a poder editar el archivo fstab, tienes que ser root o hacer sudo.
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