Блог web-мастера POLYGLOTа О жизни, связанной с Linux, PHP, MySQL, JavaScript, AJAX, SVN, CSS и многим другим

22Янв/100

Настройка доступа ко множеству svn-репозиториев через один конфиг

subversion_logo
Передо мной стаяла задача настроить доступ ко множеству svn-репозиториев через один простой конфигурационный файл. После того как была выполнена установлена и настройка связки SVN (Subversion) + Apache сделать это было довольно просто. Необходимо пройти четыре простых этапа:

  1. Создание svn-репозиториев
  2. Создание пользователей svn
  3. Настройка доступов к репозиториям  через конфигурационный файл
  4. Внесение изменений в subversion.conf

Рассмотрим каждый из этапов подробнее …

Создание svn-репозиториев

Перед созданием репозиториев необходимо создать для них одну родительскую директорию, например,
mkdir /svn/repos

А далее внутри нее нужно уже создать все необходимые репозитории
svnadmin create имя_репозитория_1
svnadmin create имя_репозитория_2

Не забудьте дать apache полный доступ к репозиторию, назначив владельцем
chown apache.apache -R repos
Создание пользователей svn

Создадим папку для управления доступом, например,
mkdir /svn/access
И добавим туда пользователей одной простой строкой
htpasswd -bcm /svn/access/users user_name user_password
, где

  • b – флаг для указания пароля прямо в строке создания пользователя;
  • с – флаг, выполняющий создание файла с пользователями users и должен присутствовать только при создании первого пользователя;
  • m – флаг, отвечающий за хранения паролей не в открытом виде, а в виде хеша.

Настройка доступов к репозиториям через конфигурационный файл

Создадим в папке /svn/access файл control и наполним его примерно следующим содержимым
[/]
* =
[groups]
repo1_group1 = user1
repo2_group1 = user2, user3
repo2_group2 = user1, user4
...
[repo1:/]
@repo1_group1 = rw
[repo2:/]
@repo2_group1 = r
@repo2_group2 = rw
...

Прокомментирую вышеприведенный код:

  1. В первых двух строках мы закрываем доступ к корневой папке репозиториев
  2. В секции groups мы определяем группы доступа (repo1_group1, repo2_group1, …) к репозиториям для пользователей (user1, user2, …)
  3. Ниже расположены названия репозиториев с указанием групп доступа и уровнем доступа (r – чтение; w - запись)

Внесение изменений в subversion.conf

Далее нужно внести в конфигурационный файл связки SVN и Apache следующий код, который, думаю, в комментариях не нуждается.
<Location /syssvn>
DAV svn
SVNParentPath /svn/repos
AuthzSVNAccessFile /svn/access/control
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repositories "
AuthUserFile /svn/access/users
</Location>

После всех этих махинаций мы получили удобное разграничение доступа между пользователями и доступ к репозиториям через урл вида
http://you_ip/syssvn/repo_name

Связано с категорией: Linux, Subversion Оставить комментарий
Комментарии (0) Пинги (0)

Пока нет комментариев.


Оставить комментарий


Security Code:

Нет обратных ссылок на эту запись.

Облако меток

Apache Cron crontab PHP Subversion WebMoney WMU WMZ Мир Привет программист

Облако тегов плагина WP Cumulus от сайта "Плагины и шаблоны для WordPress" требует для просмотра Flash Player 9 или выше.

Последние записи

Счетчики

Реклама