创建文件时设置默认权限

pro*_*eek 5 users permissions umask

创建文件时,权限为644(用户rw,组r,其他r)。如何使生成的默认文件具有 664 的权限?

von*_*and 9

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

在更改默认设置之前,请仔细考虑影响,因为放宽权限可能会允许对您的文件进行不良访问。允许您组中的任何人编写您的文件是有风险的!