我将/etc/login.defs中的UMASK
设置设置为077,但是当我登录并查询它时,我得到了这个:
$ umask
0007
答案 0 :(得分:4)
事实证明,在现代Linux发行版中,PAM的pam_umask.so模块控制从/etc/login.defs读取UMASK
设置。但是,它会调整在某些情况下使用的值,如pam_umask(8):
PAM模块尝试从以下位置获取umask值 按以下顺序:
·
用户的GECOS字段中的umask=
参数·
来自/ etc / default / login 的umask=
条目·
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值没有任何影响。 (我可能错了)