Можно ли сделать файлы исполняемыми по умолчанию для владельца?

Можно ли сделать файлы исполняемыми по умолчанию для владельца?

Поскольку базовые разрешения файла для umask составляют 666, возможно ли сделать так, чтобы при создании файла он имел разрешения 750?

решение1

В общем, нет. Практически каждая программа вызывает open()(или creat()если на то пошло) с mode 0666, поэтому что бы umaskвы ни применяли, вы никогда не получите 0750. Даже компоновщик, который создает исполняемые файлы, открывает выходные файлы с mode 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

Если вам нужно другое поведение, вам необходимо написать собственные инструменты или оболочки для существующих инструментов, которые выполняют предполагаемое изменение режима.

Связанный контент