1

UMASK将 /etc/login.defs 中的设置设置为 077,但是当我登录并查询它时,我得到了这个:

$ umask
0007
4

2 回答 2

6

事实证明,在现代 Linux 发行版中,PAM的 pam_umask.so 模块控制UMASK从 /etc/login.defs 读取设置。但是,它会调整在某些情况下使用的值,如pam_umask(8)所述:

PAM 模块尝试按以下顺序从以下位置获取 umask 值:

· umask=论据

· umask=在用户的 GECOS 字段中输入

· UMASK=来自 /etc/default/login 的条目

· UMASK来自 /etc/login.defs 的条目(受 /etc/login.defs 的影响USERGROUPS_ENAB

请参阅 Ubuntu 主机上的 /etc/pam.d/common-session 以了解如何pam_umask.so调用。

根据 /etc/login.defs 中的评论:

如果 USERGROUPS_ENAB 设置为“yes”,这将修改私有用户组的 UMASK 默认值,即 uid 与 gid 相同,username 与主组名称相同:对于这些,将使用用户权限作为组权限,例如 022 将变为 002。

因此,它被认为是标准行为。我建议不要禁用USERGROUPS_ENAB,因为这将在创建用户时停止创建相应的组。要在不更改此行为的情况下强制设置 umask,请在 /etc/login.defs 中创建包含UMASK=077并注释掉的/etc/default/login 。UMASK 077

(PAM = 可插拔认证模块)

于 2015-10-15T08:47:08.860 回答
-2

The umask value in /etc/login.defs is only used when creating a user and is applied to the user's home directory

The default umask for a user is determined in /etc/profile. (Does not apply in Debian based distributions)

You may change a specific users umask in ~/.bash_profile

I also believe USERGROUPS_ENAB=yes enforces UPG (Universal Private Group) and does not have any affect on the umask value. (I could be wrong)

于 2016-09-29T10:39:52.587 回答