默认情况下是否可以使文件所有者可执行?

默认情况下是否可以使文件所有者可执行?

由于umask的文件基本权限是666,是否可以在创建文件时使文件具有750权限?

答案1

一般来说,不会。几乎每个程序都使用mode 进行调用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

如果您想要不同的行为,您需要编写自己的工具或围绕现有工具进行包装来执行预期的模式更改。

相关内容