Tenho seis máquinas, um servidor NFS e cinco clientes. Três clientes (executando Ubuntu 14.04) funcionam perfeitamente. Os outros dois, executando 12.04, estão apresentando erros de permissão.
Na máquina cliente mapeada, ls -l /home/
retorna:
drwxr-xr-x 22 testuser testuser 12288 Oct 9 18:03 testuser
Esta é a configuração de permissões esperada. testuser
é o usuário que precisa de permissão para esta pasta.
Mas, quando logado testuser
, quando touch /home/testuser/test.txt
recebo este erro:
touch: cannot touch `/home/testuser/test.txt': Permission denied
Agora, os IDs numéricos NÃO correspondem às strings de ID, masDisseram-me que não precisa ser assim.
Configurações do cliente:
cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N
A configuração acima permite que o NFS mapeie as permissões do usuário usando strings, não UIDs e GIDs numéricos.
cat /etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
Configurações do servidor:
cat /etc/exports
/raid/nfs/home server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home server2(rw,sync,no_root_squash,no_subtree_check)
Há algum bug ou etapa extra que preciso realizar para que as máquinas 12.04 funcionem corretamente? Ou devo apenas morder a bala e atualizar, ou apenas alterar todos os UIDs para corresponder ao servidor?
Responder1
o problema é que o idmapd está envolvido apenas quando você faz GETATTR/SETATTR (stat, chown, setacl) ou o kerberos é usado (para mapeamento de principal para id). Mas quando o cliente nfs envia a solicitação CREATE com auth = sys, então uid e gid são obtidos da mensagem RPC. Então você precisa de uid e gid match no servidor e no cliente para resolver seu problema de permissão.