Este howto supone que tienes instalado subversion y apache y trata sobre como mostrar por el puerto http (80) en lugar de por svn (3690) los repositorios subversion mediante apache y el protocolo WebDAV En primer lugar instalaremos el módulo que nos permitirá mostrar los archivos guardados en los repositorios subversion mediante Apache: [root@prueba ~]# yum install mod_dav_svnsubversion A continuación editaremos la configuración de Apache para indicar donde se encuentran nuestros repositorios y el tipo de autenticación que se usara para acceder a ellos [root@prueba ~] cd /etc/httpd/conf.d/ [root@prueba ~] vim subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNPath /var/www/svn/repos -> directorio donde se encuentran los repositorios svn AuthType Basic AuthName "Subversion repos" AuthUserFile /etc/svn-auth-conf -> Fichero donde se encuentra los usuarios y passwords (recomendable que los passwords estén encriptados) Require valid-user </Location> Lo siguiente es crear los usuarios con el password cifrado. Esto se logra con el parámetro -m y al no existir el fichero se añade el paråmetro -c para crearlo [root@prueba ~] htpasswd -cm /etc/svn-auth-conf usuario1 New password: Re-type new password: Adding password for user usuario1 [root@prueba ~] htpasswd -m /etc/svn-auth-conf usuario2 -> El paråmetro -c no se pone en esta ocasión al existir ya el fichero New password: Re-type new password: Adding password for user usuario2 Si queremos realizar una autenticación basada en grupos y usuarios por repositorio añadimos la siguiente línea en el fichero subversion.conf: AuthzSVNAccessFile /etc/svn-acl-conf <Location /repos> DAV svn SVNParentPath /var/www/svn/repos AuthzSVNAccessFile /etc/svn-acl-conf AuthType Basic AuthName "Subversion repos" AuthUserFile /etc/svn-auth-conf Require valid-user </Location>
Creamos el fichero /etc/svn-acl-conf que consta de la siguiente sintaxis
[reponame:repopath] usuario = permisos
Donde los permisos pueden ser r (lectura), rw (lectura y escritura) o vacío, en cuyo caso no tendrå acceso ninguno. Por defecto no se da ningún permiso.
En este ejemplo el usuario juan tiene permiso de lectura y el usuario javier lectura/escritura en el repositorio "framework" [framework:/] juan = r javier = rw
Para crear grupos se indica de la siguiente manera
[groups]
staff = juan, javier y se hace referencia con el signo (@) [framework:/] juan = r @staff = rw