linux - 如何设置系统范围的umask?

标签 linux system umask

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

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

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

或等效的umask 0002.

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

最佳答案

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/etc/bash.bashrc 中不应有任何 umask 覆盖。 (如果有,只需删除它们。)

关于linux - 如何设置系统范围的umask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220531/

相关文章:

linux - chroot 进程 jail ,每次运行时将任意目录设置为 root

java - FindBugs 生成不同格式的报告

c++ - char * 与 std string 比较错误结果

android - 如何查看安卓系统版本?

cordova - 更新 npm、cordova 后出错

linux - 将格式为 DD/MM/YYYY 的日期转换为从 01/01/1970 开始所花费的秒数?

java - 我正在使用 Files.move 函数移动文件,但它不继承父文件夹权限

Java MySQL登录系统

linux - 无法加载 JNA native 支持库 Elasticsearch 6.x

c - C 中的 UMASK 函数