我有一堆长期运行的脚本和应用程序,它们将输出结果存储在几个用户共享的目录中.我想要一种方法来确保在这个共享目录下创建的每个文件和目录自动拥有u=rwxg=rwxo=r个权限.

我知道我可以在各种脚本的开头使用umask 006,但我不喜欢这种方法,因为许多用户编写自己的脚本,可能会忘记自己设置umask.

我真的只想让文件系统设置新创建的文件和目录,如果它在某个文件夹中,则具有某个权限.这有可能吗?

Update:I think使用默认的ACL功能,用POSIX ACLs就可以完成,但目前这一切都有点让我不知所措.如果有人能解释如何使用默认ACL,它可能会很好地回答这个问题.

推荐答案

要获得正确的所有权,可以使用

chmod g+rwxs dirname

这将确保目录中创建的文件归该组所有.然后,您应该确保每个人都使用umask 002或007或类似的东西运行——这就是为什么Debian和许多其他linux系统默认配置为按用户组的原因.

如果用户的umask太强,我不知道有什么方法可以强制获得你想要的权限.

Linux相关问答推荐

C++17:G++8.5版似乎无法正确生成无符号64位伪随机整数

使用信号处理程序实现Hibernate 功能

重新运行时避免 Linux bash 脚本中的文件重命名重复

如何将一个变量的 2 行添加到另一个变量的特定行?

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

使用 sed 命令仅打印正则表达式匹配

如何启用或切换现有的Flutter 项目(仅限移动设备)到 MacOS 或 WEB 或 Linux 或 Windows?

try 使用 patchelf 修补 MuJoCo 二进制文件时出现执行格式错误

在 SLURM 作业(job)脚本中设置和传递字符串变量

另一个远程的 Git 合并分支

我应该如何从非 root Debian Linux 守护进程登录?

用于判断进程是否正在运行并对结果采取行动的 Linux 脚本

使用 C/C++ (GCC/G++) 在 Linux 中的套接字编程中发送和接收文件

按主机名的 IPv6 地址

如何将 bash 别名定义为多个命令的序列?

为什么可执行文件操作系统依赖于?

如何在 shell 脚本中向文件中添加一行?

ngrok 如何在防火墙后工作?

为嵌入式 Linux 设备实施更新/升级系统

如何始终以 GB 为单位获取 df linux 命令输出