Unix/Linux 中有一个进程标志,称为umask
,解释为一个八进制数,它表示哪些权限可以取消新创建的文件。该标志由子进程继承。为 shell 设置它会使稍后启动的所有进程使用此值。
作为位的权限为 1 for x
、2 forw
和 4 for r
,可以组合成一个八进制数字。例如r-x
是 4 + 1 = 5。有 3 组权限(用户、组、其他)。所以 664 是rw-rw-r--
.
创建“普通”文件时,基本权限为 666(很好的守护进程,不是吗?),创建可执行文件时为 777。从这里umask
取消,002 将为常规文件提供 664。
shell 具有内置命令,umask
用于设置 umask。您可以交互地运行它们,但大多数情况下,它们是在 shell 的某个启动文件中执行的,以使其永久化。在 bash(1) 的情况下,这应该在~/.bashrc
. 在 Fedora 中,它是在系统范围内设置的/etc/bashrc
。
在更改默认设置之前,请仔细考虑影响,因为放宽权限可能会允许对您的文件进行不良访问。允许您组中的任何人编写您的文件是有风险的!