一尘不染

如何设置系统范围的umask?

linux

我正在实验室中运行Linux(Debian和Ubuntu)。用户名和组名由NIS和yp处理。我们有一些普通用户,每个人都可以访问该用户来运行实验,然后我们每个人都有自己的用户,此外还有一个共同的组,我们都是该组的成员。

如何使/home/用户/组读取/写入(/可执行)共享驱动器(NFS)上的所有文件和目录?基本上我想要的是

chmod -R 664 /home
chgrp -R commongroup /home

或等效地umask 0002

但是运行以上命令只能修复文件夹中的当前文件,而umask仅适用于单个用户,并且必须在每次用户登录时都运行。在.bashrc文件中(这是否可以通过gnome用于更改模式?)。是否可以使用系统范围的命令或设置来确保我们的公共组对公共文件具有写权限?


阅读 527

收藏
2020-06-02

共1个答案

一尘不染

Debian和Ubuntu都带有pam_umask。这样/etc/login.defs,无论用户如何登录,都可以配置umask
并使它们在系统范围内应用。

要启用它,您可能需要在/etc/pam.d/common-session阅读中添加一行

session optional pam_umask.so

或者它可能已经启用。然后编辑/etc/login.defs并将UMASK行更改为

UMASK           002

(默认为022)。

请注意,用户仍然可以自己~/.profile~/.bashrc类似方式覆盖umask
,但是(至少在新的Debian和Ubuntu安装上)用户不应该在/etc/profile或中覆盖umask
/etc/bash.bashrc。(如果有,只需将其删除。)

2020-06-02