Ejecutar un servidor CVS

Ejecutar un servidor CVS

Esta sección describirá cómo levantar, administrar y asegurar un servidor CVS.

El servidor CVS depende de:
cvs-1.11.5 y openssh-3.6.1p1

Activar un servidor CVS.

Expondremos la activación de un servidor CVS utilizando OpenSSH como método de acceso remoto. Otros métodos de acceso, que incluyen :pserver: y :server:, no deberían usarse como acceso de escritura al repositorio CVS. El método :pserver: envía las contraseñas por la red en texto claro y el método :server: no está soportado en todas las versiones de CVS. Pueden encontrarse instrucciones para acceso anónimo al CVS, en modo sólo lectura, utilizando :pserver:, al final de esta sección.

La configuración de nuestro servidor CVS consta de cuatro pasos:

1. Crea un repositorio.

Crea un nuevo repositorio CVS con los siguientes comandos, siendo root:

mkdir /cvsroot &&
chmod 1777 /cvsroot &&
export CVSROOT=/cvsroot &&
cvs init

Configuración de CVS para acceso anónimo en modo sólo lectura.

CVS puede ajustarse para permitir acceso anónimo en modo sólo lectura usando el método :pserver: ejecutando los siguientes comandos como root:

(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) &&
echo anonymous: > /cvsroot/CVSROOT/passwd &&
echo anonymous > /cvsroot/CVSROOT/readers

Si utilizas inetd, el siguiente comando añadirá la entrada para pserver en /etc/inetd.conf:

echo "2401  stream  tcp  nowait  root  /usr/bin/cvs cvs -f \
        --allow-root=/cvsroot pserver" >> /etc/inetd.conf

Ejecuta killall -HUP inetd para leer los cambios en el fichero inetd.conf.

Si utilizas xinetd, el siguiente comando añadirá la entrada pserver en /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=/cvsroot pserver
     }
EOF

Ejecuta killall -HUP xinetd para leer los cambios en el fichero xinetd.conf.

La comprobación del acceso anónimo al nuevo repositorio requiere una cuenta en otra máquina que pueda conectar con el servidor CVS a través de la red. No es necesaria una cuenta en el repositorio CVS. Para comprobar el acceso anónimo al repositorio entra en otra máquina como usuario sin privilegios y ejecuta el siguiente comando:

cvs -d:pserver:anonymous@servername:/cvsroot co cvstest

Explicación de los comandos

mkdir /cvsroot : Crea el directorio del repositorio CVS.

chmod 1777 /cvsroot : Permisos de bit pegajoso (sticky bit) para CVSROOT.

export CVSROOT=/cvsroot : Especifica el nuevo CVSROOT para todos los comandos cvs.

cvs init : Inicializa el nuevo repositorio CVS.

cvs import -m "repository test" cvstest vendortag releasetag : Todos los módulos de código fuente deben importarse al repositorio CVS antes de usarlos con el comando cvs import. La opción -m especifica una entrada descriptiva inicial para el nuevo módulo. El parámetro "cvstest" es el nombre utilizado para el módulo en todos los comandos cvs posteriores. Los parámetros "vendortag" y "releasetag" son usados para una posterior identificación de cada módulo CVS y son obligatorios tanto si se usan como si no.

(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) : Comprueba si existe el usuario anonymous y lo crea si no lo encuentra.

echo anonymous: > /cvsroot/CVSROOT/passwd : Añade el usuario anonymous al fichero de contraseñas de CVS, que no es utilizado para nada más en esta configuración.

echo anonymous > /cvsroot/CVSROOT/readers : Añade el usuario anonymous al fichero de lectores de CVS, una lista de los usuarios que tienen acceso en modo de sólo lectura al repositorio.