如何全局设置 umask?

如何全局设置 umask?

我正在使用私人用户组设置,即用户foo的主目录归所有foo:foo,而不是所有foo:users

为了使其正常工作,我需要全局将 umask 设置为 002。

快速浏览后grep -RIi umask /etc/*,似乎修改UMASK中的条目/etc/login.defs应该可以解决问题。它确实如此——但仅限于安慰登录。

如果我登录到我的桌面并在那里打开终端,我仍然可以看到默认的umask 022。对于通过菜单启动的应用程序创建的文件也是如此。显然,显示管理器(或负责的任何 X11 组件)确实提供了一些与控制台登录不同的设置,我真不知道是哪一个。(我尝试更改 中的设置/etc/init.d/rc,但没有帮助。)

如何/在哪里设置umask 全球(并且对于所有用户来说),以便 X11 桌面环境也能得到备忘录?

(系统是 Linux Mint / Ubuntu,以防万一发生任何变化......)

答案1

您可以通过引入语句来全局设置 umask

 umask 022

(例如)在 /etc/profile 或 /etc/bashrc 中。

或者,由于您使用的是 Debian 系统,因此您可以使用 PAM。要启用此功能,请首先编辑文件/etc/pam.d/common-session并添加以下行:

 session optional pam_umask.so

然后编辑文件/etc/login.defs并添加(或修改,无论什么)行

 UMASK           002

这些设置在下次重启后强制执行,但要小心:这两种方法都会导致配置始终可以被用户的选择所取代,例如在他们自己的 ~/.bashrc 中。

如果您确实希望无法更改 umask,您可以使用 /etc/fstab 中的磁盘配置。如您所知,可用的选项和语法取决于文件系统类型。

相关内容