Linux 奇怪的Subversion权限问题
我正在尝试在CentOS 5系统上设置SVN,以便几个人可以使用存储库Linux 奇怪的Subversion权限问题,linux,svn,Linux,Svn,我正在尝试在CentOS 5系统上设置SVN,以便几个人可以使用存储库 我已经在/var/svnrepository创建了存储库 我添加了一个subversion用户和组,使其递归地成为存储库的所有者 我递归地将权限设置为775 我确保所有系统用户都在subversion组中 我遇到的问题是,当我进行提交时,SVN显然创建了一个名为db/current的文件,其中包含我的用户名和组。所以说我的用户名是jimbo -rwxrwxr-x 1 jimbo jimbo 11
- 我已经在
创建了存储库/var/svnrepository
- 我添加了一个
用户和组,使其递归地成为存储库的所有者subversion
- 我递归地将权限设置为775
- 我确保所有系统用户都在
组中subversion
db/current
的文件,其中包含我的用户名和组。所以说我的用户名是jimbo
-rwxrwxr-x 1 jimbo jimbo 11 Dec 2 01:09 current
然后再也没有人能查到任何东西了。他们得到一个权限被拒绝的错误
名为db/format
的文件也存在类似问题
Can not open file /var/svnrepository/contactdb/trunk/format: Permission denied
还有谁见过这个吗?知道解决方案吗
所有存储库访问都是通过ssh进行的
奇怪的是,我以前在Linux上安装过SVN,但从来没有遇到过这个问题。我不知道这次我做的有什么不同。您是在使用svnserve还是每个人都在使用
文件://
URI?Subversion建议svn服务-d
应作为单个用户运行
下面是一些关于如何使多访问方法工作的说明。注意,setGID通常设置在Subversions存储库目录及其子目录上:
drwxr-sr-x svnowner svnusers 4096 2008-11-01 .
通过chmod 775,您可以取消设置此setGID位,这就是出现问题的原因:
setGID的意思是:如果创建一个文件,组将被设置为svnusers(在我的示例中),而不是主组
我打赌你没有设置SetGID位,是吗
但是,最好更改文件夹的GID:
chmod g+s <REPO>/dir
chmod g+s/dir
最好查看一个新创建的存储库以匹配权限。每个人都是通过ssh访问它的,如下所示:
svn co svn+ssh://host.com/var/repository
您是否遵循了文档中关于为svnserve创建包装器脚本(将umask设置为002)的建议?我并不是100%清楚,但据我所知,我并没有真正使用svnserv。通过ssh访问存储库。我打赌将主要用户组更改为svnusers会起作用,但这似乎是一种黑客行为。这意味着subversion会劫持unix权限,从根本上改变系统的安全性。这是一种黑客行为。通常在存储库目录上设置setGID位。如果设置了,则始终会设置正确的组。这似乎有效。我运行了chmod-rg+s
。现在整个存储库是rwxrws--subversion subversion
。用户在subversion
组中。我们看看这是否有效。如果没有,我将研究Apache或svnserv,但我希望避免运行另一个守护程序。