Lo prometido es deuda. En este post os dije que ibamos a hacer algo chulo con el servidor NFS en Windows. Y a eso vamos, vamos a usar una funcionalidad de Windows 10 que pasa desapercibida, el cliente NFS para Windows. En mi caso voy a optar solo por la instalación y configuración mediante consola ya que hacerlo gráficamente no es tan divertido.

Instalación

Desde una consola de PowerShell elevada hay que ejecutar el siguiente comando.

Enable-WindowsOptionalFeature -Online -FeatureName ClientForNFS-Infrastructure

Montaje de solo lectura

Hay que tener en cuenta que esto no funciona desde la consola de PowerShell.

mount -o anon \\<IP_SERVIDOR_NFS>\datos Z:
Z: is now successfully connected to \\<IP_SERVIDOR_NFS>\datos

Montaje de lectura/escritura

Esta parte es bastante engorrosa en Windows. A mí personalmente no me gusta nada y por eso prefiero usar otras alternativas que os mostraré en otra publicación. Pero bueno, para ciertos entornos tiene su utilidad.

Lo primero es usar el comando mount para obtener el UID y GID con el que está montado el recurso NFS.

mount

Local    Remote                                 Properties
-------------------------------------------------------------------------------
Z:       \\<IP_SERVIDOR_NFS>\datos              UID=-2, GID=-2
                                                rsize=262144, wsize=262144
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=ANSI
                                                casesensitive=no
                                                sec=sys

Hay que crear dos entradas en el registro de Windows para modificar los UID y GID por defecto. Lo ideal es elegir el UID y GDI de un usuario que ya exista en el servidor NFS y de esa manera creamos los ficheros y carpeta con identificadores ya existentes y no veremos valores númericos al visualizar los directorios desde nuestro Linux.

La primera clave se crea con el siguiente comando.

New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousUID -Value 1000 -PropertyType "DWord"


AnonymousUID : 1000
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\De
               fault
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion
PSChildName  : Default
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

La segunda clave se crea con el siguiente comando.

New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousGID -Value 105  -PropertyType "DWord"


AnonymousGID : 1000
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\De
               fault
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion
PSChildName  : Default
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

PS C:\Windows\system32>

Es necesario reiniciar el equipo para que lea del registro los cambios.

Vamos a ver si esto ha funcionado. Vamos a intentar crear una carpeta llamada folder2.

C:\Users\IEUser>z:

Z:\>dir
 Volume in drive Z has no label.
 Volume Serial Number is 1835-1B2D

 Directory of Z:\

10/22/2021  01:40 PM    <DIR>          .
10/22/2021  01:40 PM    <DIR>          ..
10/22/2021  01:23 PM    <DIR>          folder
               0 File(s)             62 bytes
               3 Dir(s)  37,989,482,496 bytes free

Z:\>mkdir folder2

Z:\>dir
 Volume in drive Z has no label.
 Volume Serial Number is 1835-1B2D

 Directory of Z:\

10/22/2021  01:40 PM    <DIR>          .
10/22/2021  01:40 PM    <DIR>          ..
10/22/2021  01:23 PM    <DIR>          folder
10/22/2021  01:40 PM    <DIR>          folder2
               0 File(s)             98 bytes
               4 Dir(s)  37,989,482,496 bytes free

Y ahora vamos a nuestro servidor NFS a ver si realmente existe y con qué propietario y permisos se ha creado.

[root@centos7 datos]# ll
total 0
drwxr-xr-x. 2 root    root    22 oct 22 21:23 folder
drwxr-xr-x. 2 ignacio ignacio  6 oct 22 21:43 folder2
[root@centos7 datos]# 

Pues eso es todo, amigos.