Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

So as of two days ago I had myself a shiny new SVN server. I set it up for WebDAV with no problems. It wasn't until I tried to host multiple projects that I ran into trouble.

At first, I had all of the project folders in one repository. But then I saw the error in my ways and switched to multiple repositories. Rather than editing the /etc/apache2/sites-available/default file with every new project, I selected to use the svnserve daemon.

So, the problem is, I can only make commits from Eclipse when the daemon is run as root. If not, I get a "Permission Denied" error. Any ideas? Here are the directory stats:

    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

EDIT

I tried the suggested re-checkout with the daemon not running as root, and still no cigar. Same permission error.

EDIT 2

I also tried running the daemon as the user svn, but no such luck. At one point I screwed up my primary group and no longer had sudo privileges! I had to hack into my own server through a buddy's account.

share|improve this question
add comment

1 Answer 1

up vote 2 down vote accepted

You're having a classic permission issue. Your repository is possibly located at a location like /some/dir/repos with /some being svn not being able to access /some because svn does not own /some and:

  • svn is in the group of /some, but the permissions are set like 700
  • svn is not in the group of /some and the permissions are set like 750

In both cases, svn cannot descend in /some because the execute-bit is missing on /some.

Two solutions are possible:

  • add the other execute bit to /some so the permissions look like 751
  • add the group execute bit to /some and make sure the user svn is a member of the group

You need to check all directories above your repo. So if your path looks like /i/am/very/long/repos, you need to check /i, /i/am till /i/am/very/long/repos.

share|improve this answer
    
Perfect! That did it. Thank you! –  Peaches491 Jun 7 '11 at 15:14
    
Simply don't mix up http/webdav and direct file access. If root crippled file rights, do chown -R www-data:wwdata /path/to/repository (exchange www-data with your matching user/group). –  mbx Jun 7 '11 at 15:29
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.