Cette section décrira la façon de paramétrer, administrer et sécuriser un serveur Subversion.
Les instructions suivantes installeront un serveur Subversion, qui sera paramétré pour utiliser OpenSSH comme méthode sécurisée à distance, avec svnserve disponible pour un accès anonyme.
La configuration du serveur Subversion consiste en les étapes suivantes :
            Vous devrez être l'utilisateur root pour la partie initiale de la
            configuration. Créez l'utilisateur et le groupe svn avec les commandes suivantes :
          
groupadd -g 56 svn && useradd -c "SVN Owner" -d /home/svn -m -g svn -s /bin/false -u 56 svn
            Si vous envisagez d'avoir plusieurs dépôts, vous devriez avoir un
            groupe dédié à chaque dépôt pour faciliter l'administration.
            Créez le groupe svntest pour le
            dépôt de test et ajoutez l'utilisateur svn au groupe avec les commandes
            suivantes :
          
groupadd -g 57 svntest && usermod -G svntest -a svn
En outre, vous devriez régler umask 002 pendant que vous travaillez avec un dépôt pour que tous les nouveaux fichiers soient accessibles en écriture au propriétaire et au groupe. Ceci est rendu obligatoire par la création d'un script enveloppe pour svn et svnserve :
mv /usr/bin/svn /usr/bin/svn.orig && mv /usr/bin/svnserve /usr/bin/svnserve.orig && cat >> /usr/bin/svn << "EOF"#!/bin/sh umask 002 /usr/bin/svn.orig "$@"EOF cat >> /usr/bin/svnserve << "EOF"#!/bin/sh umask 002 /usr/bin/svnserve.orig "$@"EOF chmod 0755 /usr/bin/svn{,serve}
            Si vous utilisez Apache pour travailler avec le dépôt par HTTP, même pour un accès anonyme, vous devriez envelopper /usr/sbin/httpd dans un script similaire.
Il y a de nombreuses manières d'initialiser un répertoire subversion. Il est recommandé de regarder le chapitre correspondant du Livre SVN. Un répertoire de base peut être initialisé avec les instructions ci-dessous.
            Créez un nouveau dépôt Subversion avec les commandes suivantes (en
            tant qu'utilisateur root) :
          
install -v -m 0755 -d /srv/svn && install -v -m 0755 -o svn -g svn -d /srv/svn/repositories && svnadmin create /srv/svn/repositories/svntest
            Maintenant que le dépôt est créé, vous devriez le peupler avec
            quelque chose d'utile. Vous devrez avoir une disposition de
            répertoires prédéfinie paramétrée comme ce à quoi vous voudriez
            que votre dépôt ressemble. Par exemple, voici un modèle du
            paramétrage de BLFS avec une racine de svntest/. Vous devrez paramétrer une
            arborescence de répertoire ressemblant à ce qui suit :
          
svntest/            # The name of the repository
   trunk/           # Contains the existing source tree
      BOOK/
      bootscripts/
      edguide/
      patches/
      scripts/
   branches/        # Needed for additional branches
   tags/            # Needed for tagging release points
          Une fois que vous avez créé votre aménagement de répertoire, comme indiqué ci-dessus, vous êtes prêt à faire l'importation initiale :
svn import -m "Initial import." \
    </path/to/source/tree>      \
    file:///srv/svn/repositories/svntest
          
            Maintenant modifiez les informations de propriétaire et de groupe
            du dépôt et ajoutez un utilisateur non privilégié aux groupes
            svn et svntest :
          
chown -R svn:svntest /srv/svn/repositories/svntest    &&
chmod -R g+w         /srv/svn/repositories/svntest    &&
chmod g+s            /srv/svn/repositories/svntest/db &&
usermod -G svn,svntest -a <username>
          
            svntest est le groupe affecté au
            dépôt svntest. Comme indiqué plus haut, cela facilite
            l'administration de plusieurs dépôts lors de l'utilisation de
            OpenSSH pour l'authentification.
            En anticipant, vous devrez ajouter votre utilisateur non
            privilégié et n'importe quel utilisateur supplémentaire auquel
            vous pouvez vouloir donner accès en écriture au dépôt, aux
            groupes svn et svntest.
          
            En outre, vous remarquerez que le nouveau répertoire du dépôt
            db est set-groupID. Si le
            raisonnement n'est pas immédiatement évident, quand on utilise
            une méthode d'authentification externe (telle que ssh), le bit sticky est réglé
            de sorte que tout les nouveaux fichiers appartiendront à
            l'utilisateur, mais au groupe svntest. Quiconque dans le groupe
            svntest peut créer des fichiers,
            mais donnez encore l'accès en écriture à tout le groupe à ces
            fichiers. Ceci évite d'exclure d'autres utilisateurs du dépôt.
          
Maintenant, repassez en accès pour utilisateur non privilégié, et jetez un œil sur le nouveau dépôt en utilisant svnlook :
svnlook tree /srv/svn/repositories/svntest/
            
              Il se peut que vous deviez vous déconnecter et y revenir pour
              rafraîchir vos appartenances au groupe. 'su <nom_utilisateur>'
              devrait aussi fonctionner.
            
Comme indiqué précédemment, ces instructions configureront le serveur pour n'utiliser que ssh pour un accès en écriture au dépôt et pour fournir un accès anonyme en utilisant svnserve. Il y a plusieurs autres manières de fournir un accès au dépôt. Ces configurations supplémentaires sont mieux expliquées sur http://svnbook.red-bean.com/.
            La configuration de l'accès doit se faire pour chaque dépôt.
            Créez le fichier svnserve.conf pour
            le dépôt svntest en utilisant les commandes suivantes :
          
cp /srv/svn/repositories/svntest/conf/svnserve.conf \
   /srv/svn/repositories/svntest/conf/svnserve.conf.default &&
cat > /srv/svn/repositories/svntest/conf/svnserve.conf << "EOF"
[general]
anon-access = read
auth-access = write
EOF
          
            Il n'y a pas grand à chose du tout avoir avec le fichier de
            configuration. Vous remarquerez que seule la section générale est
            nécessaire. Jetez un œil sur le fichier svnserve.conf.default pour des informations sur
            l'utilisation de la méthode d'authentification de svnserve intégrée.
          
            Pour démarrer le serveur au démarrage, installez l'unité
            svnserve.service du paquet
            blfs-systemd-units-20160602.
          
make install-svnserve
En outre, vous devriez régler umask 002 pendant que vous travaillez avec un dépôt pour que tous les nouveaux fichiers soient accessibles en écriture au propriétaire et au groupe. Ceci peut être accompli en créant un fichier de surcharge d'unité systemd en lançant la commande suivante :
mkdir -p /etc/systemd/system/svnserve.service.d echo "UMask=0002" > /etc/systemd/system/svnserve.service.d/99-user.conf
            Les options passées au démon svnserve peuvent être changées
            dans /etc/default/svnserve.
          
Last updated on 2016-06-09 05:56:23 +0200