Контроль доступа для нескольких проектов с использованием SVN - PullRequest
0 голосов
/ 07 октября 2009

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

/srv
|--svn
   |--repos
      |-- conf
          |-- passwd
          |-- authz
      |-- projectX
      |-- projectY
      |-- projectZ

записи projectX / conf / svnserve.conf для projectX:

[general]
anon-access = none
auth-access = write
password-db = /srv/svn/repos/conf/passwd
authz-db = /srv/svn/repos/conf/authz
realm = Project Repository

Та же конфигурация используется для projectY и projectZ. Записи для / srv / svn / repos / conf / passwd:

[users]
user1 = password
user2 = password
user3 = password

Записи для / srv / svn / repos / conf / authz: ​​

[/]
* = 
user1 = rw
[projectX:/]
user2 = rw
user3 = r
[projectY:/]
user3 = rw
user2 = r
[projectZ:/]
user2 = r
user3 = r

Итак, user2 должен иметь доступ на чтение и запись к projectX, а user3 должен иметь доступ только на чтение к projectX. Но только user1 может получить доступ ко всем этим репозиториям. user2 и user3 никогда не могут получить доступ ни к одному из репозиториев. Каждый раз, когда выдается сообщение об ошибке: Подтвердить сбой (Авторизация не удалась!) Может кто-нибудь, пожалуйста, помогите мне найти мою ошибку? Я использую версию 1.6.5 Subversion на сервере и 1.6.4 на клиенте.

Ответы [ 4 ]

1 голос
/ 13 августа 2010

Я успешно использовал эту структуру с Subversion 1.4:

Subversion
|-- Config
    |-- a-users
    |-- b-users
|--Repositories
    |-- x-repos
        |-- conf
            |-- svnserve.conf
    |-- y-repos
        |-- conf
            |-- svnserve.conf

... где файлы svnserve.conf содержали такую ​​строку:

password-db = ../../../Config/a-users

Таким образом, я могу использовать один файл password-db для любого количества репозиториев или иметь отдельный файл password-db для каждого хранилища.

Если вы используете Subversion> 1.4, вам нужно посмотреть, как изменилась конфигурация в более новых версиях. Один момент заключается в том, что, по крайней мере в 1.4, относительные пути работают. Надеюсь, это поможет.

Обновление: я нахожусь в Unix (Mac OS X).

0 голосов
/ 07 октября 2009

Я думаю, это потому, что user2 и user3 не имеют доступа к [/].

Это только мое предположение; Я действительно не знаю, как настроить SVN.

0 голосов
/ 07 октября 2009

Убедитесь, что у вас есть правильные значения CaSe в репозиториях (projectX ...) как в authz, так и в URL клиента. У Subversion есть неприятная проблема при использовании authz, когда извлечения учитываются с учетом регистра в , но при фиксации учитывается регистр.

Вот пример:

svn co svn://server/projectx/trunk .  // success
... // do work
svn ci // fail 


svn co svn://server/projectX/trunk .  // success
... // do work
svn ci // success 

У меня также была проблема, когда последняя строка в authz и passwd не была пустой строкой, то есть добавление CRLF к последней строке исправило ее. Это было давным-давно, хотя, может быть, это сейчас исправлено.

0 голосов
/ 07 октября 2009

Я думаю, линия

* = 

доставляет вам неприятности. Кроме того, я бы порекомендовал использовать раздел [groups] и добавлять своих пользователей в группы, даже если в настоящее время у вас есть только один пользователь на группу.

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