首先,确保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.