如果我将 umask 从 022 更改为 027,哪些权限会​​发生变化?

Reg*_*ser 5 permissions umask lynis

我刚刚开始使用Lynis(请不要认为我拼错了 Linux)。它运行后,我建议还是设置umask/etc/login.defs/etc/init.d/rc027比默认022

我想知道会对文件权限进行哪些更改。另外为什么值存储在两个文件中?它们的工作方式不同吗?

如果需要更多信息,我使用 Ubuntu 12.10,我是该系统的唯一用户。

May*_*hux 8

027 umask 设置意味着拥有组也将被允许读取新创建的文件。这将权限授予模型从处理权限位移得更远,并将其基于组所有权。

这将创建权限为 750 的目录。

请查看这篇很棒的文章027 umask — 安全性和简单性之间的折衷


小智 5

模式掩码

引用ArchWiki

umask 实用程序用于控制文件创建模式掩码,它确定新创建文件的文件权限位的初始值。

模式位

三个八进制数字对应于用户、组和其他人的权限。通过将第三个数字从 2 更改为 7,其他权限也随之更改。

要理解这些数字,请将它们写成二进制形式,每一位对应于readwriteexecute 之一。总之,2对应;7 对应于读取写入执行。目录有点不同,读取意味着获取目录中的项目(文件和目录)列表,而执行意味着访问这些项目,前提是它们的名称是已知的。

它是如何屏蔽的

确切地说,模式掩码决定了默认情况下哪些权限被屏蔽或从新创建的文件中删除。所以掩码值为 2 意味着使文件不可写;7 表示删除所有权限。请注意,即使某些权限没有被模式掩码删除,它们也可能因为其他限制而无法使用。例如,Linux 不允许创建具有执行权限的文件,因此默认情况下它们永远不会执行。

合理的值

所以要回答第一个问题: 022 表示写入权限被其他人屏蔽,因此默认情况下文件可以读取但不能被其他人写入或修改。虽然没有屏蔽执行权限,但由于上述限制,其他人将无法执行文件;但是,他们可能能够访问带有目录的项目。改成027,readexecute也屏蔽了。所以新创建的文件和目录对他人保密;其他人始终无法访问新创建的目录中的项目。

在许多情况下,只有一个人类用户。但是,通常有几个系统用户用于运行服务,例如nobody. 在一些罕见的情况下,例如当一个以无人身份运行的程序受到威胁时,限制性权限可能会阻止它读取敏感数据。

但是,在多用户环境中,共享文件变得更加复杂:除了设置文件的权限外,至少需要在所有父目录上设置执行权限。

设置值

至于第二个问题,模式掩码只需设置一次。如果设置多次,最后一个很重要。大多数发行版在 中设置默认模式掩码/etc/profile,因此我建议编辑此文件。