9.2. Archivos de configuración del servidor NFS

Es sencillo configurar un sistema para compartir archivos y directorios usando NFS. Cada Sistema de archivos que se exporta a usuarios remotos vía NFS, así como los derechos de acceso relativos a ellos, es localizado en el archivo /etc/exports. Este archivo es leído por el comando exportfs para dar a rpc.mountd y a rpc.nfsd la información necesaria para permitir el montaje remoto de un sistema de archivos por una máquina autorizada.

El comando exportfs permite a root exportar o no directorios concretos sin reiniciar los servicios NFS. Cuando se le pasan las opciones apropiadas a exportfs, el sistema de archivos a exportar es incluido en /var/lib/nfs/xtab. Como rpc.mountd se refiere al archivo xtab para decidir privilegios de acceso a un sistema de archivos, los cambios en la lista de sistemas de archivos exportados toman efecto inmediatamente.

Hay varias opciones disponibles cuando usamos exportfs:

Si no se pasan opciones al comando exportfs, mostrará una lista de los sistemas de archivos actualmente exportados.

Los cambios efectuados a /etc/exports pueden ser leídos al recargar el servicio NFS con el comando service nfs reload. Esto deja a los demonios NFS ejecutándose mientras reexporta el archivo /etc/exports.

9.2.1. /etc/exports

El archivo /etc/exports controla cuáles sistemas de archivos son exportados a las máquinas remotas y especifica opciones particulares que controlen todo. Las líneas en blanco son ignoradas, se pueden comentar líneas con el símbolo # y las líneas largas pueden ser divididas con una barra invertida (\). Cada sistema de archivos exportado debe tener su propia línea. La lista de máquinas autorizadas colocada después de un sistema de archivos exportado, debe estar separada por un espacio. Las opciones para cada uno de las máquinas deben ser colocadas entre paréntesis directamente detrás del identificador de la máquina, sin ningún espacio de separación entre la máquina y el primer paréntesis.

De esta sencilla manera, /etc/exports sólo necesita saber el directorio a exportar y las máquinas que pueden usarlo:

/some/directory bob.example.com
/another/exported/directory 192.168.0.3

Después de reexportar /etc/exports con el comando /sbin/service nfs reload, la máquina bob.example.com será capaz de montar /some/directory y 192.168.0.3 podrá montar /another/exported/directory. Como no hay opciones especificadas en este ejemplo, varias preferencias por defecto toman efecto:

Para saltarse estas opciones predeterminadas, debe especificar una opción que tome su lugar. Por ejemplo, si no especifica la opción rw, entonces se exportará en sólo lectura. Cada opción predeterminada para cada sistema de archivos exportado, debe ser explícitamente ignorada. Adicionalmente, hay otra opciones que están disponibles que no tienen especificado un valor predeterminado. Estas incluyen desactivar el navegar por subdirectorios, permitir el acceso a puertos inseguros, y permitir bloquear archivos inseguros (necesario para algunas implementaciones antiguas de clientes NFS). Vea la página man de exports para estas opciones menos usadas.

Cuando especifique los nombres de máquinas, use los métodos siguientes:

AvisoAviso
 

La manera en que el archivo /etc/exports está organizado es muy importante, particularmente lo que concierne a los espacios en blanco. Recuerde separar siempre los sistemas de archivos exportados de una máquina a la otra, con un espacio. Sin embargo, no debería haber otros espacios en el archivo a menos que se usen en líneas comentadas.

Por ejemplo, las siguientes dos líneas significan cosas distintas:

/home bob.example.com(rw)
/home bob.example.com (rw)

La primera línea permite sólo a los usuarios de bob.example.com acceder en modo de lectura-escritura al directorio /home. La segunda línea permite a los usuarios de bob.example.com montar el directorio de solo lectura (el predeterminado), pero el resto del mundo puede instalarlo como lectura-escritura.