如何全局设置umask?

Dev*_*lar 7 linux permissions file-permissions 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,以防发生任何变化......)

Mar*_*iae 8

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

 umask 022
Run Code Online (Sandbox Code Playgroud)

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

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

 session optional pam_umask.so
Run Code Online (Sandbox Code Playgroud)

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

 UMASK           002
Run Code Online (Sandbox Code Playgroud)

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

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