As permissões de arquivo na montagem NFS aparecem como 'nobody' após a atualização para o 14.04

4

Eu tenho um servidor Ubuntu 12.04 que exporta alguns sistemas de arquivos pelo NFS.

server$ cat /etc/exports
/home 192.168.42.0/255.255.255.0(rw,anonuid=65534,anongid=65534,async,no_subtree_check)
/stuff 192.168.42.0/255.255.255.0(rw,anonuid=65534,anongid=65534,async,no_subtree_check)
/stuff 192.168.99.0/255.255.255.0(ro,anonuid=65534,anongid=65534,async,no_subtree_check)

Eu também tenho um cliente que os monta:

client$ cat /etc/fstab
...
server:/home    /home       nfs hard,intr,rsize=8192,wsize=8192,_netdev 0 0
server:/stuff   /server/stuff   nfs hard,intr,rsize=8192,wsize=8192,_netdev 0 0

O IP do cliente está no intervalo 192.168.42.x. Estava rodando o Ubuntu 10.04 até ontem. O NFS funcionava bem, mais ou menos (às vezes não montava automaticamente na inicialização, mas eu tinha um script cron para detectar e consertar isso).

Eu atualizei o cliente para o Ubuntu 12.04 ontem e reiniciei. O NFS continuou a funcionar bem.

Eu atualizei o cliente para o Ubuntu 14.04 hoje e reiniciei. Agora o NFS é montado, mas todas as informações de propriedade de arquivo são mapeadas para ninguém: 4294967294:

client$ ls -ld /home/weblate
drwxr-xr-x   5 nobody 4294967294     4096 Jan 29  2014 weblate

Por que isso e o que preciso fazer para que a propriedade de arquivos funcione novamente?

    
por Marius Gedminas 16.09.2014 / 12:15

2 respostas

8

A pista vital apareceu em /var/log/syslog :

Sep 16 13:11:07 client nfsidmap[7340]: nss_getpwnam: name 'www-data@lan' does not map into domain 'localdomain'

combinado com este trecho de NFSv4Howto

  

Se todas as listagens de diretório mostrarem apenas "nobody" e "nogroup" em vez de nomes reais de usuários e grupos, você pode querer verificar o parâmetro Domain definido em /etc/idmapd.conf. O cliente e servidor NFSv4 devem estar no mesmo domínio.

e este comentário em /etc/idmap.conf :

# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain

Então, meu servidor achou que seu domínio era lan :

server$ hostname -f
server.lan

server$ grep server /etc/hosts
127.0.1.1   server.lan server

enquanto meu cliente não tem um domínio:

client$ hostname -f
client

client$ grep client /etc/hosts
127.0.1.1   client

A correção: edite /etc/hosts no cliente para ler

127.0.1.1   client.lan client

e reinicie.

    
por Marius Gedminas 16.09.2014 / 12:29
1

Resolvi meu problema por esse método. Abra o arquivo /etc/nfsmount.conf e encontre Nfsvers= .

Descomente essa linha e escreva a versão do NFS suportada pelo seu servidor. O meu era 3 então eu escrevi:

Nfsvers=3

Eu reiniciei o servidor NFS.

    
por Muhammad Naeem 22.08.2016 / 13:56