linux - 为Linux目录下新创建的文件和子目录设置默认权限?

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

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

我真的只是希望文件系统设置新创建的文件和目录,如果它位于某个文件夹中,则具有一定的权限。这是可能吗?

更新:我认为可以通过POSIX ACLs 来完成,使用默认 ACL 功能,但目前这一切都让我有点头疼。如果有人能解释如何使用默认 ACL,它可能会很好地回答这个问题。

最佳答案

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

在目录上设置组 setuid 位
chmod g+rwxs dirname

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

如果用户的 umask 太强,我不知道如何强制你想要的权限。

https://stackoverflow.com/questions/580584/

相关文章:

python - 安装pycurl时出现"Could not run curl-config: [E

python - 为什么函数可以修改调用者感知的某些参数,而不能修改其他参数?

linux - 如何使用 Red Hat Linux 上的标准工具随机化文件中的行?

python - 为什么我们不应该在 py 脚本中使用 sys.setdefaultencoding

linux - 如何链接到特定的 glibc 版本?

linux - 确保只有一个 Bash 脚本实例正在运行的最佳方法是什么?

python - 将迭代器转换为列表的最快方法

python - virtualenv和pyenv是什么关系?

linux - 在新的 linux 内核中上下文切换要慢得多

shell - 如何将文本 append 到文件?