jueves, 15 de marzo de 2007

Subversion + UBUNTU - Parte 3

En la ultima parte nos encontramos con el problema de que no teníamos acceso al repositorio usando el protocolo svn. Para solventar esto debemos modificar la configuración de repositorio editando el archivo svnserve.conf ubicado en el directorio conf del repositorio.

$ cd ~/svn_repos/prueba/conf
$ vi svnserve.conf

Este archivo permite definir los accesos al repositorio. Fijense que esto se hace por repositorio y no de forma global. Este archivo contiene una sección general donde se definen las siguientes propiedades

[general]
#
# Acceso anonimo (read|write|none)
anon-access = read
#
# Acceso autorizado (read|write|none)
auth-access = write
#
# Archivo de claves de usuarios. Por defecto se usa passwd
# en el mismo directorio de configuracion pero se puede usar un
# archivo maestro para todos los repos
password-db = passwd
#
# Archivo de definicion de autorizaciones. Por defecto es authz
# en el mismo directorio de configuracion pero se puede usar un
# archivo maestro para todos los repos
authz-db = authz
#
#
realm = Autenticacion a repo prueba

Los archivos de passwords y de autorizaciones son similares al de configuración.

El de password contiene una entrada por cada usuario en formato texto. No muy seguro por cierto.

$ cat passwd
# Users
[users]
user1=pass1
user2=pass2
user3=pass3

El de autorización permite agrupar usuarios y asignarles accesos de lectura (r), escritura (rw) o ninguno (blanco). En el siguiente ejemplo vemos que solo el usuario user1 puede modificar el repositorio en su totalidad, y todos los usuarios del grupo 1 (user1, user2) pueden modificar lo que esta bajo /security en el repositorio. El resto de los usuarios o no tienen acceso o solo tienen acceso de lectura.

$ cat authz

[groups]
group1 = user1, user2
group2 = user3

[/]
user1 = rw
group2 = r

[/security]
group1 = rw
group2 =

Ahora ya estamos listos para subir algo al repositorio.

$ svn import . svn://localhost/prueba --message "Cambio"
Authentication realm: Autenticacion a repo prueba
Password for 'user1':
Adding prueba
Adding prueba/delete_svn_user.sh
Adding prueba/create_svn_user.sh
Adding prueba/create_svn_repo.sh
Committed revision 4.

En una siguiente parte voy a explicar como configurar subversion con apache para poder usar los protocolos http/https y para poder usar un tipo de autenticacion mas segura (evitar passwords en texto).


Publicar un comentario