NFS es un protocolo para comparti archivos a traves de la red.
Su configuración es relativamente sencilla y proporciona una integración tal que pensarás que estás trabajando en local.
Pues no es otra cosa que la máquina que va a actuar como servidor central.
En un entorno Debianita o derivados es tan sencillo como :
root@porta:/home/juantxu# apt-get install nfs-common nfs-kernel-server portmap
Lo primero es la seguridad. Edita tu fichero /etc/hosts.deny para decirle que no piensas dejar entrar a nadie.
root@porta:#vi /etc/hosts.deny
Y añadimos:
portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL
Y ahora que ya le hemos denegado el permiso a todo el mundo se lo vamos a permitir a los que queremos dejar acceder.
Editamos /etc/hosts.allow y le decimos que red o que ip puede acceder
root@porta:#vi /etc/hosts.allow
# para permitir toda mi red local... portmap: 192.168.1. lockd: 192.168.1. rquotad: 192.168.1. mountd: 192.168.1. statd: 192.168.1.
Vamos a revisar la configuración de portmap. Es importante hacerlo porque posiblemente en el archivo /etc/default/portmap tengas una linea parecida a la siguiente:
ARGS=127.0.0.1
En ese caso comentala o borrala. Porque si no, portmap sólo escuchará a la máquina local y no podrás conectar nunca.
root@porta:#vi /etc/default/portmap
Tiene que quedar algo parecido a esto:
#ARGS=127.0.0.1
Y por fin la lista de directorios que vamos a exportar en el fichero /etc/exports
root@porta:#vi /etc/exports
/mediateca 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash) /copsec 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash) /home/juantxu 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
Como puedes imaginar la estructura es: ruta del directorio + espacio + ip/red a la que vas a exportar + parametros
Los parametros son:
Todo listo por aquí
En el lado del cliente tambien necesitamos los servicios básicos de NFS por lo que tenemos que hacer tambien una pequeña instalación
Otra vez en un entorno Debianita o derivados es tan sencillo como :
root@porta:/home/juantxu# apt-get install nfs-common
Existen dos posibilidades básicas:
Esta segunda opción es la más cómoda. Aunque en algunos casos, como en portatiles que se conectan a traves de wifi hace que el proceso de arranque se alargue un poquito. Para lo cual existen algunos trucos.
Tan sencillo como hacer lo siguiente como usuario root:
root@porta:/home/juantxu# mount -t nfs ip_del_servidor:/path/del/servidor /path/local/donde/quieres/montar opciones
Esto se puede hacer incluyendo los volúmenes a montar en el fichero /etc/fstab
# device mountpoint fs-type options dump fsckorder ... 192.168.0.200:/home/juantxu /home/juantxu/nfs nfs rw,hard,intr 0 0
Fijate que sigue el mismo patron: ip del servidor:/ruta/a/montar /ruta/local/ sistema_de_archivos(nfs) opciones 0 0
Así es como lo tengo yo en mi máquina de sobremesa.Pero en el portatil esto hace que el arranque se retrase mucho ya que tiene que activar la red primero para poder montar los sistemas de archivos remotos. Esto lo he optimizado de la siguiente manera:
En realidad yo no quiero montar los directorios NFS hasta que no he accedido a la sesión por lo que he creado un script que me los monta bajo demanda al que llamo con el inicio de sesion. De ese modo se montan justo tras arrancar la sesión. Es cierto que si intentas abrir el directorio justo tras arrancar no tienes los archivos ahi. Pero… es una situación que se da una de cada 100 veces que arranca el portatil. Además tiene su gracia ir refrescando la carpeta hasta ver tus archivos. En contrapartida el portatil arranca mucho mas rápido y está listo para trabajar cuanto antes.
script:
#!/bin/bash sudo mount -t nfs 192.168.1.200:/copsec /home/juantxu/copsec sudo mount -t nfs 192.168.1.200:/home/juantxu /home/juantxu/ola
Ahora sólo hace falta llamar a este script al iniciar la sesión.
Como has visto hago un sudo para montar cada volumen porque es el usuario root el único que puede montar volumenes.
Por ello debemos editar el fichero visudo. Esto nos permitirá indicarle al sistema que un script puede ejecutarse como root sin necesidad de pedir la contraseña de root.
La forma de editarlo es así :
sudo visudo
y le añadimos la linea referente a nuestro script
TU_USUARIO ALL = NOPASSWD: /home/juantxu/scripts/montaOla.sh
Y ya está!
Ahora tan sólo hay que invocar el script al iniciar la sesión.
Editas el fichero .profile de tu directorio $HOME y lo invocas al final.
cd $HOME vi .profile
y añades:
# script para montar volumenes NFS sudo /home/juantxu/scripts/montaOla.sh
Te vas al menú Sistema =⇒ Preferencias =⇒ Sesiones
Te aparecerá una interfaz parecida a esta
Picas sobre añadir y añades el lanzador para el script que acabamos de crear
Y ya está. Fijate que te aparece en el listado de Programas de inicio y que te aparece seleccionado.
Ya puedes reiniciar el sistema para comprobar que efectivamente se monta