Suas ACLs padrão substituem o umask, que não especifica permissões , mas máximo para criar novos arquivos. Nesse caso, rwxrwxr-x
.
Em seguida, seu aplicativo chama open
ou creat
com as permissões desejadas. Apenas sobre todos os aplicativos solicitará rw-rw-rw-
para arquivos.
Você pode ver isso executando strace
, por exemplo,
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
( 0666
é o mesmo que rw-rw-rw-
.)
As duas permissões são combinadas usando bit a bit AND para fornecer rw-rw-r--
.
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Para outra explicação, veja Listas de Controle de Acesso POSIX - "Exemplo padrão da ACL".
Então a verdadeira questão é: por que você precisa que os arquivos sejam executáveis?