On 7/17/2011 2:07 AM, Andy Canfield wrote:
> The most obvious authorization scheme is that of the host server; if
> there is a user named "andy" on that server with a password "jackel"
> then I would like to simply be able to talk to the subversion server as
> user named "andy" password "jackel". This is how ssh and sftp work. But
> apparently subversion can't handle that. True?
You can use individual accounts, the main trickiness is in making sure 
that the svn repository directory is group owned, group writable and 
that new files created within the repo/db tree are owned by the group 
and not the individual's primary group.  A quick "chmod -R g+s repo/db" 
after setting up the repository takes care of that.
Our server only allowed SSH public-key authentication, so the only way 
to login (other then physically at the console) is via the SSH keys.  So 
the "command=" line in the authorized_keys files is reasonably secure 
for our purposes.  Very few users actually have a way to get to the 
shell.  And most of those don't even know the password for their account 
on the server.
(Naturally, we run backups daily, just in case someone does figure out 
how to get a shell through the svnserve process and deletes a 
repository.  But if they can commit to the repository, there are more 
nefarious things they can do there too.)
We prefix our ssh-rsa lines in the ~/.ssh/authorized_keys file with:
command="/usr/bin/svnserve -t -r /var/svn",
no-agent-forwarding,no-pty,
no-port-forwarding,no-X11-forwarding
This also has the advantage that remote URL ends being:
svn+ssh://servername/repositoryname/path/within/repo
Instead of:
svn+ssh://servername/var/svn/repositoryname/path/within/repo
With SSH ~/.ssh/config files or by setting up PuTTY sessions correctly 
you can get rid of having the usernames / port numbers in the svn+ssh 
URL.  (We run our SSH servers on a non-standard port.)
Received on 2011-07-20 18:28:15 CEST