No se puede escribir en el recurso compartido NFS de Linux desde el cliente OSX

No se puede escribir en el recurso compartido NFS de Linux desde el cliente OSX

Estoy intentando conectarme a una unidad NFS compartida desde mi caja Debian Squeeze desde mi computadora portátil OSX 10.6 y, por más que lo intento, no logro que me permita escribir en el disco desde la Mac. Tengo lo siguiente en /etc/exports:

/mnt/usbdrive 192.168.1.0/24(rw,insecure,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)

hacer que todas las solicitudes provengan de UID/GID 1000/1000, mi usuario, que posee todo el disco. Sin embargo, cuando monto la unidad en Mac, todo también pertenece a 1000/1000, por lo que nunca puedo escribir en el disco:

~> ls -la /Volumes/USBDrive/
drwxr-xr-x  6 1000  1000    4096  5 Sep 19:31 .
drwxrwxrwt@ 4 root  admin    170  6 Sep 22:41 ..
drwx------  2 1000  1000   16384 28 Aug 21:24 lost+found
drwxr-xr-x  2 1000  1000    4096 29 Aug 15:35 music

He visto a algunas otras personas tener este problema, pero la única solución que he visto es modificar todo el disco 777, lo cual prefiero evitar. Lamentablemente no puedo usar nfs-user-server en mi sistema, por lo que no puedo usar el mapeo UID/GID.

Respuesta1

En lugar de asignar todos los archivos a uid 1000, asigne todos los archivos a su uid en Mac (ejecútelo id -uen una terminal para ver su uid). Mientras lo hace, haga lo mismo con el gid ( id -g).

Respuesta2

esto es lo que funcionó para mí en MacOS 11.1 BigSur (cliente nfs), ejecutando Ubuntu 20.04 dentro de VirtualBox VM, usando la red 'solo host' para la conexión directa a la máquina virtual. Presumiblemente, esto funcionaría entre dos máquinas físicas.

*** tenga en cuenta que la máquina virtual no tiene un firewall habilitado porque es una máquina virtual de solo host que se ejecuta dentro de mi Mac. Obviamente, normalmente necesita tener puertos abiertos en el firewall del servidor para esto.

Macbook (cliente) es 192.168.56.1 Ubuntu VM (servidor) es 192.168.56.11

Editar /etc/exportsen el servidor:

/home/don     192.168.56.1(rw,sync,no_subtree_check,anonuid=1000,anongid=1000,all_squash)

*** recuerde ejecutar exportfs -adespués de editar el /etc/exportsarchivo, antes de ejecutarlo mounten el cliente mac.

** id 1000 y gid 1000 es el usuario 'don' en ubuntu vm

En Mac:

sudo mount -o resvport,rw -t nfs 192.168.56.11:/home/don /Users/don/ubuntudevnfs

y

sudo umount -t nfs /Users/don/ubuntudevnfs 

resvporten el lado mac (cliente) niega la necesidad de insecureexportar en el lado del servidor.

UID/GID 1000 es el usuario 'don' en el servidor, como se ve desde el cliente mac: archivo de texto de muestra creado en la terminal de cliente mac

Cómo se ve en el servidor: vista de /home/don a través de ssh en la máquina virtual de ubuntu

Respuesta3

Una solución: crear un grupo con la misma identificación de grupo en ambas plataformas y convertir al usuario en ambas plataformas en miembro de él, y luego cambiar el parámetro anongid a esta identificación de grupo.

información relacionada