如何防止 svnserve 覆盖 SVN 存储库权限?

如何防止 svnserve 覆盖 SVN 存储库权限?

我和一些同事正在通过 SSH 访问 SVN 存储库。为了使存储库可供我们所有帐户读写,我们创建了一个名为“开发人员”的组,并让每个存储库都归该组所有。

但是当我们其中一人提交时,存储库中的某些文件的权限会从 adminuser:developers 更改为 user1:user1。这会阻止任何其他用户提交到同一存储库。

我以前曾解决过这个问题,但我忘了是怎么解决的。我听说过“包装器”的想法,即为 svnserve 编写一个包装器脚本,将 umask 更改为 002,然后执行实际的 svnserve 二进制文件。但现在这似乎对我不起作用。我该如何解决这个问题?

答案1

好的,我找到了。完整说明可在此处找到:http://odyniec.net/articles/ubuntu-subversion-server/

具体来说,它说

此外,您需要确保 repos 目录中创建的所有新文件和目录(换句话说,提交到存储库的任何内容)也归该组所有。为此,请再次使用 chmod 设置目录上的 set-group-ID 位,这会导致在其中创建的任何文件都具有与目录本身相同的组所有权。实际上,repos 中的所有内容都将属于 svn 组。

$ sudo chmod g+s /usr/local/svn/repos

对我来说,因为我已经有多个存储库,所以我使用了

$ sudo chmod -R g+s /usr/local/svn/repos

相关内容