Установка Subversion на базе Ubuntu 14.04 Trusty Tahr / Debian 8 Jessie. Разграничение прав пользователей Subversion
Разберем как развернуть систему управления версиями Subversion (SVN) на Ubuntu 14.04 Trusty Tahr. Так же данная инструкция работает на Debian 8 Jessie. Рассмотрим базовые параметры управления SVN (Создание, удалении репозиториев), разграничение прав пользователей SVN.
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
sudo apt-get update && sudo apt-get upgrade -y
Добавляем системного пользователя (subversion), который будет владельцем репозитория и от него будет запускаться демон (SVN):
sudo adduser subversion --system --shell /sbin/nologin --group --disabled-password --home /var/svn
Назначаем права доступа к папке для размещения репозиториев (SVN):
sudo chown -R subversion:subversion /var/svn sudo chmod -R 775 /var/svn
Установка Subversion
Устанавливаем Subversion из репозиториев:
sudo apt-get install subversion
Создаем стартовый скрипт SVN сервера:
sudo nano /etc/init.d/svnserve
Вписываем в него следующее:
#!/bin/sh ### BEGIN INIT INFO # Provides: svnserve # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop svnserve # Description: Start/stop svnserve ### END INIT INFO test -f /usr/bin/svnserve || exit 0 OPTIONS="-d -T -r /var/svn" case "$1" in start) echo -n "Starting subversion daemon:" echo -n " svnserve" start-stop-daemon --start --quiet --chuid subversion:subversion --exec /usr/bin/svnserve -- $OPTIONS echo "." ;; stop) echo -n "Stopping subversion daemon:" echo -n " svnserve" start-stop-daemon --stop --quiet --exec /usr/bin/svnserve echo "." ;; reload) ;; force-reload) $0 restart ;; restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/subversion (start|stop|reload|restart)" exit 1 ;; esac exit 0
Делаем скрипт исполняемым и добавляем в автозагрузку:
sudo chmod a+x /etc/init.d/svnserve sudo update-rc.d svnserve defaults
Установка SVN завершена. Можно приступать к созданию репозиториев и настройке доступа к ним.
Управление репозиториями Subversion
Приведу пример основных команд для управления системой контроля версий SVN посредством командной строки.
Создание репозитория:
svnadmin create "/path/to/repository"
Создание репозитория использующий Berkeley-DB базу данных:
svnadmin create --fs-type bdb /var/svn/jakonda.test
Создание репозитория использующий FSFS базу данных:
svnadmin create --fs-type fsfs /var/svn/jakonda.test
[stextbox id=’info’]После создания репозитория, не забываем назначить ему права доступа, как у корневой папки размещения репозиториев.[/stextbox]
Удаление репозитория:
svn delete "/path"
Копирование репозитория:
svn copy "/source" "/target"
Перемещение репозитория:
svn move "/source" "/target"
Импорт в репозиторий SVN локальный проект:
svn import --username=user /local/path /path/to/repository
Получить из репозитория рабочую копию (checkout):
svn co --username=user svn://hostname/svn/repository /local/path
Получить версию для публикации\компиляции (без базы SVN):
svn export --username=user svn://hostname/svn/repository /local/path
Разграничение прав пользователей Subversion
Настройка доступа к репозиторию выполняется с помощью конфигурационных файлов. Конфигурационный файл и файлы с пользователями и настройками доступа хранятся в папке conf в корне репозитория (в нашем примере это /var/svn/jakonda.test/conf)
Основной конфигурационный файл svnserve.conf:
[general] # Доступ c анонимным доступом ("write", "read" или "none") anon-access = none # Доступ для авторизованых пользователей:("write", "read" или "none") auth-access = write # Имя файла с пользователями password-db = passwd # Имя файла с правами authz-db = authz # Названия репозитория realm = My First Repository
Файл содержащий пользователей и пароли (пароли хранятся в открытом виде) passwd:
[users] user1 = password1 user2 = password2
Файл содержащий группы пользователей и права на репозиторий или на часть его athz:
# Группы [groups] group1 = user1,user2 # Права на корень # группе group1 только для чтения # пользователю user2 полный доступ # всем остальным запретить доступ [/] @group1 = r user2 = rw * = r
Настройка WebDAV доступа к Subversion
Устанавливаем необходимые зависимости:
sudo apt-get install apache2 libapache2-svn libapache2-mod-svn -y
Настраиваем политику доступа к репозиториям subversion через apache. Редактируем файл конфигурации apache:
sudo nano /etc/apache2/mods-available/dav_svn.conf
Приводим файл к виду:
<Location /svn> # Включение доступа к репозиторию subversion DAV svn # Путь к конкретному репозиторию #SVNPath /var/lib/svn # Альтернатива SVNPath. Если необходимо доступ к нескольких репозиториям, # располагающимся в одной директории. # Задается либо SVNPath, либо SVNParentPath. Оба параметра одновременно # задавать нельзя. SVNParentPath /var/svn-repos # Включение аутентификации AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
Далее, необходимо задать пользователей, которым разрешен доступ к subversion через apache:
# Создается файл пользователей и добавляется пользователь jakonda1 sudo htpasswd -c /etc/apache2/dav_svn.passwd jakonda1 # Добавляется пользователь jakonda2 sudo htpasswd /etc/apache2/dav_svn.passwd jakonda2
Для применения изменений, перезапускаем apache:
sudo service apache2 restart
Разрешаем доступ к репозиториям для http-сервера (www-data) и пользователям из группы subversion:
sudo chown -R www-data:subversion /var/svn
На этом установка и настройка Subversion закончена. SVN готов к работе.
Понравилась или оказалась полезной статья, поблагодари автора
Обсуждение
Нет комментариев.