Настройка групп и прав в Subversion
Порой требуется разграничить права доступа участникам вашего сервера контроля версий, например для того, чтобы некоторые не имели доступ к конкретному репозиторию.
Для этого вам понадобится создать в системе файл svn-authz-access (называйте его как хотите) и прописать путь до файла в секцию настройки SVN в Apache.
Настройки
Открываем для редактирования файл /usr/local/etc/apache22/httpd.conf и добавляем в секцию <location /svn> запись о файле:
AuthzSVNAccessFile /home/svn/svn-authz-access
Информацию о секции можете посмотреть в предыдущем моем посте FreeBSD. Установка и настройка Subversion
Создадим и отредактируем файл svn-authz-access
touch /home/svn/svn-authz-access vi /home/svn/svn-authz-access
Группы
Группы перечисляются в столбик и напротив каждой группы указываются имена пользователей
[groups] devel = adw0rd, vasac tester = epsyl
Секция корня, где все репозитории
Указываются группы в столбик и права
[/] @devel = r * =
Секции для репозиториев
[pyha-ru:/] @devel = rw * = [example-com:/] @devel = rw @tester = rw * =
@GROUP = - для группы GROUP назначаются права.
* = - означает всем (other).
rw - чтение и запись.
r - чтение
w - запись
В итоге у нас должно получится два файла
Файл httpd.conf
<location /svn> DAV svn # разрешает выдавать перечень всех доступных хранилищ в папке SVNParentPath SVNListParentPath on SVNParentPath /home/svn/repos SVNPathAuthz off # включения базовой аутентификации, т.е. имя_пользователя/пароль AuthType Basic AuthName "Subversion repository" AuthUserFile /home/svn/svn-auth-file # предписывает, что только пользователям, предоставившим правильные имя_пользователя/пароль, # будет разрешён доступ к URL Require valid-user # Права и группы AuthzSVNAccessFile /home/svn/svn-authz-access </location>
Файл svn-authz-access
[groups] devel = adw0rd, vasac tester = epsyl
[/] @devel = r * = [pyha-ru:/] @devel = rw * = [example-com:/] @devel = rw @tester = rw * =
Перезагружаем Apache
apachectl restart
Ну вот и все, теперь мы разграничили права :)
Комментарии
Существует ли возможность назначить права на подпапку репозитрия ?
Попробуйте так:
спс большое
Есть ли возможность блокировать отдельные файлы?
Спасибо, уже сам нашел. Достаточно указать относительный путь к самому файлу.
Скажите пожалуйста, можно ли назначить права сразу всем репозиториям в определенном каталоге, например так:
Т.е. любой пользователь имеет право read каталога www по всех репозиториях.
Спасибо.
Не знаю, и нет возможности проверить, давно уже пользуюсь git и gitolite.
А вы пробовали сами запустить свой пример? С виду должно работать, я бы еще попробовал
Оставьте свой комментарий