I recently recieved an email from Jonathan Arthur of OpenWebDesign, asking how I had managed to setup Subversion on Dreamhost with multiple SVN users. The Dreamhost SVN wiki page goes some way to explain the process, but heres what I did (with success);
The process is a little tricky, due to folder permissions and the way dreamhost sets up users and groups.
This mini-guide assumes you already have one repository setup and are able to access it with a single subversion user – as described in the dh SVN wiki page
To start, create new users (with shell accounts) to your server; I created ones with usernames like mattsvn etc. Do this in your dh web control panel, under Users→manage users→Add New User. Each of these users will get their own home directory on the dreamhost box.
Now (still in the web panel) create a new group; (Users→Groups→Add New Custom Group) call it something like devteamsvn – and add all your new svn users into this group (also add the user you already had svn working for)
Next – follow dreamhost’s instructions to create ssh public/private keys for each of these users in turn. (doing this in each of the users new home directories)
Take a note of all the passphrases you use – and also keep the public session keys you generate for each user – So they can be handed out for use with “Putty Pageant”: later.
Now, terminal into your dh box (as the orginal ssh user who created the repository to begin with) and change the group ownership (recursively) on the subversion repository folder; ie.
chgrp devteamsvn -R ~/path/to/your/svn/repository
And make sure that this group has full read/write/execute access to all files inside here with;
chmod 775 -R ~/path/to/your/svn/repository
Also – if you have a live web accessible folder online that you want everyone to be able to checkout into; you’ll need to change the group there as well;
chgrp devteamsvn -R ~/path/to/your/web/folder/you/plan/to/checkout/to
chmod 775 -R ~/path/to/your/web/folder/you/plan/to/checkout/to
For this user to checkout/update from the repository on the dreamhost to the dreamhost web folder – simply terminal into the dreamhost box using the new svn users details and run the command;
svn up /home/orginal_ssh_users_name/path/to/your/web/folder/you/checkout/to