Como o AuthzSVNAccessFile funciona?

5

Eu configurei um repositório do SVN com acesso ao WebDAV. Por alguma razão, não permite o pagamento.

Aqui está minha parte httpd.conf:

<Location /svn>
  DAV svn
  SVNParentPath /home/svn/repositories
  AuthzSVNAccessFile /home/svn/dav_svn.authz
  Satisfy Any
  Require valid-user
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/dav_svn.passwd
</Location>

Eu tenho dois repositórios chamados "first" e "second" e o conteúdo de dav_svn.authz é:

[first:/]
doe = rw
* = r

[second:/]
doe = rw
grig = rw
* = r

Quando estou tentando fazer o checkout do segundo com o usuário doe, recebo isso em error_log: usuário doe: falha de autenticação para "/ svn / second": Incompatibilidade de senha

Para entender o que pode ser o problema, eu gostaria de entender melhor como o AuthzSVNAccessFile deve funcionar.

    
por grigy 10.07.2010 / 20:51

3 respostas

7

O erro ocorre apenas para o usuário em ambos os repositórios? Ou falha para grig no segundo repositório? Supondo que ele falhe para todos os usuários, e supondo que o erro não esteja no AuthUserFile e no SVNParentPath esteja correto, acho que você precisa adicionar uma regra de acesso padrão para todos os seus repositórios.

[/]
* = r

[first:/]
doe = rw

[second:/]
doe = rw
grig = rw

Ou você pode colocar os usuários em um grupo e fazê-lo da seguinte maneira:

[groups]
secondteam = doe, grig

[/]
* = r

[first:/]
doe = rw

[second:/]
@secondteam = rw

Você mencionou que gostaria de entender melhor como o AuthzSVNAccessFile deve funcionar. Eu recomendo ler o este tutorial . Um exemplo de arquivo de autorização baseado em caminho completo desse tutorial para suportar vários repositórios está abaixo:

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak

# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =

# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw

# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw

# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw
    
por 12.07.2010 / 07:04
1

você usou "htpasswd" para adicionar o usuário doe ao /home/svn/dav_svn.passwd ou era de algum tipo de administrador front-end?

eu tive problemas por exemplo com o Virtualmin / Webmin eles estavam editando o arquivo htpasswd em um formato diferente do apache, e o problema foi resolvido lendo o usuário usando o htpasswd.

    
por 14.07.2010 / 12:57
0

apenas um cheque (não tenho certeza, vou verificar mais tarde), mas a sintaxe não deve ser [first:/home/svn/first] ?

Em que first é o nome e /svn/first seria o caminho para o repo.

Não tenho certeza se o problema será resolvido, mas acho que seu arquivo conf atual não é exatamente o que você deseja.

    
por 11.07.2010 / 12:03

Tags