SVN+Apache
Apache
1 |
# yum install httpd |
1 |
# nano /etc/httpd/conf/httpd.conf |
1 |
ServerName 192.168.1.71:80 |
Centos 6
1 |
# service httpd start |
1 |
# chkconfig --level 2345 httpd on |
Centos 7
1 |
# systemctl start httpd |
1 |
# systemctl enable httpd |
SVN
1.Устанавливаем SVN и модуль Apache для SVN — DAV
1 |
# yum install subversion mod_dav_svn |
2.Создаем репозитарий. Выставляем корректные права на репозитарий
1 |
# mkdir -p /home/svn |
1 |
# svnadmin create /home/svn/joomla |
1 |
# chown -R apache:apache /home/svn/joomla |
3.Создаем пользователей для доступа к SVN-репозитарию
1 |
# htpasswd -cm /etc/svnusers svnuser1 |
1 2 3 |
New password: Re-type new password: Adding password for user svnuser1 |
1 |
# htpasswd -m /etc/svnusers svnuser2 |
1 2 3 |
New password: Re-type new password: Adding password for user svnuser2 |
1 |
# cat /etc/svnusers |
1 2 |
svnuser1:$apr1$8ht1ODsH$dgbRL3oJug5jWmdMmT97d/ svnuser2:$apr1$wZcYr0EK$A1SCry8pX.40pzibmXYGS/ |
4.Настраиваем Apache на поддержку SVN
Centos 6
1 |
# cat /etc/httpd/conf.d/subversion.conf | grep -v \# | grep -v ^$ |
1 2 3 4 5 6 7 8 9 10 |
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /home/svn AuthType Basic AuthName "Subversion repositaries" AuthUserFile /etc/svnusers Require valid-user </Location> |
1 |
# apachectl configtest |
1 |
Syntax OK |
1 |
# /etc/init.d/httpd restart |
Centos 7
1 |
# nano /etc/httpd/conf.modules.d/10-subversion.conf |
1 2 3 4 5 6 7 8 9 10 11 |
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so LoadModule dontdothat_module modules/mod_dontdothat.so <Location /repos> DAV svn SVNParentPath /home/svn AuthType Basic AuthName "Subversion repositaries" AuthUserFile /etc/svnusers Require valid-user </Location> |
1 |
# systemctl restart httpd |
5.Доступность SVN-репозитария через Web-интерфейс/http-протокол
http://192.168.1.71/repos/joomla/
Проверка с командной строки используя протокол http
1 |
# svn co http://192.168.1.71/repos/joomla --username svnuser1 |
6.Ограничение прав пользователей на доступ
Создаем файл
1 |
/etc/svnaccess |
в формате
1 2 |
[reponame:repopath] user = access |
1 |
reponame |
– имя репозитария
1 |
repopath |
– путь к каталогу/файлу внутри репозитария
1 |
user |
– имя пользователя (или @groupname – имя группы)
1 |
access |
— права (r-чтение, w-запись, пустое место — отсутствие прав)
#Добавляем пользователей в группу
1 2 |
[groups] group1 = svnuser1, svnuser2 |
#Запрещаем для всех пользователей(*) любой доступ(= ) для всех репозитариев([/])
1 2 |
[/] * = |
#Группе group1 даем доступ на чтение-запись на все репозитарии
1 |
@group1 = rw |
Другие примеры
#даем доступ на чтение-запись в репозитарий joomla всем пользователям,состоящим в группе group1
1 2 |
[joomla:/] @group1 = rw |
либо
#даем право чтение для пользователей,состоящих в группе group1 и права чтения-записи для пользователя svnuser3 на каталог /tags в репозитарий joomla
1 2 3 |
[joomla:/tags] @group1 = r svnuser3 = rw |
Подключаем использование файла
1 |
/etc/svnaccess |
Centos 6
1 |
# nano /etc/httpd/conf.d/subversion.conf |
Centos 7
1 |
# nano /etc/httpd/conf.modules.d/10-subversion.conf |
1 2 3 4 5 6 |
<Location /repos> DAV svn SVNParentPath /home/svn AuthzSVNAccessFile /etc/svnaccess ………………… </Location> |
SVN+Svnserve
Доступ к SVN-репозитарию используя протокол svn
Серверное приложение, ответственное за предоставление такой возможности, называется svnserve и является частью стандартной установки Subversion
1.Определяем опции, с которыми будет запускаться svnserve
1 |
# cat /etc/sysconfig/svnserve |
1 |
OPTIONS="-d -r /home/svn" |
# -d в режиме демона/службы
# -r – домаший каталог SVN
2.Запуск и добавление в автозагрузку службы svnserver
Centos 7
1 |
# systemctl ebnable svnserve |
1 |
# systemctl start svnserve |
Centos 6
1 |
# chkconfig --level 2345 svnserve on |
1 |
# service svnserve start |
3.Настройка доступа и прав пользователей для SVN-репозитария
Запретить доступ анонимным пользователям, включаем управление доступом для репозитария joomla
1 |
# nano /home/svn/joomla/conf/svnserve.conf |
1 2 3 4 |
anon-access = none password-db = passwd authz-db = authz realm = Joomla Repository |
Создаем файл с содержанием логинов/паролей пользователей
1 |
# nano /home/svn/joomla/conf/passwd |
1 2 3 |
[users] svnuser1 = 123 svnuser2 = 456 |
Определяем права для созданных пользователей
Например, добавляем их в группу и даем право группе «чтение-запись»
1 |
# nano /home/svn/joomla/conf/authz |
1 2 3 4 5 |
[groups] group1 = svnuser1,svnuser2 [/] @group1 = rw |
4.Доступ к SVN репозитарию через svn-протокол
1 |
# svn co svn://192.168.1.71/joomla /home/workdir |
5.Настройка iptables для подключения по svn-протоколу
1 |
# iptables -A INPUT -p tcp --dport 3690 -j ACCEPT |
1 |
# /etc/init.d/iptables save |
Источник:
http://wiki.linuxformat.ru/wiki/LXF71:Subversion