Estou tentando exportar/montar um volume NFS sem nenhuma ACL (POSIX ou NFS), mas falho nisso.
Contexto técnico: último debian atual em ambos os lados, volume ext4.
Objetivo: eu imponho acesso estrito usando ACLs POSIX no servidor, e os usuários podem (irão) acessar o volume em outra máquina, com NFS. Mas qualquer usuário que possua um diretório/arquivo pode alterar as ACLs, o que não é bom aqui. Portanto, quero evitar que os usuários alterem ACLs, e simplesmente remover os comandos get/setfacl não é uma boa maneira. Remover o suporte ACL no volume do lado do servidor não é bom…
Então minha pergunta:é possível impedir ACLs de uma montagem NFS, sem remover ACLs no volume do lado do servidor? Se sim, como isso pode ser realizado?
Testei usando no_acl/noacl sem sucesso: minhas exportações são feitas na versão NFSv3, com opção "no_acl". Em /etc/exportações:
/exports ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check,fsid=0)
/exports/data ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check)
Todos os serviços recarregados/reiniciados. Então eu monto no cliente com a opção "noacl" (qualquer que seja):
mount -t nfs -o noacl,vers=3 my-server:/exports/data/ /var/data/
que dá em /proc/mounts:
server-name:/exports/data/ /var/data nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,noacl,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=server-ip,mountvers=3,mountport=53844,mountproto=udp,local_lock=none,addr=server-ip 0 0
E sou capaz de obter/definir ACLs no cliente usando get/setfacl em dir/files que possuo, e as alterações são visíveis no sistema de arquivos do servidor. Também tentei usar o NFSv4, sem alterações. Aliás, no servidor, não consigo ver a opção "no_acl" em /proc/fs/nfs/exports:
/exports/data client-ip(rw,root_squash,sync,wdelay,no_subtree_check,uuid=0bac8439:e7e2488e:817358d2:f2c94b85,sec=1)
mesmo que esteja visível com exportfs -v:
/exports/data client-ip(rw,wdelay,root_squash,no_subtree_check,no_acl,sec=sys,rw,root_squash,no_all_squash)
Responder1
Você pode desabilitar o suporte do lado do servidor compilando o kernel sem a CONFIG_NFSD_V3_ACL
opção.