Устанавливаем
сервер svn и необходимые модули apache
# yum install mod_dav_svn mod_ssl subversion
Создаем репозиторий project в папке
/var/www/svn
# mkdir /var/www/svn
# svnadmin create /var/www/svn/project
Настраиваем доступ к svn через https
# vi /etc/httpd/conf.d/subversion.conf
<location /svn >
DAV svn # запросы по данному пути будут направляться к SVN серверу
SVNParentPath /var/www/svn # путь до репозитория
SVNListParentPath on # формировать список репозиториев и файлов в них при просмотре через браузер
# Limit write permission to list of valid users.
# <limitexcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
SSLRequireSSL # необходимо шифрованное соединение по протоколу https
AuthType Basic # тип авторизации - базовая
AuthName “SVN repositories login”
AuthUserFile /etc/svn-access # файл с пользователями и паролями
AuthzSVNAccessFile /etc/svn-perm # файл доступа к репозиториям
Require valid-user # авторизация обязательна
# </limitexcept>
</location>
Перезапускаем apache
# /etc/init.d/httpd restart
Указываем пользователей, которые будут
иметь доступ к репозиториям и права,
какие они будут иметь.
Создадаем файл пользователей и паролей
для авторизации
# touch /etc/svn-access
# htpasswd /etc/svn-access prog
New password:
Re-type new password:
Adding password for user prog
Теперь сделаем файл прав доступа
заведенным пользователям
# vi /var/www/svn/conf/svn-perm
В файле укажем, что доступ ко всем
репозиториям любым пользователям
запрещен, а пользователю prog разрешена запись и чтение из всех
репозиториев
[/]
* =
prog = rw
Теперь назначим всей папке svn и вложенным
подпапкам и файлам пользователя apache, а
иначе он не сможет получить доступ до
репозиториев и всё что мы получим, это
сообщение об ошибке “You don’t have permission
to access /svn/ on this server.”
# chown -R apache:apache /var/www/svn
Проверяем настройку
https://server_ip/svn/project
Вводим логин и пароль и получаем слещующее:
Revision 0: /
Как результат мы получили svn сервер с доступом только по защищенному соединению https (по http будем получать “You don't have permission to access”) с использованием логина и пароля (/etc/svn-access) и распределением прав доступа для пользователей (файл svn-perm).