在 Ubuntu 服务器上,我有一个包含 Subversion 版本文件的目录。我曾经chgrp bb *
设置过群组所有者。
我还设置了目录的 SGID 位,chmod g+s mydir
以便使用此组创建新文件:
drwsr-sr-x 4 mat bb 4096 Dec 4 21:37 mydir
如果我使用以下命令创建新文件,则此方法有效touch test-touch
-rw-r--r-- 1 mat bb 0 Dec 4 21:43 test-touch
但svn update
不会达到同样的效果:
-rw-r--r-- 1 mat mat 3006 Dec 4 21:44 test-svn
我怎样才能让 Subversion 尊重 SGID 位?
答案1
通过去这次讨论在 SVN 邮件列表中,除了具有特殊 SVN 属性的可执行位之外,无法在 SVN 中保留文件的权限位。
答案2
根据使用 Subversion 进行版本控制,解决方案是确保访问存储库的 svn 或 svnserve 实例以 umask 002 运行,请参阅这。
答案3
我以前在 RHEL4 机器上使用 subversion 时也遇到过同样的问题。将存储库迁移到 RHEL5 机器(从而迁移到另一个版本的 subversion)后,问题就消失了。
答案4
subversion 可执行文件是否以用户 bb 或 mat 身份运行?要找出答案,请检查 svnserve 二进制文件的权限(在我的系统上是/usr/bin/svnserve
。还请检查它所属的组。