NFS Network File System, o NFS, es un protocolo de nivel de aplicación. Es utilizado para sistemas de archivos distribuido en un entorno de red de ordenadores de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales.
El sistema NFS está dividido al menos en dos partes principales: un servidor y uno o más clientes. Los clientes acceden de forma remota a los datos que se encuentran almacenados en el servidor.
Los usuarios no necesitan disponer de un directorio “home” en cada una de las máquinas de la organización. Los directorios “home” pueden crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier máquina a través de la infraestructura de red.
Para instalarlo:
sudo apt install nfs-kernel-server nfs-common
Una vez instalado debemos de habilitarlo:
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
Lo primero que necesitaremos será crear una carpeta en el equipo conde vamos a instalar el servidoe nfs, por ejemplo la llamaré compartido:
sudo mkdir /compartido
Ahora voy ha cambiar el propietareo de esta carpeta que acabo de crear:
sudo chown nobody:nogroup /compartido
Y le doy todos lo permisos, para que tanto root como el usuario que lo crea como otros tengan permiso leer y escribir en esta carpeta.
sudo chmod -R 777 /compartido
debemos editar el archivo /etc/exports e incluimos estas lineas:
/home *(rw,sync,no_root_squash,no_subtree_check)
/compartido *(rw,sync,no_subtree_check)
Para iniciar servidor NFS:
sudo systemctl start nfs-kernel-server
Bien, pero para ver su funcionamiento debemos de tener una máquina que sea cliente y que tenga acceso a esta carpeta compartida.
Creamos una carpeta compartida en el cliente, la llamamos igual:
cd /compartido
voy a crear un documento para compartir en esta carpeta y comprobar que funciona:
touch Documento\ compartido\ en\ el\ servidor.txt
Antes de empezar a compartir, tengo que crear el punto de montaje:
sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/compartido
sudo chmod -R 777 /mnt/nfs
A continuación procedo a hacer el montaje de carpetas:
sudo mount 172.16.16.1:/home /mnt/nfs/home
sudo mount 172.16.16.1:/compartido /mnt/nfs/compartido
para comprobar, ejecuto mount si no me devuelve argumentos veremos la lista de volúmenes montados
mount
Para crear archivos en las carpetas compartidas:
touch /mnt/nfs/home/usuario/ejemplo1
touch /mnt/nfs/compartido/ejemplo2
compruebo:
ls /mnt/nfs/home/usuario
ls /mnt/nfs/compartido
Ahora editamos el archivo fstab, incluimos las siguientes líneas:
172.16.16.1:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0
172.16.16.1:/compartido /mnt/nfs/compartido nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0
Reinicio para que se guarden los cambios.