Несколько привилегий SVN репозиториев - PullRequest
4 голосов
/ 04 марта 2011

Я настроил два репозитория сайтов на моем сервере.Первый находится на /home/svn/repoA, а второй на /home/svn/repoB.

Я создал виртуальный хост на Apache с этой информацией:

<Location />
    DAV svn
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "Servidor SVN"
    AuthUserFile /etc/apache2/dav_svn.passwd
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    </LimitExcept>
</Location>

Теперь по этому URL я могу получить доступк серверу с http://svn.mydomain.com/repoA и http://svn.mydomain.com/repoB, но я хочу сделать repoB частным, разрешить доступ только с пользователем и паролем, ранее созданными с помощью htpasswd на dav_svn.passwd.

Если я удалю<LimitExcept GET PROPFIND OPTIONS REPORT> строка, и это более близкий тег, он запрашивает у меня имя пользователя и пароль, но в двух репозиториях.

Есть ли способ сделать один доступным для чтения только для анонимных пользователей и для чтения / записи для зарегистрированных пользователей ивторой репозиторий только права на чтение / запись для зарегистрированных пользователей?

Ответы [ 2 ]

2 голосов
/ 06 марта 2011

Какие ресурсы вы использовали для этого?Я знаю, что есть бесплатная книга Subversion (Контроль версий с Subversion), в которой есть ответ:

Apache authn / authz: ​​http://svnbook.red -bean.com / nightly / en / svn.serverconfig.httpd.html # svn.serverconfig.httpd.authz

Authz на основе пути: http://svnbook.red -bean.com / nightly / en / svn.serverconfig.pathbasedauthz.html

1 голос
/ 07 марта 2011

У меня просто было бы 2 блока местоположения. В RepoA должно быть включено «Удовлетворять любого» в блоке местоположения Apache для анонимного доступа только для чтения и соответствующий файл Auth, разрешающий анонимный доступ. Auth-файл RepoB должен запрещать анонимный доступ.

т.е.

Apache repoA conf

<Location /repoA>
  DAV svn
  SVNPath /home/svn/repoA
  AuthType Basic

  Satisfy Any
  AuthName "Servidor SVN"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /path/to/authFileA
</Location>

authFileA

[/]
* = r

[/repoA]
* = r
mark = rw
bill = rw

Apache repoB conf

<Location /repoB>
  DAV svn
  SVNPath /home/svn/repoB
  AuthType Basic
  AuthName "Servidor SVN"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /path/to/authFileB
</Location>

authFileB

[/]
* =

[/repoB]
* = 
mark = rw
bill = rw
...