umask 之前的默认文件权限来自哪里?

umask 之前的默认文件权限来自哪里?

在应用 umask 来限制文件和目录之前,它们的默认权限在哪里设置?

或者默认是 0777?

答案1

据我所知,它(在某种意义上)被硬编码到每个可以创建文件的程序中。我基本同意@Thor:对于目录,它通常是 777和可执行文件(即,编译器使用 777),而对于所有其他文件(数据文件、命名管道、“特殊” (设备) 文件等)则使用 666。文件系统套接字的默认模式可能必须在内核中硬编码,因为据我所知,系统bind调用不允许程序指定这一点。

我说“在某种意义上”是因为许多程序使用库函数(例如,在包fopenstdio)来执行文件 I/O,所以在它们的情况下默认模式是在库函数中硬编码的。


也就是说,某些版本的 *nix 可能在某处有一个配置文件,并且某些或所有程序和库函数都会读取该配置文件以获取默认模式。

相关内容