
Em um servidor Linux rhel 5 (atualizado há dois meses), dois NAS estão sendo montados com NFS. Nestes compartilhamentos, os diretórios pertencem a dois usuários diferentes, ambos existentes localmente no servidor.
Um deles é mapeado corretamente pelo rpcidmapd, mas o outro compartilhamento não mostra ninguém: ninguém como proprietário.
Com o verbose aumentado, o log de saída para a montagem correta (usuário Tomcat):
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nss_getpwnam: name '[email protected]' domain 'domain.com': resulting localname 'tomcat'
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: final return value is 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (user) name "[email protected]" -> id "667"
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: final return value is 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (group) name "[email protected]" -> id "667"
E para o usuário não estar mapeado corretamente, temos um código de saída -22:
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' domain 'domain.com': resulting localname '(null)'
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' does not map into domain 'domain.com'
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: final return value is -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (user) name "10701" -> id "99"
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: nsswitch->name_to_gid returned -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: final return value is -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (group) name "672" -> id "99"
As mesmas montagens funcionam bem em um servidor rhel 7.4.
/etc/idmapd.conf
é o mesmo em ambos os servidores.
Usuários e grupos existem localmente, getent passwd responde bem para ambos os usuários.
O nome de usuário tem mais de 8 caracteres, tentei reduzi-lo para 8, mas sem sucesso.
Pensei no uid superior a 10.000, mas não consegui encontrar um documento falando sobre esse tipo de limitação.
Com poucas ideias agora, pesquisei muito no Google, mas não consegui encontrar o motivo pelo qual funciona em um usuário, mas não em outro.
Responder1
O NFSv4 vem com um método para mapear o nome do usuário para os IDs do usuário. Se você deseja ter as mesmas credenciais no servidor e no cliente, você pode, por exemplo, fornecer as mesmas credenciais a ambos os sistemasnome do domínio
Caso isso não funcione em sua plataforma, procure na documentação informações sobre como configurar odomínio nfsv4