我正在使用私人用户组设置,即用户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 中的磁盘配置。如您所知,可用的选项和语法取决于文件系统类型。