Estou tentando me conectar a uma pasta NFS no meu servidor dev. O proprietário da pasta no servidor dev é darren e o grupo darren.
Quando eu exporto e monto no meu Mac usando o Utilitário de Disco, ele monta, mas quando tento abrir a pasta diz que não tenho permissões. Eu configurei rw, sync e no_subtree_check. O usuário no Mac é darren com um monte de grupos.
Preciso ter o mesmo grupo e usuário definido para acessar a pasta?
O NFS é construído sobre a autenticação RPC. Com o NFS versão 3, o mecanismo de autenticação mais comum é o AUTH_UNIX. O ID do usuário e o ID do grupo do sistema cliente são enviados em cada chamada RPC, e as permissões que esses IDs possuem no arquivo que está sendo acessado são verificadas no servidor. Para que isso funcione, o UID e os GIDs devem ser os mesmos no servidor e nos clientes. No entanto, você pode forçar todo o acesso a ocorrer como um único usuário e grupo combinando as opções de exportação all_squash, anonuid e anongid. all_squash mapeará todos os UIDs e GIDs para o usuário anônimo, e anonuid e anongid definirão o UID e o GID do usuário anônimo. Por exemplo, se seu UID e GID em seu servidor dev forem 1001, você poderá exportar seu diretório inicial com uma linha como
/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)
Estou menos familiarizado com a versão 4 do NFS, mas acho que você pode configurar o rpc.idmapd nos clientes para alterar o uid e o gid que eles enviam para o servidor.
Quando você monta o NFS, suas permissões com as quais está montando devem corresponder ao que você tem no servidor. Por exemplo, se o seu usuário tiver apenas acesso somente leitura, montá-lo com leitura-gravação fará com que você veja os mesmos erros que mencionou em sua postagem ao tentar realmente carregar a montagem. Infelizmente, isso APENAS aparecerá ao acessar a pasta, não quando você realmente a montar.
Você também quer certificar-se de que o usuário NFS está sendo executado como no servidor e o usuário no cliente está usando o mesmo UID e GID. Você pode verificar esses valores executando
id darren
no servidor e no cliente. Se os valores UID e GID não corresponderem, você pode editar/etc/passwd
para torná-lo assim - mas certifique-se de entender o que está fazendo antes de alterar os valores arbitrariamente!Algumas boas fontes:
Eu espero que isso ajude!
Seus UIDs e GIDs correspondem em ambos os servidores? É isso que ele está usando para controlar o acesso e não o login e o nome do grupo.
Exemplo de como montar um compartilhamento NFS no Ubuntu Eoan como servidor e no MacOS Catalina como cliente.
Suposições de exemplo (você precisa adaptar isso):
Nome do PC cliente: Bills-MBP
Nome de usuário no Ubuntu: tux
Nome do PC do Ubuntu: dustycray
Pasta no Ubuntu a ser compartilhada: /home/tux/mp3
No NFS-Server (Ubuntu EOAN no meu caso) entre no terminal (que abrimos conforme mostrado acima):
Agora no mac, abra um terminal como mostrado acima e digite (deixe /private/nfs como está):
Então o NFS pode ser acessado no caminho /private/nfs. No localizador, você verá uma nova entrada chamada (por exemplo) "dustycray" à esquerda na seção "locais", também nas caixas de diálogo de abertura de arquivos.
O procedimento de montagem acima não é permanente, eu uso um script para montá-lo sempre que preciso. No entanto, você também pode tornar a montagem permanente se desejar (por exemplo, Preferências do sistema / Usuários e grupos / Itens de login / + / Selecione qualquer pasta raiz dentro (!) do compartilhamento NFS / Adicionar).
Para mim, o problema foi corrigido fornecendo
_netdev
a opção de montagem no cliente.Ou seja, adicione isso a
/etc/fstab
: