Доступ пользователя SVN к конфигурации определенных проектов - PullRequest
1 голос
/ 17 мая 2011

Я совершенно новичок в системах Unix ... играю около 2 недель. Мне удалось установить Subversion и создать хранилища.

Допустим, у нас есть пользователи:

internal_developer
external_developer_1
external_developer_2

у нас есть проекты:

repositories/project1
repositories/project2
repositories/project3

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

  1. internal_developer - может получить доступ ко всем проектам (rw)
  2. external_developer_1 - может получить доступ только к проекту1 (rw)
  3. external_developer_2 - может получить доступ только к project2 (rw)

когда я говорю «могу только получить доступ», это означает, что он не может видеть содержимое репозиториев / *, только проекты, с которыми он работает.

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


любая помощь приветствуется.

---

Edit. (пока не могу ответить на мой вопрос)

в файле /etc/apache2/mods-available/dav_svn.conf

в расположении AuthUserFile хранятся только имена пользователей и пароли.

тогда

необходимо добавить новую строку: AuthzSVNAccessFile /usr/passwd/svn.authz

затем идет синтаксис из Флойд ^^.

Я посмотрел здесь: Subversion - как мне управлять доступом пользователей к одному репозиторию, когда используется SVNParentPath?

А с группами это больше похоже на это.


Стил, осталась одна недостающая часть ... не могу настроить администратора для просмотра всех репозиториев, когда приходит http://xxxxxx/svn/

выдает ошибку

Запрещено
У вас нет прав доступа к / svn / на этом сервере.

даже я положил в svn.authz: ​​

[/]
@internal = rw

1 Ответ

1 голос
/ 17 мая 2011

Если вы используете Apache (Mod_Dav_Svn) для предоставления своего хранилища, вам нужно добавить поддержку Auth для Директивы в вашем файле apache conf

<location ...>
   ... 
   AuthType Basic
   AuthName "My Subversion repository"
   AuthUserFile /srv/svn/conf/passwd
</Location>

В файле, указанном в AuthUserFile, вы можете указать разрешениявам нужно вот так:

[/]
* =
[project1:/]
internal_developer = rw
external_developer_1 = 
external_developer_2 =
[project2:/]
internal_developer = rw
external_developer_1 =  rw
external_developer_2 =
[project2:/]
internal_developer = rw
external_developer_1 = 
external_developer_2 = rw

Вы также можете установить разрешения на более детальном уровне для каждой папки следующим образом:

[/project1:/public_folder]
* = r

Надеюсь, это поможет?

Вы также можете рассмотреть возможность использования стороннего поставщика для размещения своего кода, CodeSpaces.com делать хостинг Subversion с детальными разрешениями, плюс у вас нет головной боли при управлении собственной инфраструктурой, резервным копированием и т. Д....

...