Esta sección describirá cómo levantar, administrar y asegurar 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:
Crea un nuevo repositorio CVS con los siguientes comandos, siendo root:
mkdir /cvsroot && chmod 1777 /cvsroot && export CVSROOT=/cvsroot && cvs init |
Importa un módulo de fuentes al repositorio con los siguientes comandos, a partir de una cuenta de usuario en la misma máquina que el repositorio CVS:
export CVSROOT=/cvsroot && cd sourcedir && cvs import -m "repository test" cvstest vendortag releasetag |
Comprueba el acceso local al repositorio CVS desde la misma cuenta de usuario con el siguiente comando:
cvs co cvstest |
Comprueba el acceso al repositorio CVS desde una máquina remota usando una cuenta de usuario que tenga acceso ssh al servidor CVS con los siguientes comandos:
Nota: Sustituye [servername] con la dirección IP o el nombre de la máquina donde está el repositorio CVS. Se te preguntará la contraseña de la cuenta ssh antes de que el cvs checkout pueda continuar.
export CVS_RSH=/usr/bin/ssh && cvs -d:ext:[servername]:/cvsroot co cvstest |
CVS puede configurarse 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 CVS, entra en otra máquina como usuario sin privilegios y ejecuta el siguiente comando:
cvs -d:pserver:anonymous@[servername]:/cvsroot co cvstest |
Nota: Sustituye [servername] con la dirección IP o el nombre del servidor CVS.
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 con el comando cvs import al repositorio CVS antes de usarlos. 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.