El servidor necesita, además de los dos servicios mountd y nfsd (ambos se aúnan en el servicio común demominado nfs), uno más denominado portmap (del inglés portmapper), sobre el cual ambos basan su funcionamiento. Por tanto, la configuración de un servidor NFS necesita únicamente tener disponibles dichos servicios e iniciarlos en el nivel de ejecución 3 (o 5, o ambos) de la máquina.
Una vez activos los servicios NFS, el servidor tiene que
indicar explícitamente qué directorios desea que se exporten, a
qué máquinas y con qué opciones. Para ello existe un fichero de
configuración denominado /etc/exports
.
A continuación se muestra uno de ejemplo, sobre el que se
explican las características más relevantes:
# Directory Clients and (options) /tmp pc02??.dsic.upv.es(rw) *.disca.upv.es() /home/ftp/pub 158.42.54.1(rw,root_squash) / mio.dsic.upv.es(rw,no_root_squash) /pub (rw,all_squash,anonuid=501,anongid=601) /pub/nopublic (noaccess)
Cada línea especifica un directorio que se va a exportar, junto con una lista de autorizaciones, es decir, qué ordenadores podrán montar dicho directorio y con qué opciones (desde el punto de vista del servidor). Cada elemento de la lista de ordenadores puede especificar un solo ordenador (mediante nombre simbólico o dirección IP) o un grupo de ordenadores (mediante el uso de caracteres comodín como `*' ó `?'). Cuando el ordendor/rango no se especifica (por ejemplo, en las últimas dos líneas), esto significa que el directorio correspondiente se exporta a todos los ordenadores del mundo (conectados a Internet). Por su parte, de entre las posibles opciones de montaje que, entre paréntesis, pueden especificarse para cada ordenador/grupo, las más importantes se resumen a continuación:
()
Esta opción establece las opciones que NFS asume por defecto.
ro
El directorio se exporta como un sistema de archivos de sólo lectura (opción por defecto).
rw
El directorio se exporta como un sistema de archivos de lectura/escritura.
root_squash
Los accesos desde el cliente con UID=0 (root) se convierten en el servidor en accesos con UID de un usuario anónimo (opción por defecto)
no_root_squash
Se permite el acceso desde un UID = 0 sin conversión. Es decir, los accesos de root en el cliente se convierten en accesos de root en el servidor.
all_squash
Todos los accesos desde el cliente (con cualquier UID) se transforman en accesos de usuario anónimo.
anonuid, anongid
Cuando se activa la opción root_squash
ó all_squash
, los accesos anónimos
utilizan normalmente el UID y GID primario del usuario
denominado nobody
, si éste
existe en el servidor (opción por defecto). Si se desean
utilizar otras credenciales, los parámetros anonuid
y anongid
establecen, respectivamente, qué uid
y gid
tendrá la cuenta
anónima que el servidor utilizará para acceder contenido
del directorio.
noaccess
Impide el acceso al directorio especificado. Esta opción es útil para impedir que se acceda a un subdirectorio de un directorio exportado.
Es importante destacar que cada vez que se modifica este fichero, para que se activen los cambios, el servidor NFS debe ser actualizado ejecutando el mandato exportfs -ra.
Una lista completa de las opciones de montaje
y su significado pueden encontrarse en la página de manual exports (5)
de Linux. La mayoría de
estas opciones establecen la identidad que adquiere el proceso
cliente cuando su petición de acceso llega al servidor. En
principio, cada petición lleva asociada el UID y GID del proceso
cliente, es decir, se comporta como sí mismo. No obstante, si
está activa la opción all_squash
(o bien el UID es cero y root_squash
está activado), entonces el UID/GID se convierten en los del
usuario anónimo. De todas formas, hay que tener en cuenta que
los permisos sobre cada acceso del cliente se evalúan mediante
los UID/GID que finalmente son válidos en el servidor (es decir,
los originales o los anónimos, según el caso).
Es muy importante resaltar que no existe ningún proceso de acreditación de usuarios en NFS, por lo que el administrador debe decidir con cautela a qué ordenadores exporta un determinado directorio. Un directorio sin restricciones es exportado, en principio, a cualquier otro ordenador conectado con el servidor a través de la red (incluida Internet). Si en un ordenador cliente NFS existe un usuario con un UID igual a "X", este usuario accederá al servidor NFS con los permisos del usuario con el UID igual a "X" del servidor, aunque se trate de usuarios distintos.