Cette section décrira comment le mettre en place, administrer et sécuriser un serveur CVS.
Un serveur CVS va être configuré en utilisant OpenSSH en tant que méthode d'accès à distance. D'autres méthodes d'accès, incluant :pserver: et :server:, ne seront pas utilisées pour des accès en écriture au dépôt CVS. La méthode :pserver: envoie les mots de passe en clair sur le réseau et la méthode :server: n'est pas supportée sur tous les ports CVS. Des instructions pour l'accès anonyme, en lecture seule, utilisant :pserver:, peuvent être trouvées à la fin de cette section.
La configuration du serveur CVS consiste en quatre étapes:
Créez le nouveau dépôt CVS avec les commandes suivantes :
mkdir /home/cvsroot &&
chmod 1777 /home/cvsroot &&
export CVSROOT=/home/cvsroot &&
cvs init
Importez un module source dans le dépôt avec les commandes suivantes, envoyé à partir du compte utilisateur sur la même machine que le dépôt CVS:
export CVSROOT=/home/cvsroot &&
cd [sourcedir] &&
cvs import -m ["repository test"] [cvstest] [vendortag] [releasetag]
Testez l'accès au dépôt CVS pour le même compte utilisateur avec la commande suivante:
cvs co cvstest
Testez l'accès au dépot CVS d'une machine distante en utilisant un compte utilisateur qui a un accès ssh au serveur CVS avec les commandes suivantes:
Remplacez [nom_serveur] avec l'adresse IP ou le nom d'hote de la machine du dépot CVS. Le nom du compte utilisateur va vous être demandé avant que le CVS checkout puisse continuer.
export CVS_RSH=/usr/bin/ssh &&
cvs -d:ext:[nom_serveur]:/home/cvsroot co cvstest
CVS peut etre configuré pour permettre l'accès anonyme en lecture seule en utilisant la méthode :pserver: pour se connecter en tant que root et exécuter les commandes suivantes:
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) &&
echo anonymous: > /home/cvsroot/CVSROOT/passwd &&
echo anonymous > /home/cvsroot/CVSROOT/readers
Si vous utilisez inetd, la commande suivante ajoutera l'entrée pserver à /etc/inetd.conf:
echo "2401 stream tcp nowait root /usr/bin/cvs cvs -f \
--allow-root=/home/cvsroot pserver" >> /etc/inetd.conf
Envoyez un /etc/rc.d/init.d/inetd reload pour relire le fichier inetd.conf modifié.
Si vous utilisez xinetd, la commande suivante ajoutera l'entrée pserver à /etc/xinetd.conf:
cat >> /etc/xinetd.conf << "EOF" service cvspserver { port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs server_args = -f --allow-root=/home/cvsroot pserver } EOF
Envoyez un killall -HUP xinetd pour relire le fichier xinetd.conf modifié.
Testez l'accès anonyme pour le nouveau dépot requiert un compte sur une autre machine qui peut atteindre le serveur CVS via le réseau. Aucun compte est nécessaire dans le dépot CVS. Pour tester l'accès anonyme au dépot CVS, connectez-vous sur une autre machine en tant qu'utilisateur non privilégié et exécutez la commande suivante:
cvs -d:pserver:anonymous@[nom_serveur]:/home/cvsroot co cvstest
Remplacez [nom_serveur] avec l'adresse IP ou le nom d'hote du serveur CVS.
mkdir /home/cvsroot : Créez le répertoire du dépôt CVS.
chmod 1777 /home/cvsroot : Droit 'Sticky bit' pour CVSROOT.
export CVSROOT=/home/cvsroot : Spécifie le nouveau CVSROOT pour toutes les commandes cvs.
cvs init : Initialise le nouveau dépôt CVS.
cvs import -m "repository test" cvstest vendortag releasetag : Tous les modules de code source doivent être importés dans le dépôt CVS avant utilisation, avec la commande cvs import. L'option -m spécifie une entrée initiale de descriptions pour le nouveau module. Le paramètre "cvstest" est le nom utilisé pour le module dans toutes les commandes cvs subséquentes. Les paramètres "vendortag" et "releasetag" sont utilisés pour mieux identifier chaque module CVS et sont nécessaires qu'ils sont utilisés ou non.
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) : Vérifie l'existence d'un utilisateur anonyme et en crée un si nécessaire.
echo anonymous: > /home/cvsroot/CVSROOT/passwd : Ajoute l'utilisateur anonyme dans le fichier passwd de CVS, qui est inutilisé pour tout autre chose dans cette configuration.
echo anonymous > /home/cvsroot/CVSROOT/readers : Ajoute l'utilisateur anonyme dans le fichier readers de CVS, une liste d'utilisateurs qui ont un accès en lecture seule au dépôt.