0

I have multiple svn repositories on my server. For example:

/var/svn/repo1
/var/svn/repo2
/var/svn/repo3

I wanted to give access to a client to the repo2 only so I created a user 'client' and provided him SSH access. Now, the client can checkout the repo2 as:

svn co svn+ssh://client@<public-ip>/var/svn/repo2

But the problem is that he can SSH into the server using his username (client) and password and can mess with other files. He can also checkout all other repositories. How can I restrict client to just be able to checkout repo2.

He should not be able to:

  1. Access any other repository
  2. Commit to the repo2
  3. SSH the server

Is it even wise to give him permission to checkout the repository?

Thanks.

1

When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository's database files.

But even in the case of tunneling, you can still use the svnserve.conf file to block access, by simply setting auth-access = read or auth-access = none.

  • Thanks. but I want only my client not to be able to commit anything to the repository. Making this change will even not allow me to commit anything. I will have to go and replace 'read' or 'none' with 'write' in order to be able to commit myself. Isn't there any way I can enforce this policy on per user basis? – Undefined Nov 10 '11 at 7:54
  • svnserve.conf have ACL on per-user/per group basis – Lazy Badger Nov 10 '11 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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