Attention : ceci est un début de documentation, par l'exemple... Ce n'est donc pas (encore) un modèle ! -- JeanChristopheAndré |
À venir : configuration d'environnement svn collaboratif via SSH -- JeanChristopheAndré |
Environnement svn collaboratif
Idées :
service svn sécurisé :
dépôt mis dans un chroot (par exemple /srv/chroot/svn)
service anonyme en chroot + setuid
service ssh dédié svn :
lancement d'un second démon ssh en chroot avec svn
lancement en setuid sur le compte svn si possible
- le mettre sur un alias IP, sur le port standard, pour simplifier l'usage
un seul compte ssh avec les clés de tous les développeurs :
restriction à l'usage de svnserve avec les options --tunnel et --tunnel-user
Exemple : création d'un dépôt pour le ProjetDEF
créer un dépôt : svnadmin create --fs-type fsfs /var/lib/svn/def
éditer un fichier /var/lib/svn/def/conf/svnserve.conf tel que suit :
[general] anon-access = read auth-access = write password-db = passwd realm = AuF-BAP-DEF
éditer un fichier /var/lib/svn/def/conf/passwd tel que suit :
[users] test = test
NB : lancer svnserver : svnserver -d
attribuer l'utilisateur et le groupe du serveur subversion : chown -R svn:svn /var/lib/svn/def
donner des droits corrects/stricts sur le dépôt : chmod -R u=rwX,g=rX,o= /var/lib/svn/def
Le dépôt est à présent utilisable « à distance ».
créer un dossier de gestion des tags : svn mkdir svn://localhost/def/tags
créer un dossier de gestion des branches : svn mkdir svn://localhost/def/branches
importer les sources actuelles du projet : svn import /var/www/def.vn.auf.org/docs svn://localhost/def/trunk/docs
Dans le cas où on voudrait qu'un apache local puisse accéder à ce dépôt, par exemple pour websvn, on lui donnerait les droits d'accès en lecture-seule avec adduser www-data svn.