Mapeando o UID e o GID do usuário local para o compartilhamento NFS montado

36

Eu tenho um servidor com NFSv4. Estou montando o conteúdo da pasta pessoal do usuário remoto no host local. Capaz de ler e escrever o conteúdo, mas quando estou verificando a propriedade dos arquivos no volume montado do host local, todos eles pertencem ao grupo e usuário remoto correspondente (512). Existe alguma maneira de fazer parecer que eles pertencem ao usuário e grupo local (1000) no host local?

/ etc / exportações no host remoto (o IP é 192.168.1.110)

/home/user512 192.168.1.142(rw,sync,all_squash,anonuid=512,anongid=512)

/ etc / fstab no host local (o IP é 192.168.1.142)

192.168.1.110:/home/user512    /home/localuser/projects/project512   nfs    rw,hard,intr,rsize=32768,wsize=32768    0       0
Alexander
fonte

Respostas:

34

Isto é o que o idmapping deve fazer. Primeiro de tudo, o enable está no cliente e no servidor:

# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping

limpe o cache do idmap e reinicie o daemon do idmap:

# nfsidmap -c
# service rpcidmapd restart

Agora, no servidor, o cliente enviará, em vez de IDs numéricos, os principais da string, como [email protected] . Você precisa ter uma conta bob nos dois hosts - cliente e servidor. No entanto, os IDs numéricos podem ser diferentes.

Kofemann
fonte
7
Por exemplo, no servidor nfs, o caminho é / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd, não nfs) #
Mike Purcell
2
Nenhum serviço rpcidmapd no meu cliente Linux Mint.
Corni
1
Pergunta sobre esta resposta: echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping tornará essa configuração permanente, ou terei que redefini-la todas as vezes após a reinicialização?
mauritslamers
4
No Ubuntu, o serviço é chamado em idmapdvez derpcidmapd
mauritslamers
2
Debian => idmapd do pacote nfs-common O serviço é nomeadonfs-idmapd
Philippe Gachoud 23/11
5

Você tem todas as peças lá. Na página do manual exportfs, all_squashmapeia todos os uids e gids para as versões anônimas. O que você escreveu forçou esses valores a 512. Se você alterasse para 1000, o servidor nfs no host remoto faria tudo 1000, e o acesso deveria ser concedido.

ficando mais sábio
fonte
Meu uid no cliente é 1000, o uid do usuário com o mesmo nome no servidor é 1003. Tentei definir anonuid=1000,anongid=1000e anonuid=1003,anongid=1003(e reiniciar o nfsserver e desmontar / compartilhar o compartilhamento) e nem funciona. Voto negativo, porque esta resposta parece não funcionar.
Phrogz
Apenas para confirmar, quais são as suas entradas de exportação e fstab?
tornando
1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)nas exportações e 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrno fstab
Phrogz
3

no seu cliente nfs, edite /etc/idmapd.conf e altere

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

depois disso, reinicie o serviço nfs

c4f4t0r
fonte