如何自动将文件chown给进行修改的用户?

如何自动将文件chown给进行修改的用户?

我已经为访问一组公共文件的用户设置了一个共享目录结构。用户创建的文件归该用户所有(该组是从父目录继承的),因此团队知道向谁询问新文件。但是,用户修改的文件不会更新以反映该用户,因此团队不知道谁对文件进行了编辑。

我希望用户编辑的文件自动被 chown'ed 给该用户。

资产已经受到修订控制,但我希望团队能够在签入之间知道谁正在对此共享沙箱进行本地编辑。在理想的世界中,人们记得提交或清理所有更改,但没有人是完美的!

编辑

我所说的“已经受修订版控制”是指它是一个 svn 签出。我们没有使用文件系统技巧来实现我们自己类型的版本控制。对于这种特殊情况(我意识到在大多数情况下这没有意义),共享结帐,而不是每个人都从自己的沙箱中提交并发布更改,是最有成效的。

答案1

取消组和其他人对文件的写权限,但授予他们对目录的写权限,以便每个人都可以删除文件。然后,当用户想要修改文件时,他们必须删除原始文件并在其位置写入另一个文件。

或者,您可以允许sudo chown(但不允许sudo用于其他命令)。这将迫使用户在编辑之前获得所有权。

答案2

以这种方式使用文件系统似乎很奇怪,它们并不是真正为版本控制和协作工作而设计的。

不管怎样,我想你可以用inotify。有一个IN_MODIFY指示文件何时被修改的事件。

您可以使用类似的工具inotify 工具或者使用 C-API 制作您自己的小程序。

相关内容