Как настроить доступ в DAV svn? - PullRequest
3 голосов
/ 19 июля 2011

Я пытаюсь ограничить доступ к хранилищу на моем локальном сервере Subversion. Я настроил его с помощью Apache и dav_svn_module и authz_svn_module. В настоящее время он работает отлично, пользователи могут входить в систему и могут совершать транзакции нормально.

Чего я хотел бы добиться, так это одного репозитория, который может быть прочитан и записан только одним пользователем.

Мой /etc/httpd/conf.d/subversion.conf выглядит следующим образом

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Subversion repositories"
      AuthUserFile /etc/svn-auth-users
      Require valid-user
      AuthzSVNAccessFile /etc/svnauthz.conf
   </LimitExcept>
</Location>

Мой /etc/svnauthz.conf выглядит следующим образом,

[groups]
devs = david.yell,user2,user3

[/]
$authenticated = rw
@devs = rw
* =

Однако в настоящее время это ограничивает доступ ко всем хранилищам на сервере, что далеко не идеально. Как мне настроить доступ так, чтобы он относился к одному репозиторию?

Дополнительно, это внутренний сервер, так что, хотя я ценю советы для производства, это не обязательно.

Обновление
Я обновил svnauthz.conf файл сейчас,

[groups]
devs = david.yell,user2,user3

[ProtectedRepo:/]
david.yell = rw
* = 

[/]
$authenticated = rw
@devs = rw
* =

Я пытаюсь использовать это как ссылку, http://svnbook.red -bean.com / ru / 1.4 / svn.serverconfig.pathbasedauthz.html , но здесь приводятся цитаты

Чтобы быть более конкретным: значение имен разделов является одним из Форма [имя-репозитория: путь] или форма [путь]. Если вы используете Директива SVNParentPath, тогда важно указать хранилище имена в ваших разделах. Если вы опустите их, то такой раздел, как [/ some / dir] будет соответствовать пути / some / dir в каждом хранилище.

Значит ли это, что мне нужно объявлять каждый репо на сервере? Что составляет около 30 в настоящее время

1 Ответ

1 голос
/ 03 июля 2014

Настройка управления доступом для каждого каталога, чтобы различать права пользователя для каждого репозитория / пути WEBDAV.

В случае Apache необходимо загрузить модуль mod_authz_svn, а затем добавить директиву AuthzSVNAccessFile (в файле httpd.conf), указывающую на ваш собственный файл правил.(Полное объяснение см. В разделе «Контроль доступа к каталогу».) Если вы используете svnserve, то вам нужно, чтобы переменная authz-db (в пределах svnserve.conf) указывала на ваш файл правил.

Можно установить более точные разрешения, используя второй модуль Apache httpd, mod_authz_svn.Этот модуль захватывает различные непрозрачные URL-адреса, передаваемые от клиента к серверу, просит mod_dav_svn их декодировать, а затем, возможно, накладывает вето на запросы на основе политик доступа, определенных в файле конфигурации.

Если вы создали Subversion из исходного кода,mod_authz_svn автоматически собирается и устанавливается вместе с mod_dav_svn.Многие бинарные дистрибутивы также устанавливают его автоматически.Чтобы убедиться, что он установлен правильно, убедитесь, что он идет сразу после директивы LoadModule mod_dav_svn в httpd.conf:

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...