Поскольку базовые разрешения файла для 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
Если вам нужно другое поведение, вам необходимо написать собственные инструменты или оболочки для существующих инструментов, которые выполняют предполагаемое изменение режима.