两天前,我拥有了一台崭新的 SVN 服务器。我毫无问题地为 WebDAV 设置了它。直到我尝试托管多个项目时才遇到麻烦。
起初,我将所有项目文件夹都放在一个存储库中。但后来我发现我的方法有误,于是改用多个存储库。/etc/apache2/sites-available/default
我选择使用 svnserve 守护程序,而不是在每个新项目中编辑文件。
因此,问题是,只有当守护进程以 root 身份运行时,我才能从 Eclipse 进行提交。否则,我会收到“权限被拒绝”错误。有什么想法吗?以下是目录统计信息:
drwxr-xr-x 6 root root 4096 2011-06-07 09:38 .
drwxr-xr-x 4 root root 4096 2011-06-05 00:48 ..
lrwxrwxrwx 1 svn svn 6 2011-06-06 22:35 all -> repos/
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:53 EmpowerView
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:54 GoogleVoicemail
-rw-rw-r-- 2 svn svn 307 2011-06-07 08:47 passwd
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:54 PerlinNoise
drw-rw-r-- 7 svn svn 4096 2011-06-05 02:15 repos
-rw-rw-r-- 3 svn svn 2278 2011-06-07 08:46 svnserve.conf
编辑
我尝试了建议的重新检查,但守护进程没有以 root 身份运行,仍然没有成功。权限错误相同。
编辑2
我也尝试以用户 svn 的身份运行守护进程,但运气不佳。有一次我搞砸了我的主要组,不再拥有 sudo 权限!我不得不通过好友的帐户入侵我自己的服务器。
答案1
您遇到了典型的权限问题。您的存储库可能位于类似以下位置,/some/dir/repos
由于svn 不拥有而/some
无法svn
访问:/some
/some
svn
属于 组/some
,但权限设置为 700svn
不属于该组/some
,并且权限设置为 750
在这两种情况下,由于 上缺少执行位,因此svn
无法下降。/some
/some
有两种解决方案:
- 添加另一个执行位,
/some
使权限看起来像 751 - 添加组执行位
/some
并确保用户svn
是该组的成员
您需要检查 repo 上方的所有目录。因此,如果您的路径看起来像/i/am/very/long/repos
,则需要检查/i
,/i/am
直到/i/am/very/long/repos
。