Este é um problema com a identificação do usuário no protocolo NFS. Como isso funciona depende de qual versão do NFS você está usando.
No NFSv3, nomes de usuário e senhas não fazem parte do protocolo; em vez disso, os números de UID e GID são. Se um usuário com UID = 1000 na máquina a for chamado bart
e um usuário com o mesmo uid na máquina b for chamado homer
, então bart
poderá ler arquivos criados pelo usuário homer
na máquina b. Esta é uma razão pela qual a sincronização UID é geralmente uma boa idéia ao usar o NFS.
No entanto, o NFSv4 mudou muito disso. Em vez de apenas números UID, no NFSv4, o usuário e o grupo nome são enviados pela rede. Para que isso funcione corretamente, o protocolo NFSv4 mudou várias coisas de forma significativa:
- O protocolo requer que todos os nomes de usuário existam em todas as máquinas. Ou seja, se o cliente tiver um usuário
bart
, o servidor deve também ter um usuáriobart
(seus UIDs podem ser diferentes). Se algum deles não tiver o usuário mencionado, as coisas voltarão para o usuário e gruponobody
e / ounogroup
. - O protocolo tem um conceito de "domínio". Por padrão, isso é baseado no nome do domínio (ou seja, o FQDN da máquina em que você está executando, menos o nome do host), mas pode ser uma string arbitrária. Os domínios são usados para separar máquinas que possuem diferentes conjuntos de usuários. Se o domínio no cliente não corresponder ao domínio no servidor, o sistema assumirá que o usuário
bart
na máquina a é completamente diferentebart
daquele na máquina b.
Para mais detalhes, leia a página rpc.idmapd(8)
man (que documenta a implementação do Linux do protocolo de mapeamento de ID).
Até recentemente, a maioria das distribuições Linux costumava usar o NFSv3 como padrão se você não solicitasse explicitamente o contrário. Desde alguns anos, no entanto, os padrões estão mudando para o NFSv4.
Para que as coisas funcionem, você tem duas opções:
- Reverter para o NFSv3. Você pode fazer isso por meio da opção
nfsvers=3
mount. - Descubra por que
rpc.idmapd
não está fazendo o que você espera e mexa com isso até que isso aconteça.
O caminho de menor resistência é, claramente, 1. No entanto, o NFSv4 possui vários recursos úteis sobre o conjunto de recursos do NFSv3, e você os perderia descartando-o.