如何创建完全共享的 Unix 目录?

如何创建完全共享的 Unix 目录?

我想在我的系统上与 2 个用户共享一个目录。以下是我目前所做的:

我有用户“user1”和“user2”。我创建了一个名为“ours”的组,并将这两个用户添加到该组中。我还创建了一个 /ours 目录并将其设置为“ours”组:

drwxrwsr-x user1 ours 4096 dec 13 2020 /ours

现在,大部分事情都正常了,但有时当我们在此文件夹中创建文件时,该文件将不属于“ours”组。例如,我刚刚将 PDF 下载到该文件夹​​,我看到 PDF 文件设置为用户“user1”和组“user1”,而不是组“ours”(老实说,我不记得该文件是否由 Firefox 或 Evince 在那里有效创建)。这很烦人,因为每当我想让其他人真正访问文件时,我都必须在目录上运行“chown -R”以使所有内容都归 ours 组所有。

我如何确保我们使用的各种不同程序在那里创建的文件始终归“我们的”组所有?我以为组的权限 (setgid) 会强制执行这一点,但在使用该目录一段时间后,情况并非如此。用户空间程序是否对他们在那里创建的文件进行 chgrp 操作?

如果不可能,您究竟建议我做什么才能获得完全无缝的“共享目录”体验?

谢谢。

答案1

将目录设置为 setgid 应该会强制在该组创建的文件归该组所有,但是是的,有些程序可能会对该文件进行 chgrp 操作。

chgrp -R在这种情况下,除了设置一个定期(例如每 10 分钟)对目录执行操作的 cron 作业之外,我没有其他方法。

相关内容