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?

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.


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


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


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

Ele solicitará a senha e confirmará a senha.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.