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

标签 linux svn ubuntu permissions

截至两天前,我拥有了一个 Shiny 的新 SVN 服务器。我将其设置为 WebDAV 没有任何问题。直到我尝试托管多个项目时才遇到了麻烦。

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

所以,问题是,当守护进程以 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

编辑

我尝试了建议的重新 checkout ,守护进程没有以 root 身份运行,但仍然没有雪茄。同样的权限错误。

编辑2

我也尝试以用户 svn 身份运行守护进程,但没有这样的运气。有一次我搞砸了我的主要组并且不再拥有 sudo 权限!我不得不通过好友的帐户侵入我自己的服务器

编辑 3 答案

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

首先,我删除了所有现有的结账,并杀死了守护进程。 然后我将所有存储库的所有权限设置为 774(见下文) 接下来,我使用此命令运行守护程序 sudo -u svn -- svnserve -d -r/storage/svn/ 这允许我以用户“svn”身份运行守护程序,而无需输入密码。 (出于安全考虑,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/文件夹中,我将硬链接(hard link)放置到上面的 passwd 和 svnserve.conf 文件)

最佳答案

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

首先找出svn守护进程在什么用户下运行。然后将完整存储库 chown 给该用户。这样守护进程也可以写入您的提交。

关于linux - SVN 服务器仅允许以 root 身份运行时提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266083/

相关文章:

android - android模拟器不启动,avd

SVN: "Inconsistent line ending style"- 故意用 ^M checkin 文件

svn - SVN不再在所有子文件夹中写入.svn吗?

svn - 移动本地 SVN 存储库

java - 无法在 ubuntu 16.0.4 TLS 上启动 tomcat 8

linux - 在 Perl 中测试 Device::SerialPort 上的数据是否可用

Linux SIGPIPE 服务器崩溃

php - 删除 .htaccess 中的 .php 扩展名不起作用

ubuntu - 如何在 Ubuntu 上安装 .rpm?

c - 等待用户空间中可能完成?