我有一堆长期运行的脚本和应用程序,它们将输出结果存储在几个用户共享的目录中。我想要一种方法来确保在此共享目录下创建的每个文件和目录都自动具有 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/