Meu problema é idêntico ao esta questão do Windows , mas diz respeito ao NFS4 (Linux) e ao ZFS (OpenIndiana) subjacente que estamos usando. Temos esse ZFS compartilhado via NFS4 e CIFS para usuários do Linux e Windows, respectivamente. Seria bom que ambos os grupos de usuários se beneficiassem das ACLs, mas a única peça que faltava no quebra-cabeça é:
Cada usuário tem uma casa, onde define uma ACL herdada de nível superior. Ele pode mais tarde refinar as permissões para os arquivos / pastas contidos iterativamente.
Com o tempo, às vezes, as permissões precisam ser generalizadas novamente para evitar o aumento da poluição das entradas da ACL. Você pode ajustar a ACL de cada arquivo, se necessário, para obter as permissões desejadas, mas isso anula o propósito das ACLs herdadas. Então, como uma ACL pode ser completamente limpa como na pergunta acima?
Não encontrei nada sobre como deve ser uma ACL herdada em branco. Este usecase simplesmente parece não existir. De fato, a manapage solaris chmod afirma claramente
A- Removes all ACEs for current
ACL on file and replaces
current ACL with new ACL that
represents only the current
mode of the file.
Ou seja. recebemos três novas entradas da ACL preenchidas com itens que representam os bits de permissão, o que é inútil para a limpeza.
Se eu tentar remover manualmente cada ACE, no último eu obtenho
chmod A0- <file>
chmod: ERROR: Can't remove all ACL entries from a file
Que por sinal me faz pensar: e porque não? Na verdade, eu realmente quero que toda a ACL específica do arquivo seja usada.
O mesmo vale para o linux, que enumera ACEs iniciando com 1 (!) e verbaliza seus problemas menos diligentemente
nfs4_setacl -x 1 <file>
Failed setxattr operation: Unknown error 524
Então, qual é a ideia por trás das ACLs no Solaris / NFS? Eles nunca podem ser limpos? Por que a opção de recursão dos comandos de configuração da ACL polui todas as crianças em vez de definir uma única ACL e fazer as crianças herdarem? Esta é realmente a intenção dos designers? Eu posso limpar as ACLs usando um cliente Windows perfeitamente bem, mas devo dizer aos usuários do Linux que eles têm que trocar o sistema operacional apenas para consolidar as permissões?