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