Table of Contents
Prérequis
Activer les modules apache2 nécessaires
(su) a2enmod dav (su) a2enmod dav_svn (su) a2enmod ldap (su) a2enmod authnz_ldap (su) a2enmod authz_svn
Créer le répertoire des dépôts
mkdir -p /srv/svn/
Créer les utilisateurs
Nous allons créer un fichier “passwd” dans notre dossier svn dans lequel sera enregistré les utilisateurs ainsi que les mots de passes cryptés. Voici la marche à suivre :
Lors de l'ajout du premier utilisateur on utilise l'argument “c” pour “create”
- Le “m” permet lui de crypter le mot de passe
- “passwd” correspond à notre fichier et “utilisateur1”… le premier utilisateur
Le mot de passe vous est ensuite demandé ainsi qu'une vérification
htpasswd -mc /srv/svn/.passwdfile utilisateur1
Ajout les autres utilisateurs
htpasswd -m /srv/svn/.passwdfile utilisateur2 htpasswd -m /srv/svn/.passwdfile utilisateur3 htpasswd -m /srv/svn/.passwdfile utilisateur4 htpasswd -m /srv/svn/.passwdfile utilisateur5 ...
Modifier les permissions du fichier :
chown subversion:www-data /srv/svn/.passwdfile chmod 660 /srv/svn/.passwdfile
Nos utilisateurs sont désormais prêts ! On passe ensuite aux permissions !
Créer le fichier des permissions des utilisateurs
Le fichier contenant les permissions est commun à tous les dépôts. Voici le détail du fichier et des possibilités.
Les groupes permettant de regrouper les utilisateurs par “paquets”.
[groups] groupe1 = utilisateur1, utilisateur3 # Syntaxe : nom_du_groupe = utilisateur, utilisateur # # Permissions de tous les dépôts [/] * = # La syntaxe "* =" permet d'interdire l'accès à tout le monde. # Je vous conseille de faire de même si vous ne souhaitez pas laisser # votre dépôt en libre accès. # # Mon premier projet [projet1:/] * = # On interdit à tout le monde pour commencer... utilisateur1 = r # utilisateur1 pourra consulter le dépôt utilisateur2 = rw # utilisateur2 pourra lire ET écrire # utilisateur3 ne pourra pas le consulter [projet1:/trunk/sources/] utilisateur3 = r # utilisateur 3 aura accès en lecture au dossier "/trunk/sources" de mon premier projet # # Mon second projet [projet2:/] * = # On interdit à tout le monde pour commencer... @groupe1 = r # Syntaxe permettant d'utiliser les groupes. # Mes utilisateurs 1 et 3 pourrons donc lire ce dépôt ! # N'oubliez pas le "@" lorsque vous faites référence à un groupe ! utilisateur2 = rw # Autorisations en lecture ET écriture pour l'utilisateur2<nowiki> Enregistrez votre fichier nommé "authz" avec vos permissions à la racine de votre dépôt. (Dans "/home/svn/authz" dans mon exemple) La encore il faut modifier les permissions du fichier : <nowiki># Utilisateur / Groupe chown subversion:www-data authz chmod 660 authz
La partie des autorisations est désormais complète, on va rapidement configuré les dépôts.
Configuration des projets
Les utilisateurs et permissions sont désormais gérés dans nos deux fichiers, on peux donc désactiver cette option au niveau de la configuration des projets.
Cette étape est à répéter pour tous vos projets !
Ouvrez le fichier “/etc/apache2/conf.d/subversion.conf” et vérifiez la valeurs des paramètres
vi /etc/apache2/conf.d/subversion.conf
Ou avec “nano” qui est plus facile d'utilisation :)
nano /etc/apache2/conf.d/subversion.conf
Pour chaque projet répéter le bloc suivant :
<Location /svn/bull>
DAV svn
SVNPath /srv/svn/bull
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /srv/svn/.passwdfile
AuthzSVNAccessFile /srv/svn/authz
Require valid-user
SVNListParentPath On
</LimitExcept>
</Location>
Cette partie est terminée, il ne nous reste plus qu'a redémarrer apache
/etc/init.d/apache2 restart
