SVN服务器仅在以root身份运行时允许提交

时间:2011-06-07 13:40:08

标签: linux svn ubuntu permissions

就在两天前,我有了一个闪亮的新SVN服务器。我为WebDAV设置没有问题。直到我试图托管多个项目,我遇到了麻烦。

首先,我将所有项目文件夹放在一个存储库中。但后来我以我的方式看到了错误,并切换到多个存储库。我没有使用每个新项目编辑/etc/apache2/sites-available/default文件,而是选择使用svnserve deamon。

所以,问题是,当守护进程以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特权!我不得不通过好友的帐户攻击我自己的服务器

编辑3 答案

好吧,经过几个小时的修补,这是我开始工作的设置。

首先我删除了任何现有的结账,并杀死了守护神。 然后我将所有权限设置为774用于我的所有存储库(见下文) 接下来,我用这个命令运行守护进程sudo -u svn - svnserve -d -r / storage / svn / 这使我能够在不输入密码的情况下以用户'svn'的身份运行deamon。 (出于安全原因,svn没有密码或shell) 最后,我仔细检查了所有配置文件,并且能够完全按照希望进行检查。 存储库目录

drwxr-xr-x 6 root root 4096 2011-06-07 10:34 .
drwxr-xr-x 4 root root 4096 2011-06-05 00:48 ..
lrwxrwxrwx 1 svn  svn     6 2011-06-06 22:35 all -> repos/
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:53 EmpowerView
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:54 GoogleVoicemail
-rwxrwxr-- 2 svn  svn   307 2011-06-07 08:47 passwd
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:54 PerlinNoise
drwxrwxr-- 7 svn  svn  4096 2011-06-05 02:15 repos
-rwxrwxr-- 3 svn  svn  2273 2011-06-07 09:50 svnserve.conf

(注意:我的所有存储库都共享通用编辑器和权限,因此在每个存储库conf /文件夹中,我将硬链接放到上面的passwd和svnserve.conf文件中)

2 个答案:

答案 0 :(得分:2)

可能svn守护程序对您的存储库具有读权限但不具有写权限。

首先找出svn守护程序运行的用户。然后将完整的存储库chown给该用户。这样守护进程也可以编写你的提交。

答案 1 :(得分:1)

当您以root身份提交或签出时,会发生奇怪的事情。尝试以root身份签出给定的存储库,如果可行,那么您应该能够以普通用户的身份提交它。

如果仍然无效,请检查存储库本身的权限。可能未设置权限以允许非root用户提交访问权限。