编辑

编辑

两天前,我拥有了一台崭新的 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,但权限设置为 700
  • svn不属于该组/some,并且权限设置为 750

在这两种情况下,由于 上缺少执行位,因此svn无法下降。/some/some

有两种解决方案:

  • 添加另一个执行位,/some使权限看起来像 751
  • 添加组执行位/some并确保用户svn是该组的成员

您需要检查 repo 上方的所有目录。因此,如果您的路径看起来像/i/am/very/long/repos,则需要检查/i/i/am直到/i/am/very/long/repos

相关内容