Como posso restringir os repositórios para usuários especificados?

2

Eu sou um novato no Linux e configurei minha subversão usando muitos tutoriais na internet.

Meu subversion usa o webdav e eu adiciono meus usuários usando o comando:

htpasswd /etc/apache2/dav_svn.passwd userb

Meu dav_svn.conf contém a seguinte configuração:

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

No diretório / svn eu fui criado alguns repositórios como / svn / test ou / svn / chat.

Minha pergunta é: Como posso restringir os repositórios para usuários especificados? Porque todos os usuários têm permissões em todos os repositórios.

    
por Ricardo 27.07.2011 / 19:23

2 respostas

4

adicione a seguinte linha abaixo de AuthuserFile

AuthzSVNAccessFile /srv/svn/conf/authz

De mudar o caminho para a sua raiz svn para apontar para o arquivo authz .. Então pode parecer

[groups]
admin = user
devteam = user,user2,user3

[/]
@devteam = r
@admin = rw

[/some_repo]
@devteam = rw
@admin = rw
    
por 27.07.2011 / 21:57
0

Adicionando a resposta de Mike de antes, se você quiser que o recurso futuro permita que os usuários editem seu próprio SVN acesso através de um plugin Trac ou similar, você também pode dar a cada projeto SVN seu próprio arquivo Authz. Todas as configurações de SVN dos meus projetos são mantidas em arquivos separados, um por projeto. Algo como:

<Location /svn/projectname>
    DAV svn
    SVNPath /usr/local/svn/projectname
    AuthzSVNAccessFile /etc/apache2/authz/projectname
    ...
</Location>

Isso seria difícil de gerenciar manualmente, portanto, você desejaria algum tipo de software de gerenciamento de configuração no servidor SVN ou seus próprios scripts para gerar os locais separados.

    
por 28.07.2011 / 15:39