Linux 为什么不尊重/etc/login.defs中的UMASK设置?
我将/etc/login.defs中的Linux 为什么不尊重/etc/login.defs中的UMASK设置?,linux,pam,umask,Linux,Pam,Umask,我将/etc/login.defs中的UMASK设置设置为077,但当我登录并查询它时,我得到以下信息: $ umask 0007 事实证明,在现代Linux发行版中,pam_umask.so模块控制从/etc/login.defs读取umask设置。但是,它会调整某些情况下使用的值,如下所述: PAM模块尝试从以下位置获取umask值 按以下顺序: ·umask=参数 ·umask=用户GECOS字段中的条目 ·UMASK=来自/etc/default/login的条目 ·UMASK来自/e
UMASK
设置设置为077,但当我登录并查询它时,我得到以下信息:
$ umask
0007
事实证明,在现代Linux发行版中,pam_umask.so模块控制从/etc/login.defs读取
umask
设置。但是,它会调整某些情况下使用的值,如下所述:
PAM模块尝试从以下位置获取umask值
按以下顺序:
·umask=
参数
·umask=
用户GECOS字段中的条目
·UMASK=
来自/etc/default/login的条目
·UMASK
来自/etc/login.defs的条目(受
/etc/login.defs)
查看Ubuntu主机上的/etc/pam.d/common-session,了解如何调用pam_umask.so
根据/etc/login.defs中的注释:
如果USERGROUPS_ENAB设置为“yes”,则将修改此UMASK默认值
对于私有用户组,即。Euid与gid相同,用户名为
与主组名相同:对于这些组,用户权限将为
用作组权限,例如。G022将变成002
因此,它被视为标准行为。我建议不要禁用USERGROUPS\u ENAB
,因为这样会在用户创建时停止创建相应的组。要在不更改此行为的情况下强制设置umask,请创建/etc/default/login,其中包含umask=077
,并在/etc/login.defs中注释掉umask 077
(PAM=Pluggable Authentication Modules)事实证明,在现代Linux发行版中,PAM_umask.so模块控制从/etc/login.defs读取
umask
设置。但是,它会调整某些情况下使用的值,如下所述:
PAM模块尝试从以下位置获取umask值
按以下顺序:
·umask=
参数
·umask=
用户GECOS字段中的条目
·UMASK=
来自/etc/default/login的条目
·UMASK
来自/etc/login.defs的条目(受
/etc/login.defs)
查看Ubuntu主机上的/etc/pam.d/common-session,了解如何调用pam_umask.so
根据/etc/login.defs中的注释:
如果USERGROUPS_ENAB设置为“yes”,则将修改此UMASK默认值
对于私有用户组,即。Euid与gid相同,用户名为
与主组名相同:对于这些组,用户权限将为
用作组权限,例如。G022将变成002
因此,它被视为标准行为。我建议不要禁用USERGROUPS\u ENAB
,因为这样会在用户创建时停止创建相应的组。要在不更改此行为的情况下强制设置umask,请创建/etc/default/login,其中包含umask=077
,并在/etc/login.defs中注释掉umask 077
(PAM=可插拔的身份验证模块)只有在创建用户时才使用/etc/login.defs中的umask值,并将其应用于用户的主目录 用户的默认umask在/etc/profile中确定。(不适用于基于Debian的发行版) 您可以在~/.bash_配置文件中更改特定用户umask
我还认为USERGROUPS_ENAB=yes强制执行UPG(通用专用组),并且对umask值没有任何影响。(我可能错了)在/etc/login.defs中的umask值仅在创建用户时使用,并应用于用户的主目录 用户的默认umask在/etc/profile中确定。(不适用于基于Debian的发行版) 您可以在~/.bash_配置文件中更改特定用户umask
我还认为USERGROUPS_ENAB=yes强制执行UPG(通用专用组),并且对umask值没有任何影响。(我可能错了)您提到只有在创建用户时才使用/etc/login.defs设置。这不是我在回答中引用的pam_umask(8)手册中读到的内容。您对此有何参考?您提到/etc/login.defs设置仅在创建用户时使用。这不是我在回答中引用的pam_umask(8)手册中读到的内容。您对此有何参考?您的
/etc/default/login
方法听起来很优雅,但并没有为我这样做(可能机器需要重新启动吗?)。我最终在/etc/profile.d/
中创建了一个调用umask002
的小shell脚本。(设置UMASK=002
也不起作用)我同意@florian。在CentOS 7上,/etc/profile
将umask显式设置为002(如果uid>199
和uid=gid
)或022。绕过它的唯一方法是使用/etc/profile.d
中的脚本覆盖它。您所描述的似乎只适用于类似debian的发行版。在CentOS 7上,不使用pam_umask。您的/etc/default/login
方法听起来很优雅,但没有为我这样做(可能机器需要重新启动吗?)。我最终在/etc/profile.d/
中创建了一个调用umask002
的小shell脚本。(设置UMASK=002
也不起作用)我同意@florian。在CentOS 7上,/etc/profile
将umask显式设置为002(如果uid>199
和uid=gid
)或022。绕过它的唯一方法是使用/etc/profile.d
中的脚本覆盖它。您所描述的似乎只适用于类似debian的发行版。在CentOS 7上,不使用pam_umask。