viernes, 24 de febrero de 2012

Conociendo NFS (Network File System)

  

  Hoy hablaré sobre NFS (Network File System) o sistema de ficheros en red (en su versión 3) que nos permite compartir todo o parte del sistema de ficheros en red a otros equipos UNIX.
  Comentaré como instalarlo en ubuntu 10.04 que es la version LTS, aunque no deberia ser muy distinto en las nuevas versiones.

  En este post trataré las dos partes de las que se compone NFS, el cliente y el servidor.

[+]  Empezando con el servidor, vamos a instalarlo en ubuntu:
sudo apt-get install nfs-kernel-server nfs-common  portmap
Una vez instalado ubuntu iniciara los servicios por si mismo.

  Donde escogeremos que directorios queremos compartir y a quien es el fichero /etc/exports.
sudo vim /etc/exports
 <sistema de ficheros a compartir>  <ordenador/es destino><(opciones de exportación)>
 Ejemplo:
 /home/aetsu/compartir   192.168.0.111(rw)
En este ejemplo exportamos el directorio  /home/aetsu/compartir  a la dirección 192.168.0.111 en modo lectura y escritura.

  Cuando escogemos con que dirección/es se comparte el sistema de ficheros, tenemos varias alternativas, como son especificar el nombre del pc, el dominio o un ip junto con su máscara:
 Ejemplo:
 /home/aetsu/casa          pc-casa(rw) 
 /home/aetsu/dominio   *.dominio.com(rw) 
 /home/aetsu/rango       192.168.0.0/255.255.255.0(rw) 

  En cuanto a las opciones, conozcamos algunas típicas:
ro -> solo lectura.
rw -> lectura y escritura.
root_squash -> cambia el UID y GID al usuario root.
no_root_squash -> el root remoto es considerado como el local (conserva el UID y GID del usuario root).
all_squash -> cambia todos los usuarios al usuario anónimo.
anonuid/anongid: uid y gid para el usuario anónimo.

  Hay que tener en cuenta que en NFS el acceso a los sistemas exportados se realiza mediante UID y GID de los usuarios, con lo que a los ficheros se aplicarán las restricciones que se le aplicarían originalmente al poseedor de esos UID/GID.
   Teniendo esto en cuenta, es necesario saber que el usuario root tiene siempre UID/GID con valores 0/0, con lo que podría montar ficheros con permisos de root exportados ya que coincidirían los valores antes comentados. Para evitar esto existe la opción root_squash.

Cuando ya tengamos configurado nuestros directorios a exportar, no es necesario reiniciar el servicio para que sean exportados, basta con:
exportfs -r

  [+] Ahora trataremos con el cliente:
  Primero veremos los directorios que exporta el servidor, para ello:
showmount -e host
Una vez conozcamos los directorios exportados, podemos proceder a montarlos manualmente, para ello utilizaremos el comando mount:
 mount -t nfs host:<ruta exportada> <ruta de montaje>
 Ejemplo:
mount -t nfs 192.168.0.111:/home/aetsu/compartir /home/morsa/compartir

Si queremos que los directorios exportados se monten automáticamente, hay que añadirlos al fichero /etc/fstab.

Ejemplo(aparecería al final del fstab):
192.168.0.111:/home/aetsu/compartir   /home/morsa/compartir  nfs  soft,timeo=100       0 0

Antes de concluir, como fuente y a modo de ampliar la información podéis mirar en estos apuntes que son en los que me apoyé para el post.

Un saludo,

Aetsu

No hay comentarios:

Publicar un comentario en la entrada