Lo primero que debemos hacer es instalar mysql y el modulo de autenticación para apache.
$ sudo apt-get install mysql-server libapache2-mod-auth-mysql
Lo segundo es decirle a apache que tiene un nuevo modulo disponible para hacer autenticación.
$ cd /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/auth_mysql.load .
Lo siguiente es configurar MySQL para que almacene la información de los usuarios:
Si MySQL no estaba configurado antes debemos asignarle un password al usuario root
$ mysqladmin -u root password
Después debemos crear la base de datos y la tabla de usuarios
mysql -uroot -p
mysql> grant all on svn_auth.* to svn_admin_user@localhost identified by 'password';
mysql> flush privileges;
mysql> create database svn_auth;
CREATE TABLE `clients` (
`username` varchar(25) NOT NULL default '',
`passwd` varchar(25) NOT NULL default '',
`groups` varchar(25) NOT NULL default '',
PRIMARY KEY (`username`),
KEY `groups` (`groups`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Para insertar usuarios se puede usar el siguiente sql:
INSERT INTO `clients` VALUES ('id del usuario', 'password', 'grupo');
El password se puede crear como encrypt('password') o se puede usar uno generado por el comando htpasswd2
insert into `clients` values ('user', encrypt('user1'), '');
$ htpasswd2 -bnm user user1
user:$apr1$l.Iwf/..$uSY81FEI6BT5SNozcT51t1
insert into `clients` values ('user', '$apr1$l.Iwf/..$uSY81FEI6BT5SNozcT51t1', '');
Ahora solo nos queda modificar Apache para que tome el cambio. Para eso debemos modificar el Location de /svn
$ sudo vi /etc/apache2/apach2.conf
DAV svn
# Directorio padre de todos los repositorios
SVNParentPath /ruta/a/dir/padre/de/repositorios
# Archivo con definicion de acceso a los repositorios
AuthzSVNAccessFile /etc/apache2/.svn_access_control
# Solo usuarios autorizados
Require valid-user
# How to authenticate a user
AuthType Basic
AuthName "Coloque su clave de acceso a Subversion"
# Configuracion de acceso a MySQL
AuthMYSQL on
AuthMySQL_Authoritative on
AuthMySQL_Host localhost
AuthMySQL_DB svn_auth
AuthMySQL_Password_Table clients
# Aqui se deben colocar los datos del usuario con acceso a la BD
AuthMySQL_User svn_admin_user
AuthMySQL_Password svn_admin_user_password
AuthMySQL_Group_Table clients
AuthMySQL_Empty_Passwords off
AuthMySQL_Encryption_Types Crypt_DES PHP_MD5 MD5
# Otros valores posibles
#AuthMySQL_Encryption_Types PHP_MD5 SHA1Sum Crypt_DES Plaintext Crypt_MD5 Crypt MySQL MD5
# Esto ya no hace falta
#AuthUserFile /etc/apache2/.dav_svn.passwd
Por ultimo, reiniciamos Apache
$ sudo /etc/init.d/apache2 force-reload
Y listo, así de fácil se hace la configuración.
No hay comentarios.:
Publicar un comentario