首先,确保pam-modules
安装包。这使得pam_umask
模块可用。然后确保/etc/pam.d/common-session
有一行表格
session optional pam_umask.so
这样pam_umask
就启用了。
现在,根据pam_umask
手册页,默认 umask 是在登录时通过依次检查以下每个位置来确定的:
一个硬系统范围的默认设置在/etc/pam.d/common-session
. 要以这种方式进行设置,请将上述文件中的行替换为:
session optional pam_umask.so umask=002
单个用户的 GECOS 字段中的条目/etc/passwd
会覆盖该特定用户的软系统范围默认值。使用以下形式的命令创建该条目:
chfn --other='umask=002' username
表格UMASK=002
中的一行/etc/default/login
(您可能需要创建该文件)设置了一个软系统范围的默认值。
的UMASK
值来自/etc/login.defs
。该值也用于其他用途(计算正在创建的新用户的主目录的权限;/etc/login.defs
有关更多详细信息,请参阅注释)。因此,最好避免依赖此设置常规登录的默认 umask,以保持独立。
因此,在您的情况下,/etc/default/login
如果您希望可以覆盖单个用户的设置,则应该配置它,或者/etc/pam.d/common-session
如果您希望它对所有用户都相同,则应按上述方式进行设置。
请注意,即使使用硬默认设置,用户仍然可以通过在 shell 提示符或脚本中umask
使用命令手动覆盖默认设置。umask
.profile
另请注意,设置此默认值的传统 Unix 方法是向 中添加umask
命令/etc/profile
,这仍然有效。但这不是在 Ubuntu 上配置此类内容的推荐方式,因为使用脚本和 GUI 很难可靠地进行管理。
请注意,不幸的是,对于任何已转换为通过systemd --user
.