En esta breve guía les hablaré sobre cómo montar una unidad compartida que se encuentre en una instalación de Ubuntu o Debian, que será el servidor con la unidad NFS (Network File System), en una unidad de red accesible desde Windows 10 que jugará el rol de cliente. Si necesitamos solamente instalar NFS podemos usar esta guía.
Instalación y configuración en Ubuntu o Debian como servidor
En el caso de Debian, quitar sudo en cada comando (incluso se puede ejecutar igual).
Instalamos el paquete "nfs-kernel-server":
sudo apt install nfs-kernel-server
Opciones de la unidad
Luego editamos el archivo /etc/exports
con nano o con el editor de nuestra preferencia.
sudo nano /etc/exports
El archivo contiene comentarios como los siguientes:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
Agregamos una línea al final con lo siguiente:
/home/user/folder 192.168.0.10(rw,sync,all_squash,anonuid=1000,anongid=1000)
En el ejemplo anterior:
/home/user/folder
es la carpeta que será compartida por la red.
192.168.0.10
es la IP del cliente o, clientes que van a acceder al recurso de red. Se muestra únicamente una IP estática, pero podemos usar 192.168.0.1/24
que abarca desde la IP 192.168.0.1 hasta 192.168.0.254.
Las opciones de montaje son las siguientes.
rw
es para permitir lectura y escritura.sync
es opcional en caso de que queramos un poco más de integridad de archivos y evitar pérdida de datos, sacrificando un poco de rendimiento.all_squash
es una opción que degrada los permisos de los archivos creados desde el cliente al usuario nobody. Por ejemplo, si en Windows 10 estoy como Administrador y creó un nuevo archivo, este pertenece al usuario nobody.anonuid
es el ID del usuario nobody, o en un caso específico el de cualquier usuario.anongid
es el ID del grupo del usuario nobody.
En este caso establecí anonuid
y anongid
a 1000
, que viene siendo el usuario que es dueño de la carpeta /home/user/folder
para conservar permisos de ejecución y escritura.
Con los cambios realizados guardamos el archivo CTRL + O, luego Enter, y entonces cerramos con CTRL + X, esto solo si usamos el editor nano desde la terminal.
Reiniciamos el servidor NFS:
sudo service nfs-kernel-server restart
Con esto quedará lista la configuración en el servidor, cualquier error que aparezca al reiniciar hay que revisar bien la configuración y obviamente la descripción del error.
Instalación y configuración del cliente en Windows 10
Windows viene con un cliente por defecto, pero necesita ser instalado, el único detalle es que no recuerdo si está disponible en la versión Windows 10 Home.
La forma más sencilla de instalarlo es usar el buscador y escribir Panel de control, ya que Windows 10 tiene varios paneles modernos que solo ocultan las opciones más antiguas. Abrimos Programas › Programas y características y en el panel izquierdo abrimos Activar o desactivar las características de Windows.
Marcamos la casilla Servicios para NFS con sus dos descendientes Cliente para NFS y Herramientas administrativas. Hacemos clic en Aceptar y después de un tiempo el cliente quedará instalado.
Montar la unidad de red
Para montar la unidad abrimos el cmd (no usar PowerShell). Usamos el comando:
mount -o anon \\192.168.0.20\home\user\folder k:
La IP 192.168.0.20
es el servidor, seguida del recurso compartido y luego la letra de la unidad que se usará. Es importante usar la ruta completa real del recurso como si estuviéramos personalmente en el ordenador con la carpeta /home/user/folder, de lo contrario no funcionara. He intentado tratar de ocultar parte de la ruta al montar la unidad, pero es un proceso complicado y no vale el esfuerzo extra.
El mensaje: El comando se completó correctamente. indica que todo funcionó correctamente.
Permisos de escritura para el usuario anónimo
Normalmente y de manera predeterminada Windows no permite la escritura en este tipo de unidades con el usuario anónimo. Para habilitar la escritura tenemos que abrir el registro de Windows "Regedit", y nos dirigimos hacia la siguiente ruta: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
.
Ahí crearemos un valor de DWORD (32-bits) con el nombre AnonymousUid con el valor 0 con base Decimal. Luego creamos otro valor de DWORD (32-bits) con el nombre AnonymousGid con el valor 0 con base Decimal.
Tenemos que reiniciar el equipo o el servicio Cliente para NFS, lo podemos encontrar en el administrador de tareas en la pestaña Servicios.
Si seguimos todos los pasos anteriores y ya tenemos la unidad montada, abrimos el CMD y ejecutamos el comando mount
, aparecerá el montaje y en propiedades saldrá UID=0
y GID=0
. Si aparece cualquier otro número, verificar todo el procedimiento anterior.