A maioria dos programas cria arquivos sem o conjunto de execução de bits ( 0666
== -rw-rw-rw-
). Os bits de execução são praticamente definidos apenas pelo compilador, durante a instalação de um executável ou manualmente pelo usuário.
Em seguida, o umask é aplicado para determinar as permissões reais.
create 0666 rw-rw-rw-
umask 0222 r-xr-xr-x
effective 0444 r--r--r--
Note que não é realmente uma subtração, mas um bit a bit AND do complemento.
Então, é preciso ter 0777
- 0222
= 0555
e
OCTAL BINARY HUMAN-READABLE
0666 0110110110 -rw-rw-rw-
& 0555 0101101101 -r-xr-xr-x
0444 0100100100 -r--r--r--
Veja também Não é possível explicar o comportamento da ACL