Isso não é possível. umask apenas impede permissões, mas nunca as adiciona. Assim, você só terá permissão de execução se a criação de open() syscall os contiver. Este é o caso se um compilador criar um arquivo executável.
Como os arquivos criados por padrão com permissão 666 e umask (em forma de bits de permissão) subtraem bit a bit dessa permissão, podemos fazer algo para conceder a permissão execute sem usar o caractere de permissão (r, w, x )?
Estou me referindo ao uso de máscara bit-wise, por exemplo
umask 002
não define caracteres de permissão, como
umask u+x
umask u=rwx
A permissão de um novo arquivo é calculada a partir da permissão usada com a chamada creat() .
Você umask resulta em:
$ umask 002
$ umask -S
u=rwx,g=rwx,o=rx
Portanto, se você usar creat() com uma permissão de arquivo de 0777 , receberá um novo arquivo com rwxrwxrx . No entanto, os programas usuais usam 0666 como argumento de permissão de arquivo para creat() .
Tags permissions umask exec