¿Cómo agrego un usuario en SVN?

12

ACTUALIZACIÓN # 3: Creo que lo encontré.
/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á en el formato de

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

Siento que utilicé alguna herramienta de línea de comandos para agregar usuarios, pero no recuerdo qué.

ACTUALIZACIÓN # 2: localizar http.conf da estos resultados

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

No veo nada en ninguno de ellos que parezca relacionado con la subversión. Puedo publicar los archivos aquí si me ayuda.

pregunta original:

Hace unos años, instalé y configuré Subversion. No recuerdo cómo agregué un usuario. Necesito agregar otro ahora, pero cuando revisé el passwdarchivo no había usuarios definidos, ni había nada establecido en el svnserve.confarchivo, ambos tenían todo comentado. Esa es la única manera que puedo encontrar para agregar usuarios a través de Google. Entonces lo probé:

passwd

user1 = password1
user2 = password2

svnserve.conf

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

pero todavía solo puedo acceder a él user1, aunque user1no sea un usuario en el servidor Linux. ¿Hay alguna otra forma de agregar usuarios o tengo algo mal en mi configuración?

actualizar:

He agregado la siguiente línea a mi archivo svnserve.conf

authz-db = authz

entonces mi archivo authz se ve así

authz [grupos] devs = usuario1, usuario2

[repos:/]
devs = rw

Todavía no funciona. la contraseña para user1 es diferente en la contraseña que uso para iniciar sesión. Así que creo que Subversion no está usando eso para la autenticación en absoluto. especialmente porque el archivo estaba vacío antes y todavía podía iniciar sesión. ¿Hay alguna manera de asegurarse de que utiliza los archivos svnserve, passwd, authz para la autenticación? ¿hay otro archivo de configuración en alguna parte?

Scott
fuente

Respuestas:

8

La autenticación de Subversion generalmente tiene dos partes. El primero es un repositorio de contraseñas de algún tipo. El segundo es una lista de control de acceso. La lista de contraseñas se utiliza para autenticar a los usuarios y verificar sus contraseñas, pero también debe establecer qué usuarios tienen acceso a qué recursos.

Hay varios tipos de repositorios de contraseñas. No estoy familiarizado con el tipo passwd , uso el tipo htpasswd que usa los mismos archivos de usuario / contraseña que apache utiliza para la autenticación de usuarios. Agrego usuarios a este archivo con htpasswd .htpasswd username. Parece que has hecho este paso correctamente para tu tipo de contraseña.

La segunda parte es la ACL. Subversion debe tener un archivo llamado en accessalgún lugar con secciones para cada uno de sus repositorios. Deberá agregar una línea debajo del repositorio al que desea acceder username = rwpara darle a ese usuario acceso de lectura / escritura a ese repositorio.

Caleb
fuente
Lo intentaré cuando llegue a casa. Eso suena familiar.
scott
No creo que sea esto. no había ningún archivo .htpasswd en mi servidor.
scott
6

La configuración del servidor SVN (principalmente) consta de tres archivos:

  • authz
  • passwd
  • svnserve.conf Este es el archivo principal (authz-db = authz)

Así que solo nos proporciona dos archivos de configuración, verifique que el archivo authz contenga:

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

para la prueba del proyecto que desea otorgar acceso

Sergey
fuente
Intenté esto, no funcionó. la contraseña que uso para iniciar sesión como usuario1 es diferente de la que tengo en el archivo passwd. así que no creo que lo esté usando en absoluto.
scott
por favor, compruebe que está utilizando el archivo de configuración correcto: para qué es la salidaps aux|grep svn
Sergey
Y una pregunta más. ¿Cómo se obtiene la estructura del directorio repos (svn: // o a través del servidor http)?
Sergey
root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
scott
a través del 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 exactamente el mismo archivo y nombre de ruta que el usado en el subversion.confarchivo. Este ejemplo usa el /etc/svn-auth-usersarchivo.

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

Luego le pedirá la contraseña y la confirmará.

Prueba prueba
fuente
1

puedes usar el comando,

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX ha sido el nombre de usuario, luego le pedirá la contraseña

esto es solo si configura svn con apache, que no lee las carpetas svn conf nombre de usuario contraseña conf archivos

Supun Sameera
fuente