为什么/etc/login.defs中的UMASK设置不受尊重?

时间:2015-10-15 08:47:09

标签: linux pam umask

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

$ umask
0007

2 个答案:

答案 0 :(得分:4)

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

所述
  

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

     

·umask=参数

     用户的GECOS字段中的

·umask=条目

     来自/ etc / default / login

·UMASK=条目      来自/etc/login.defs的

·UMASK条目(受USERGROUPS_ENAB影响         /etc/login.defs中)

在Ubuntu主机上查看/etc/pam.d/common-session,了解如何调用pam_umask.so

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

  

如果USERGROUPS_ENAB设置为“是”,则会修改此UMASK默认值   对于私人用户组,i。即uid和gid一样,用户名是   与主要组名相同:对于这些,用户权限将是   用作组权限,例如: G。 022将成为002。

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

(PAM =可插拔验证模块)

答案 1 :(得分:0)

/etc/login.defs中的umask值仅在创建用户时使用,并应用于用户的主目录

用户的默认umask在/ etc / profile中确定。 (不适用于基于Debian的发行版)

您可以在〜/ .bash_profile

中更改特定用户umask

我也相信USERGROUPS_ENAB = yes强制执行UPG(通用私有组)并且对umask值没有任何影响。 (我可能错了)