Como adiciono um usuário ao SVN?

12

ATUALIZAÇÃO # 3: Eu acho que encontrei.
/etc/httpd/conf.d/subversion.conf

<Location /repos>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

svn-auth-conf está no formato de

user1:$apr1$randome letters ... $random letters and numbers

Sinto que usei alguma ferramenta de linha de comando para adicionar usuários, mas não me lembro o quê.

ATUALIZAÇÃO # 2: localize http.conf fornece esses resultados

/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf

Não vejo nada em nenhum deles que pareça relacionado à subversão. Posso postar os arquivos aqui, se isso ajudar.

pergunta original:

Alguns anos atrás, eu instalei e configurei o subversion. Não me lembro de como adicionei um usuário. Preciso adicionar outro agora, mas quando verifiquei o passwdarquivo não havia usuários definidos nem havia nada definido no svnserve.confarquivo - ambos tinham tudo comentado. Essa é a única maneira que posso encontrar para adicionar usuários via google. Então eu tentei:

passwd

user1 = password1
user2 = password2

svnserve.conf

anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos

mas ainda posso acessá-lo apenas user1, mesmo que user1não seja um usuário no servidor linux. Existe alguma outra maneira de adicionar usuários ou tenho algo errado na minha configuração?

atualizar:

Adicionei a seguinte linha ao meu arquivo svnserve.conf

authz-db = authz

meu arquivo authz fica assim

authz [grupos] devs = usuário1, usuário2

[repos:/]
devs = rw

ainda não funciona. a senha do usuário1 é diferente na senha do que eu uso para fazer login. Então eu acho que o subversion não está usando isso para autenticação. especialmente porque o arquivo estava vazio antes e eu ainda era capaz de fazer login. existe alguma maneira de garantir que ele use os arquivos svnserve, passwd, authz para autenticação? existe outro arquivo de configuração em algum lugar?

Scott
fonte

Respostas:

8

A autenticação do Subversion normalmente possui duas partes. O primeiro é um repositório de senhas de algum tipo. O segundo é uma lista de controle de acesso. A lista de senhas é usada para autenticar usuários e verificar suas senhas, mas você também precisa definir quais usuários têm acesso a quais recursos.

Existem vários tipos de repositórios de senhas. Eu não sou familiar com o tipo passwd , eu uso o tipo htpasswd que usa os mesmos arquivos de usuário / senha que o apache usa para autenticação do usuário. Eu adiciono usuários a este arquivo com htpasswd .htpasswd username. Parece que você pode ter executado esta etapa corretamente para o seu tipo de senha.

A segunda parte é a ACL. O Subversion deve ter um arquivo chamado em accessalgum lugar com seções para cada um de seus repositórios. Você precisará adicionar uma linha no repositório com o qual deseja acessar username = rwpara fornecer a esse usuário acesso de leitura / gravação a esse repositório.

Caleb
fonte
vou tentar quando chegar em casa. isso parece familiar.
scott
Eu não acho que é isso. não havia arquivo .htpasswd no meu servidor.
scott
6

A configuração do servidor SVN (principalmente) consiste em três arquivos:

  • authz
  • passwd
  • svnserve.conf Este é o arquivo principal (authz-db = authz)

Então, você acabou de nos fornecer dois arquivos de configuração, verifique se o arquivo authz contém:

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

para o teste do projeto que você deseja conceder acesso

Sergey
fonte
Eu tentei isso, não funcionou. a senha que eu uso para fazer login como user1 é diferente daquela que eu tenho no arquivo passwd. então eu acho que não está usando.
scott
por favor, verifique se você está usando o arquivo de configuração correto: qual é o resultado?ps aux|grep svn
Sergey
E mais uma pergunta. Como você obtém sua estrutura de diretórios repos (svn: // ou através do servidor http)?
Sergey
root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
scott
através do servidor http
scott
4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

Nota: Use exatamente o mesmo nome de arquivo e caminho usado no subversion.confarquivo. Este exemplo usa o /etc/svn-auth-usersarquivo

user139264
fonte
2
htpasswd -m /etc/subversion/svn-auth-file yourusername

Ele solicitará a senha e confirmará a senha.

Teste TESTE
fonte
1

você pode usar o comando

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX for o nome do usuário, ele solicitará a senha

isto é apenas se você configurar o svn com o apache, que não lê as pastas svn conf, nome do usuário, senha, arquivos conf

Supun Sameera
fonte