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

Linux SVN服务器仅在以root用户身份运行时允许提交,linux,svn,ubuntu,permissions,Linux,Svn,Ubuntu,Permissions,所以,两天前,我有了一台全新的SVN服务器。我为WebDAV设置了它,没有问题。直到我尝试主持多个项目,我才遇到了麻烦 起初,我将所有项目文件夹放在一个存储库中。但后来我发现了我的错误,并切换到多个存储库。我没有在每个新项目中编辑/etc/apache2/sites available/default文件,而是选择使用svnserve deamon 因此,问题是,当守护进程以root用户身份运行时,我只能从Eclipse进行提交。如果不是,我将获得一个“权限被拒绝”错误。有什么想法吗?以下是目录

所以,两天前,我有了一台全新的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-usvn--svnserve-d-r/storage/svn运行守护程序/ 这允许我以用户“svn”的身份运行deamon,而无需输入密码。(出于安全原因,svn没有密码或外壳) 最后,我仔细检查了我所有的配置文件,并且能够完全按照希望的那样进行签出。 存储库目录

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文件的硬链接)

当您提交或以root身份签出时,会发生奇怪的事情。尝试签出一个给定的存储库,而不是以root用户身份签出,如果这样做有效,您应该能够在以后以普通用户的身份提交给它


如果仍然不起作用,请检查存储库本身的权限。可能没有设置权限以允许非根用户提交访问。

可能svn守护程序对您的存储库具有读取权限,但没有写入权限


首先找出svn守护进程在哪个用户下运行。然后将完整的存储库发送给该用户。这样,守护进程也可以编写您的提交

我已经发布了权限。讨论中的存储库是上面列出的EmpowerView。另外,我没有以root身份签出,只是以root身份运行守护程序。这就是您所指的吗?根据列出的权限,您不能以“svn”用户的身份提交/签出?嗯。以root用户身份运行守护程序会为守护程序所做的一切赋予root用户权限。我问这个问题的唯一原因是因为我听说以root用户身份运行守护程序不是“犹太”(良好做法)对吗?啊,我会说是的,对。您希望建立对存储库的权限,以便在没有根权限的情况下对其进行操作。一般来说,在*nix中,您不希望以root用户身份运行。这样做的原因很多,也不一定很明显(毕竟,您为什么不想将该帐户用作不受限制的访问呢?),但您应该避免在不需要它的情况下使用root。