一尘不染

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

linux

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

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

我真的只希望文件系统在某个文件夹中时,以一定的权限设置新创建的文件和目录。这是可能吗?

更新 :我 认为 可以使用POSIX
ACL
(使用默认ACL功能)来完成此操作,但此刻我有点头疼。如果有人可以解释如何使用默认ACL,则可能会很好地回答此问题。


阅读 993

收藏
2020-06-03

共1个答案

一尘不染

要获得正确的所有权,可以使用以下命令在目录中设置组setuid位:

chmod g+rwxs dirname

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

如果用户的umask太强,我不知道一种强制您想要的权限的方法。

2020-06-03