为什么 /etc/login.defs 中的 UMASK 设置不被遵守?

问题描述 投票:0回答:3

我将 /etc/login.defs 中的

UMASK
设置设置为 077,但是当我登录并查询它时,我得到以下信息:

$ umask
0007
linux pam umask
3个回答
7
投票

事实证明,在现代 Linux 发行版中,PAM 的 pam_umask.so 模块控制从 /etc/login.defs 读取

UMASK
设置。但是,它会调整在某些情况下使用的值,如 pam_umask(8):

所述

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

·

umask=
争论

·

umask=
用户 GECOS 字段中的条目

·

UMASK=
/etc/default/login 中的条目

·

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

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

pam_umask.so

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

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

因此,这被认为是标准行为。我建议不要禁用

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

(PAM = 可插入身份验证模块)


0
投票

/etc/bashrc 或 /etc/profile 中必须设置不同的 umask 值。 该值必须优先


-2
投票

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

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

您可以在 ~/.bash_profile 中更改特定用户的 umask

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

© www.soinside.com 2019 - 2024. All rights reserved.