/etc/exports
quer que os endereços IP específicos apareçam primeiro, os intervalos IP depois.
ou seja,
/share/global/usr/share 192.168.101.250(rw,subtree_check,all_squash) 192.168.0.0/16(ro,subtree_check,all_squash)
Estou compartilhando /share/global/usr/share
de um servidor para /usr/share
em um cliente via NFS. Quando o cliente grava nele, recebo o erro "Sistema de arquivos somente leitura".
Permissões do sistema de arquivos ok:
$> ls -la /share/global/usr/
drwxrwxrwx 2 nobody nogroup 4096 Dec 6 14:37 share
As exportações são rw para o IP do cliente 192.168.101.250
, outros IPs internos são ro.
$> grep usr /etc/exports
/share/global/usr/share 192.168.0.0/16(ro,subtree_check,all_squash) 192.168.101.250(rw,subtree_check,all_squash)
O servidor pode escrever aqui:
$> echo HELLO > /share/global/usr/share/REMOVEME && chmod 666 /share/global/usr/share/REMOVEME && echo ok
ok
$> ip addr | grep inet
inet 192.168.101.250/24 brd 192.168.101.255 scope global enp0s8
fstab especifica rw:
$> grep usr /etc/fstab
192.168.101.254:/share/global/usr/share /usr/share nfs rsize=8192,wsize=8192,timeo=3,intr,rw
e montado rw:
$> mount | grep usr
192.168.101.254:/share/global/usr/share on /usr/share type nfs4 (rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=3,retrans=2,sec=sys,clientaddr=192.168.101.250,local_lock=none,addr=192.168.101.254)
A leitura está ok:
$> ls -al /usr/share/REMOVEME
-rw-rw-rw-. 1 nfsnobody nfsnobody 7 Dec 6 15:14 /usr/share/REMOVEME
No cliente:
$> sudo -i
$> echo foo > /usr/share/REMOVEME
-bash: /usr/share/REMOVEME: Permission denied
Eu também não posso criar novos arquivos aqui.
Tudo na configuração parece bom para mim. Por que não consigo gravar no diretório compartilhado no cliente?
Servidor é o Ubuntu 16.04, o cliente é o CentOS 7.