Los servicios RPC con NFS
CAPÍTULO 4. EXPORTACIÓN DE RECURSOS COMPARTIDOS NFS
4.6. CONFIGURACIÓN DEL SERVIDOR NFS
Esta sección describe la sintaxis y las opciones de dos formas de configurar las exportaciones en un servidor NFS:
Edición manual del archivo de configuración /etc/exports Utilizando la utilidad exportfs en la línea de comandos
4.6.1. El archivo de configuración /etc/exports
El archivo /etc/exports controla qué sistemas de archivos se exportan a los hosts remotos y especifica las opciones. Sigue las siguientes reglas de sintaxis:
Las líneas en blanco se ignoran.
Para añadir un comentario, inicie una línea con la marca de almohadilla (#). Puede envolver las líneas largas con una barra invertida (\).
Cada sistema de archivos exportado debe estar en su propia línea individual.
Cualquier lista de hosts autorizados colocada después de un sistema de archivos exportado debe estar separada por caracteres de espacio.
Las opciones para cada uno de los hosts deben colocarse entre paréntesis directamente después del identificador del host, sin espacios de separación entre el host y el primer paréntesis.
Entrada de exportación
Cada entrada de un sistema de archivos exportado tiene la siguiente estructura: export host(options)
También es posible especificar varios hosts, junto con opciones específicas para cada uno de ellos. Para ello, escríbalos en la misma línea como una lista delimitada por espacios, con cada nombre de host seguido de sus respectivas opciones (entre paréntesis), como en:
export host1(options1) host2(options2) host3(options3) En esta estructura:
export
El directorio que se exporta
host
El host o la red a la que se comparte la exportación
options
Las opciones que se utilizarán para el anfitrión Ejemplo 4.1. Un simple archivo /etc/exports
En su forma más simple, el archivo /etc/exports sólo especifica el directorio exportado y los hosts autorizados a acceder a él:
/exportado/directorio bob.ejemplo.com
Aquí, bob.example.com puede montar /exported/directory/ desde el servidor NFS. Como no se especifican opciones en este ejemplo, NFS utiliza las opciones por defecto.
IMPORTANTE
El formato del archivo /etc/exports es muy preciso, sobre todo en lo que respecta al uso del carácter de espacio. Recuerde que siempre debe separar los sistemas de archivos exportados de los hosts y los hosts entre sí con un carácter de espacio. Sin embargo, no debe haber ningún otro carácter de espacio en el archivo, excepto en las líneas de comentario.
Por ejemplo, las dos líneas siguientes no significan lo mismo: /home bob.example.com(rw)
/home bob.example.com (rw)
La primera línea permite que sólo los usuarios de bob.example.com tengan acceso de lectura y escritura al directorio /home. La segunda línea permite a los usuarios de bob.example.com montar el directorio como sólo lectura (el valor predeterminado), mientras que el resto del mundo puede montarlo como lectura/escritura.
Opciones por defecto
Las opciones por defecto para una entrada de exportación son: ro
El sistema de archivos exportado es de sólo lectura. Los hosts remotos no pueden cambiar los datos compartidos en el sistema de archivos. Para permitir a los hosts realizar cambios en el sistema de archivos (es decir, leer y escribir), especifique la opción rw.
sync
El servidor NFS no responderá a las solicitudes antes de que los cambios realizados por las solicitudes anteriores se escriban en el disco. Para habilitar las escrituras asíncronas en su lugar, especifique la opción async.
wdelay
El servidor NFS retrasará la escritura en el disco si sospecha que otra petición de escritura es inminente. Esto puede mejorar el rendimiento, ya que reduce el número de veces que se debe acceder al disco mediante comandos de escritura separados, reduciendo así la sobrecarga de
escritura. Para desactivar esto, especifique la opción no_wdelay, que sólo está disponible si también se especifica la opción de sincronización por defecto.
root_squash
Esto evita que los usuarios root conectados remotamente (en lugar de localmente) tengan privilegios de root; en su lugar, el servidor NFS les asigna el ID de usuario nobody. Esto efectivamente "aplasta" el poder del usuario root remoto al usuario local más bajo, evitando posibles escrituras no
autorizadas en el servidor remoto. Para desactivar el aplastamiento de la raíz, especifique la opción no_root_squash.
Para aplastar a todos los usuarios remotos (incluido el root), utilice la opción all_squash. Para especificar los identificadores de usuario y grupo que el servidor NFS debe asignar a los usuarios remotos de un determinado host, utilice las opciones anonuid y anongid, respectivamente, como en:
export host(anonuid=uid,anongid=gid)
Aquí, uid y gid son el número de identificación del usuario y el número de identificación del grupo, respectivamente. Las opciones anonuid y anongid permiten crear una cuenta especial de usuario y de grupo para que los usuarios remotos de NFS la compartan.
Por defecto, las listas de control de acceso (ACL) son soportadas por NFS bajo Red Hat Enterprise Linux. Para desactivar esta función, especifique la opción no_acl al exportar el sistema de archivos. Opciones por defecto y anuladas
Cada valor por defecto para cada sistema de archivos exportado debe ser anulado explícitamente. Por ejemplo, si no se especifica la opción rw, el sistema de archivos exportado se comparte como de sólo lectura. La siguiente es una línea de ejemplo de /etc/exports que anula dos opciones por defecto:
/otro/exportado/directorio 192.168.0.3(rw,async)
En este ejemplo, 192.168.0.3 puede montar /another/exported/directory/ lectura y escritura, y todas las escrituras en disco son asíncronas.
4.6.2. La utilidad exportfs
La utilidad exportfs permite al usuario root exportar o desexportar directorios selectivamente sin reiniciar el servicio NFS. Cuando se le dan las opciones adecuadas, la utilidad exportfs escribe los sistemas de archivos exportados en /var/lib/nfs/xtab. Dado que el servicio nfs-mountd hace referencia al archivo xtab cuando decide los privilegios de acceso a un sistema de archivos, los cambios en la lista de sistemas de archivos exportados tienen efecto inmediato.
Opciones comunes de exportfs
A continuación se presenta una lista de las opciones más utilizadas disponibles para exportfs: -r
Hace que se exporten todos los directorios listados en /etc/exports construyendo una nueva lista de exportación en /etc/lib/nfs/xtab. Esta opción actualiza efectivamente la lista de exportación con cualquier cambio realizado en /etc/exports.
-a
Hace que se exporten o no todos los directorios, dependiendo de qué otras opciones se pasen a exportfs. Si no se especifican otras opciones, exportfs exporta todos los sistemas de archivos especificados en /etc/exports.
-o file-systems
Especifica los directorios a exportar que no aparecen en /etc/exports. Sustituya file-systems con los sistemas de archivos adicionales que se van a exportar. Estos sistemas de archivos deben tener el mismo formato que el especificado en /etc/exports. Esta opción suele utilizarse para probar un sistema de archivos exportado antes de añadirlo permanentemente a la lista de sistemas de archivos exportados.
-i
Ignora /etc/exports; sólo se utilizan las opciones dadas desde la línea de comandos para definir los sistemas de archivos exportados.
-u
Desexporta todos los directorios compartidos. El comando exportfs -ua suspende la compartición de archivos NFS mientras mantiene todos los servicios NFS activos. Para volver a habilitar el uso compartido de NFS, utilice exportfs -r.
-v
Operación verbosas, donde los sistemas de archivos que se exportan o no se exportan se muestran con mayor detalle cuando se ejecuta el comando exportfs.
Si no se pasan opciones a la utilidad exportfs, ésta muestra una lista de los sistemas de archivos exportados actualmente.
Recursos adicionales
Para obtener información sobre los diferentes métodos para especificar los nombres de host, consulte Sección 4.5, “Formatos de nombres de host NFS”.
Para obtener una lista completa de las opciones de exportación, consulte la página de manual exports(5).
Para más información sobre la utilidad exportfs, consulte la página de manual exportfs(8).