Step 1: Install subversion
[root@server ~]# yum -y install subversion
Step 2: Create a username under which the subversion daemon will run and set a password for it
sudo yum install subversion
sudo /usr/sbin/useradd svn
sudo passwd svn
su – svn
cd ~
mkdir repositories
cd repositories
svnadmin create myproject
ll myproject
-rw-rw-r– 1 svn svn 229 Nov 21 16:58 README.txt
drwxrwxr-x 2 svn svn 1024 Nov 21 16:58 conf
drwxrwsr-x 6 svn svn 1024 Nov 21 16:58 db
-r–r–r– 1 svn svn 2 Nov 21 16:58 format
drwxrwxr-x 2 svn svn 1024 Nov 21 16:58 hooks
drwxrwxr-x 2 svn svn 1024 Nov 21 16:58 locks
You need to edit “myproject/conf/svnserve.conf” and uncomment the following lines:
auth-access = write
password-db = passwd
and edit the password file “myproject/conf/passwd” adding a new user and password. Note that the password is stored in plain text. In the following example we have a user called “john” whose password is “foobar123”:
[users]
john = foobar123
And finally, as the svn user, start the subversion daemon like so:
svnserve -d -r /home/svn/repositories
Connect to svn://svn@hostname/myproject
[root@server ~]#Â /usr/sbin/useradd -m -d /home/svn svn [root@server ~]# passwd svn
Step 3: Login as the newly created username
[root@server ~]# su - svn [svn@server ~]$
Step 4: Create a directory named repositories (where you will create all the subversion projects) and access it
[svn@server ~]$ mkdir repositories [svn@server ~]$ cd repositories
Step 5: Create a project and list the contents of the newly created project (I chose to name mine “coolproject”)
[svn@server repositories]$ svnadmin create coolproject [svn@server repositories]$ ls -lh coolproject/ total 32K drwxrwxr-x 2 svn svn 4.0K Feb 27 17:42 conf drwxrwsr-x 6 svn svn 4.0K Feb 27 17:42 db -r--r--r-- 1 svn svn   2 Feb 27 17:42 format drwxrwxr-x 2 svn svn 4.0K Feb 27 17:42 hooks drwxrwxr-x 2 svn svn 4.0K Feb 27 17:42 locks -rw-rw-r-- 1 svn svn 229 Feb 27 17:42 README.txt
Step 6: Now it’s needed to enable write access and let subversion know which file is used to store credentials, for this we need to edit coolproject/conf/svnserve.conf and uncomment the following options:
auth-access = writepassword-db = passwd
[svn@server repositories]$ sed -i 's/# auth-access = write/auth-access = write/' coolproject/conf/svnserve.conf [svn@server repositories]$ sed -i 's/# password-db = passwd/password-db = passwd/' coolproject/conf/svnserve.conf
Step 7: Add the desired username and password to coolproject/conf/passwd file (make sure you replace yourusername and somepassword with the desired username and password)
[svn@server repositories]$ echo "yourusername = somepassword" >> coolproject/conf/passwd
Step 8: You can now start the subversion server using the following command
[svn@server repositories]$ svnserve -d -r /home/svn/repositories
Step 9: If for any reason you want to stop the subversion server (for example you want to create a new project and you need to restart it) use the following command to do so
[svn@server repositories]$ killall -9 svnserver
Congratulations! You have successfully installed and configured subversion on a RHEL/CentOS system, you may now connect to svn://[email protected]/coolproject and begin working on your project!
Hey there! I just wanted to ask if you ever
have any problems with hackers? My last blog (wordpress) was hacked and I ended up losing
a few months of hard work due to no backup.
Do you have any solutions to prevent hackers?
Hi, I had some experience with hackers that managed to gain access to some of my customer’s blogs, but all of them had backups.
Nowadays it’s mandatory to have a backup system, no matter what – that’s if you care about your site/work. The first thing you need to do is see how they managed to get in, for that you have your webserver’s logs, ftp logs, etc.
The first thing you should consider is to change the passwords to very strong ones (letters, numbers, symbols, 20 characters minimum) which obviously should not be dictionary based. It’s safer to have a strong password stored on a piece of paper than to have a weak one that you remember.
Change your admin page url and add a 2nd layer of protection by activating htaccess password protection (you will be required to enter a different username/password before accessing the admin area of your site).
I suggest switching from shared hosting to a VPS or even a dedicated server where you can set up custom environment, like a read only database for your blog, making your site’s files immutable, etc.
Also it might be a good idea to allow authenticating/posting only over VPN or from certain IP addresses.
hi…
good info on subversion setup, above mentioned step work on RHEL 7 with minor fixes.
1. After user creation basic file required to populated user home directory, also need to add user to wheel group.
2. require edit of /etc/sysconfig/svnserve file and add the custom home directory where we created svn repository.
3. fix selinux context with the command : chcon -t unconfined_exec_t $(which svnserve)
than restart the svn service with the command systemctl restart svnserve.service
volla… this work for me.