Limitando o acesso a pastas SVN para determinados usuários

0

Eu criei o arquivo svn.password e adicionei alguns usuários.

Agora eu instalei um repositório Subversion e uma instância Trac na minha pasta do Apache e configurei o vhost.conf da seguinte forma:

<Location /svn>
   DAV svn
   SVNParentPath /var/www/vhosts/xyz.com/svn/
   AuthType Basic
   AuthName "SVN"
   AuthUserFile /var/www/vhosts/xyz.com/svn.password
   Require valid-user
</Location>
<Location /trac/>
   SetHandler mod_python
   PythonInterpreter main_interpreter
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv /var/www/vhosts/xyz.com/trac/
   PythonOption TracUriRoot /trac/
</Location>
<Location /trac/login>

Tudo funcionando perfeitamente, posso acessar o link e link com qualquer um dos usuários que eu adicionei.

Agora aqui está o meu problema. Eu gostaria agora de limitar o acesso a certas pastas dentro do meu repositório para certos usuários. Eu quero um repositório para o Trac, mas alguns desenvolvedores só funcionam em determinados projetos. Então, basicamente, há uma pasta xyz_server e uma pasta xyz_client no meu ./svn/repository /.

Agora altero /var/www/vhosts/xyz.com/svn/repository/conf/authz e defino o seguinte:

[/repository/xyz_server]
* =
test = rw
ihaveaccess = rw

[/repository/xyz_client]
ihaveaccess = rw

Suponho agora que, se eu tentar acessar http://www.xyz.com/svn/repository/xyz_client/ com o usuário test , isso não funcionaria. Só se eu tentei acessar http://www.xyz.com/svn/repository/xyz_server/ eu deveria ter lido e escrito permissões.

No entanto, tenho acesso total às pastas do SVN.

O que estou fazendo de errado?

    
por Jack Murphy 17.06.2013 / 20:23

2 respostas

0

Na sua configuração do Apache, comece ativando mod_authz_svn module

LoadModule authz_svn_module modules/mod_authz_svn.so

Depois, em <Location /svn> , use a diretiva AuthzSVNAccessFile

AuthzSVNAccessFile /var/www/vhosts/xyz.com/svn/repository/conf/authz

    
por 18.06.2013 / 06:21
0

Eu tive problemas semelhantes, mas no final o problema não estava nas configurações de autenticação no servidor SVN, mas no meu cliente SVN "Tortoise" que armazenava dados de autenticação em cache. Então, no exemplo do OP, mesmo se eu logasse como usuário "test" através do Tortoise, ele usaria as regras de acesso para o usuário "ihaveaccess" conectado anteriormente. Limpar os dados de autenticação em "TortoiseSVN - > Configurações - > SavedData" funcionou para mim.

    
por 02.09.2015 / 13:32