Как я настраиваю управление доступом в SVN?

Я открыл репозиторий с помощью SVN и загрузил проекты. Существуют многочисленные пользователи, работающие над этими проектами. Но, не все требуют доступа ко всем проектам. Я хочу настроить полномочия пользователя для каждого проекта.

Как я могу достигнуть этого?

80
задан Boann 21 July 2019 в 23:01
поделиться

6 ответов

В Вашем папка svn\repos\YourRepo\conf Вы найдете два файла, authz и passwd. Это два, которые необходимо скорректировать.

В файл passwd необходимо добавить некоторые имена пользователей и пароли. Я предполагаю, что Вы уже сделали это, так как у Вас есть люди, использующие его:

[users]
User1=password1
User2=password2

Тогда Вы хотите присвоить полномочия соответственно с файл authz :

Создают концептуальные группы, которые Вы хотите и добавляете людей к нему:

[groups]
allaccess = user1
someaccess = user2

Тогда выбирают, какой доступ они имеют и из полномочий и из уровня проекта.

Так позволяют нам предоставить наш "весь доступ" парни весь доступ от корня:

[/]
@allaccess = rw

, Но только предоставляют наш "некоторый доступ" доступ только для чтения парней к некоторому более низкому проекту уровня:

[/someproject]
@someaccess = r

Вы также найдете некоторую простую документацию в authz и passwd файлы.

82
ответ дан Constantin 24 November 2019 в 09:55
поделиться

@Stephen Bailey

Для завершения ответа можно также делегировать пользовательские права менеджеру проектов через файл простого текста в репозитории.

, Чтобы сделать это, Вы устанавливаете свою базу данных SVN со значением по умолчанию authz файл, содержащий следующее.

###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....

[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =

[/admin/acl_descriptions.txt]
@projadmins = rw

Это значение по умолчанию authz файл разрешает администраторов SVN изменять простой файл видимого текста в Вашем репозитории SVN, названном '/admin/acl_descriptions.txt' , в котором администраторы SVN или менеджеры проектов изменят и зарегистрируют пользователей.

Тогда Вы устанавливаете рычаг перед фиксацией, который обнаружит, если пересмотр будет состоять из того файла (и только того файла).

, Если это, этот рычаг, сценарии проверят содержание Вашего файла простого текста и проверят, совместима ли каждая строка с правильным синтаксисом SVN.

Тогда рычаг постфиксации обновит \conf\authz файл с конкатенация из:

  • ШАБЛОН authz файл, представленный выше
  • файл /admin/acl_descriptions.txt

простого текста, первое повторение сделано администратором SVN, он добавляет:

[groups]
projadmins = zzzz

Он фиксирует свою модификацию, и это обновляет authz файл.

Тогда менеджер проектов 'zzzz' может добавить, удалить или объявить любую группу пользователей и любых пользователей, которых он хочет. Он фиксирует файл и authz, файл обновляется.

Тот путь, администратор SVN не должен следовать ни за кем и всеми пользователями для всех репозиториев SVN .

27
ответ дан Boann 24 November 2019 в 09:55
поделиться

Можно использовать svn+ssh: и затем это основано на управлении доступом в репозиторий в данном местоположении.

Это - то, как я размещаю репозиторий группы проекта в своем Uni, где я не могу установить ничто больше. Просто наличие каталога, которым группа владеет, и рабочий svn-администратор (или независимо от того, что это было) там означает, что я не должен был реализовывать конфигурацию.

8
ответ дан Boann 24 November 2019 в 09:55
поделиться

Хотя я предположил бы, что подход Apache лучше, Подача SVN хорошо работает и довольно проста.

Принятие Вашего репозитория называют "my_repo", и это хранится в c:\svn_repos:

  1. Создают файл, названный "passwd" в "C:\svn_repos\my_repo\conf". Этот файл должен быть похожим:

    [Users]
    username = password
    john = johns_password
    steve = steves_password
    
  2. В c:\svn_repos\my_repo\conf\svnserve.conf устанавливает

    [general]
    password-db = passwd
    auth-access=read
    auth-access=write
    

, Это вынудит пользователей войти в систему в чтение или записать в этот репозиторий.

Выполняют эти шаги для каждого репозитория, только включая соответствующих пользователей в passwd файл для каждого репозитория.

5
ответ дан Boann 24 November 2019 в 09:55
поделиться

Лучший способ состоит в том, чтобы настроить Apache и установить доступ через него. Проверьте svn книга для справки. Если Вы не хотите использовать Apache, можно также сделать минималистическое управление доступом с помощью svnserve.

3
ответ дан Mladen Mihajlovic 24 November 2019 в 09:55
поделиться

Одна ловушка, которая меня поймала:

[repos:/path/to/dir/] # this won't work

но

[repos:/path/to/dir]  # this is right

Вам не нужно включать в конец косую черту в каталоге, иначе вы увидите 403 для запроса OPTIONS.

26
ответ дан 24 November 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: