segunda-feira, 28 de julho de 2008

Controle de acesso com o Subversion+Apache

Este mini tutorial explica como fazer controle de acesso às pastas específicas de um projeto.

Este texto é para quem já instalou o apache e o subversion, existem vários tutoriais por aí ;) Estou escrevendo este pois não achei muita informação CORRETA sobre como fazer isso, portanto tratarei apenas do que tive dificuldade em achar.


Vá até a subsection do subversion, no arquivo de configuração do apache (se não tem, copie e modifique a mostrada abaixo).


httpd.conf (ou apache2.conf):

...
...
...
<Location /svn>
DAV svn
SVNParentPath /srv/svn

AuthType Basic
AuthName "Repositórios do Subversion"

# Usa o arquivo chamado autenticacao como fonte de nomes e senhas
AuthUserFile autenticacao

#Usa o arquivo authz para controle de permissoes
AuthzSVNAccessFile authz

#Ambos authz e autenticacao devem estar no diretorio raiz do apache. ex.: /etc/httpd

Require valid-user
< /Location>
...
...
...

authz:

[groups]
grupo1 = andre, ana, ricardo

[ProjetoTeste:/]
#Aqui as pessoas do grupo1 só podem ler, mas não escrever. Qualquer outro usuário não tem permissão de nada!
@grupo1 = r
* =

[ProjetoTeste:/trunk]
#Grupo1 pode ler e escrever. Os outros não podem fazer nada novamente.
@grupo1 = rw
* =

[ProjetoTeste:/tags]
#Todos podem ler o diretório, mas só o usuário andre pode escrever.
andre = rw
* = r

[ProjetoTeste:/branches]
#Andre pode ler e escrever, grupo1 pode ler e os outros não tem acesso.
andre = rw
@grupo1 = r
* =

Para criar o arquivo de senhas, use o comando: htpasswd
ex.:

htpasswd -cmd autenticacao andre

Isso cria o arquivo de senhas chamado autenticacao, com o usuario andre. Para apenas criar o usuario, sem criar o arquivo, use:

htpasswd -md autenticacao outro_usuario


Pronto, apenas isso já basta para que você tenha um controle de acesso aos diretórios individuais de cada projeto por usuário ou grupo. Apesar de parecer fácil, eu tive dificuldade pra fazer funcionar com os tutoriais que encontrei por aí. Não esqueça que os arquivos tem que estar na raiz de instalação do apache.

0 Comentários:

Postar um comentário

Assinar Postar comentários [Atom]

<< Página inicial