Não é possível gravar no compartilhamento Linux NFS do cliente OSX

Não é possível gravar no compartilhamento Linux NFS do cliente OSX

Estou tentando me conectar a uma unidade NFS compartilhada da minha caixa Debian Squeeze do meu laptop OSX 10.6 e, por mais que tente, não consigo fazer com que eu grave no disco a partir do Mac. Eu tenho o seguinte em /etc/exports:

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

fazendo com que todas as solicitações venham do UID/GID 1000/1000, meu usuário, que possui toda a unidade. No entanto, quando monto a unidade no Mac, tudo também pertence a 1000/1000, então nunca consigo gravar no 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

Já vi algumas outras pessoas tendo esse problema, mas a única solução que vi foi fazer chmod em todo o disco 777, o que prefiro evitar. Infelizmente, não posso usar o nfs-user-server no meu sistema, portanto não posso usar o mapeamento UID/GID.

Responder1

Em vez de atribuir todos os arquivos ao uid 1000, atribua todos os arquivos ao seu uid no Mac (execute id -uem um terminal para ver o seu uid). Enquanto você faz isso, faça o mesmo com o gid ( id -g).

Responder2

foi isso que funcionou para mim no MacOS 11.1 BigSur (cliente nfs), rodando Ubuntu 20.04 dentro do VirtualBox VM, usando a rede 'somente host' para conexão direta com a VM. Presumivelmente, isso funcionaria entre duas máquinas físicas.

*** observe que a VM não tem firewall ativado porque é uma VM somente host em execução dentro do meu Mac. Obviamente você precisa ter portas abertas no firewall do servidor normalmente para isso.

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

Editar /etc/exportsno servidor:

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

*** lembre-se de executar exportfs -aapós editar o /etc/exportsarquivo, antes de executar mountno cliente mac.

** id 1000 e gid 1000 é o usuário 'don' no ubuntu vm

No mac:

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

e

sudo umount -t nfs /Users/don/ubuntudevnfs 

resvportno lado mac (cliente) nega a necessidade de insecureexportação no lado do servidor.

UID/GID 1000 é o usuário 'don' no servidor, conforme visto no cliente mac: arquivo de texto de exemplo criado no terminal do cliente Mac

Como fica no servidor: visualização de /home/don via ssh no ubuntu vm

Responder3

Uma solução: crie um grupo com o mesmo ID de grupo em ambas as plataformas e torne o usuário em ambas as plataformas um membro dele e, em seguida, altere o parâmetro anongid para esse ID de grupo.

informação relacionada