Carpetas compartidas NFS
Introducción
En las redes locales, como las que se encuentran en las oficinas y los hogares, es deseable que los ordenadores no sólo puedan acceder a Internet, sino que también puedan comunicarse entre sí.
En ocasiones un ordenador puede actuar como un servidor y un cliente. Por ejemplo, cuando se desea acceder a los archivos de otro ordenador de la red (Supongamos, que se necesita acceder a un archivo almacenado en un ordenador de sobremesa desde un dispositivo portátil) sin la molestia de tener que copiarlo en una unidad USB o similar.

Entre máquinas Linux, NFS (Network File System) se utiliza a menudo para este tipo de funciones, el protocolo NFS es la forma estándar de compartir sistemas de archivos en redes equipadas únicamente con máquinas Unix/Linux con las que un ordenador puede compartir uno o varios de sus directorios con ordenadores específicos de la red. De este modo, NFS puede leer y escribir archivos en estos directorios.
Incluso se puede usar NFS para compartir el árbol de directorios de todo un sistema operativo con clientes que lo usarán para arrancar (Bootear) desde el servidor. Estas computadoras, llamadas thin clients, se utilizan principalmente en redes grandes para evitar el mantenimiento de cada sistema operativo de cada máquina.
Compartir una carpeta con un grupo de LDAP
Esta práctica esta pensada para realizarse con la práctica de la infraestructura LDAP, la puedes ver aquí ya que para poder realizar debemos revisar lo siguiente:
✅ Servidor LDAP configurado y funcionando.
✅ Grupo LDAP creado (por ejemplo, grupo_nfs
).
✅ Usuarios LDAP que formen parte de ese grupo.
✅ Un servidor NFS instalado y funcionando.
✅ Un cliente que pueda montar ese recurso.
Realmente, la única diferencia entre hacerlo vinculado a ldap o sin él es que en el paso 3, cuando hagas "sudo chown root:smx /srv/nfs/redes
" en vez de vincularlo a un grupo de ldap, ponlo como "sudo chown nobody:nogroup /mnt/redes
" en otra ruta y dale permisos chmod 755
para que pueda acceder cualquiera. Inlcuso vas a tener menos problemas por que no hace falta configurar grupos o usuarios de ldap, solo locales.
Si ya lo tienes todo claro, ¡prosigue con la guía!
Paso 1. Asegúrate de que LDAP gestiona los usuarios y grupos del sistema
Si tienes LDAP funcionando con NSS (Name Service Switch), los grupos de usuarios de LDAP pueden ser reconocidos por el sistema, en mi caso es "smx
" , desde el cliente ejecuta:
getent group smx
Si el grupo LDAP aparece en la salida, puedes usarlo en permisos de archivos, quédate con el gid
del grupo que aparecerá al lado.
También es muy importante que los usuarios LDAP tengan el mismo UID/GID en el cliente y servidor NFS. Si no, los permisos no se aplicarán correctamente. Puedes verificar con:
#En servidor
ldapsearch -x -b dc=ifp,dc=local -s sub "(uid=alex)"
#En cliente:
getent passwd alex
id alex
Ahora deberemos comprobar que el servidor tambien detecte estos grupos como locales, para ello prueba lo mismo que antes, si esto no funciona deberás hacer lo siguiente:
Paso 2. Instala el servidor NFS:
Revisa si nfs esta instalado:
dpkg -l | grep nfs-kernel-server
y, sino, instálalo con:
sudo apt install nfs-kernel-server -y
Paso 3. Crea la carpeta compartida en el servidor NFS
En nuestro caso la carpeta la llamaremos "redes", le daremos los permisos solo para el grupo "smx
":
sudo mkdir -p /srv/nfs/redes
sudo chown root:smx /srv/nfs/redes
sudo chmod 770 /srv/nfs/redes
El chmod con esta configuración permitirá que usuarios del grupo LDAP
grupo_nfs
puedan leer, escribir y ejecutar (entrar en) la carpeta pero bloqueará completamente el acceso a usuarios que no pertenezcan ni al grupo ni sean root.
Paso 4. Exporta la carpeta en /etc/exports
Abrimos el archivo:
sudo nano /etc/exports
Y agregaremos una entrada que definirá que directorios se van a compartir por NFS y con que opciones (recuerda cambiar la IP a la de tu red):
/srv/nfs/redes 20.0.0.0/24(rw,sync,no_root_squash)
Las opciones marcadas entre paréntesis hacen lo siguiente:
rw
Permite lectura y escritura a los clientes.
sync
Hace que los datos se escriban de inmediato en disco, no en caché (más seguro, menos rápido).
no_subtree_check
Desactiva la comprobación de subdirectorios, lo cual mejora el rendimiento y evita errores si el directorio compartido es parte de otro más grande.
Paso 5. Aplica los cambios en el servidor NFS
Es necesario como siempre, para aplicar los cambios, que reiniciemos los servicios:
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
Paso 6. Monta la carpeta en los clientes Vamos ahora a nuestro cliente, que son los equipos que usarán la carpeta NFS, ejecutaremos:
sudo apt install nfs-common
Crearemos el punto de montaje:
sudo mkdir -p /mnt/nfs/redes
Montamos la carpeta usando la IP del servidor:
Si queremos que sea temporal para esta sesión:
sudo mount 20.0.0.5:/srv/nfs/redes /mnt/nfs/redes
Y si queremos que sea permanente deberemos añadirla a fstab:
echo "20.0.0.5:/srv/nfs/redes /mnt/nfs/redes nfs defaults 0 0" | sudo tee -a /etc/fstab
Y ahora, para terminarlo del todo:
sudo mount -a
La magia de esto está en que solo los usuarios del grupo smx
podrán ahora escribir, gracias a los permisos 770
y la pertenencia al grupo, por lo tanto, si tus usuarios LDAP están en ese grupo, ya deberían poder ver la carpeta.
Comprobación del servicio NFS
Vamos ahora a ver, en cualquier caso, cómo verificar que todo esté correcto desde el servidor NFS y desde el cliente:
🖥️ EN EL SERVIDOR NFS
1. Verifica que la carpeta exista
La carpeta que estás compartiendo en /etc/exports
debería existir ya en el sistema de archivos:
ls -ld /srv/nfs/compartido
* Si no aparece nada o da error, vuelve a revisar los pasos
2. Asegúrate de que tenga permisos adecuados
Puedes revisar:
ls -ld /srv/nfs/compartido
3. Verifica la exportación NFS
Una vez hayas añadido la línea al /etc/exports
, ejecuta:
sudo exportfs -ra # Recarga las exportaciones
sudo exportfs -v # Muestra lo que está exportado y con qué opciones
💻 EN EL CLIENTE NFS
1. Verifica que puedes ver lo que exporta el servidor:
showmount -e 20.0.0.5
Esto te mostrará algo como:
Export list for 20.0.0.5:
/srv/nfs/redes 20.0.0.5/24
2. Verifica que está montada:
df -h | grep nfs
Vamos a hacer la prueba para revisar si al subir un archivo se comparte con otros usuarios:
Desde el servidor creamos un archivo:

Ahora vamos a comprobar desde un usuario no perteneciente al grupo smx el acceso a la carpeta:

Ahora vamos a probar desde el usuario "alex" de mi ldap autorizado en el cliente:

Espero que esta guia te haya ayudado.
Última actualización