Вообще говоря, нет. Практически каждая программа вызывает open()
(или creat()
, если на то пошло) с режимом 0666
, поэтому какой бы umask
вы не применили, вы никогда не получите 0750
. Даже компоновщик, создающий исполняемые файлы, открывает выходные файлы с режимом 0666
и chmod
их потом:
strace -f -e file gcc bla.c 2>&1 | fgrep a.out
...
[pid 14096] open("a.out", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
...
[pid 14096] chmod("a.out", 0755) = 0
Если вы хотите другого поведения, вам нужно написать свои собственные инструменты или обертки вокруг существующих инструментов, которые выполняют предполагаемое изменение режима.