Esecuzione di un server CVS

Esecuzione di un server CVS

Questa sezione descriverà come settare, amministrare e rendere sicuro un server CVS.

Dipendenze del server CVS

Necessaria

CVS-1.11.18 e OpenSSH-3.9p1

Settaggio di un server CVS.

Un server CVS verrà settato usando OpenSSH come metodo di accesso remoto. Altri metodi di accesso, incluso :pserver: e :server: non verranno usati per l'accesso in scrittura al repository CVS. Il metodo :pserver: invia password in chiaro sulla rete e il metodo :server: non è supportato in tutti i port di CVS. Istruzioni per l'accesso anonimo in sola lettura a CVS usando :pserver: si possono trovare al termine di questa sezione.

La configurazione del server CVS consiste di quattro passi:

1. Creazione di un repository.

Creare un nuovo repository CVS con i seguenti comandi:

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

2. Importare il codice sorgente nel repository.

Importare un modulo sorgente nel repository con i seguenti comandi, inseriti da un account utente sulla stessa macchina del repository CVS:

cd [sourcedir] &&
cvs import -m "[repository test]" [cvstest] [vendortag] [releasetag]

3. Verificare l'accesso al repository locale.

Testare l'accesso al repository CVS dallo stesso account utente con il seguente comando:

cvs co cvstest

4. Verificare l'accesso al repository remoto.

Testare l'accesso al repository CVS da una macchina remota usando un account utente che ha accesso ssh al server CVS con i seguenti comandi:

[Nota]

Nota

Sostituire [servername] con l'indirizzo IP o il nome host della macchina CVS repository. Apparirà un prompt con la richiesta della password di shell dell'account utente prima che la verifica CVS possa continuare.

export CVS_RSH=/usr/bin/ssh &&
cvs -d:ext:[servername]:/srv/cvsroot co cvstest

Configurazione di CVS per accesso anonimo in sola lettura.

CVS può essere settato per consentire l'accesso anonimo in sola lettura usando il metodo :pserver: eseguendo il logon come root ed eseguendo i seguenti comandi:

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

Se si usa inetd il seguente comando aggiungerà la voce pserver a /etc/inetd.conf:

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

Digitare un killall -HUP inetd per rileggere il file inetd.conf modificato.

Se si usa xinetd il seguente comando aggiungerà la voce pserver a /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=/srv/cvsroot pserver
     }
EOF

Digitare un /etc/rc.d/init.d/xinetd reload per rileggere il file xinetd.conf cambiato.

Il test dell'accesso anonimo al nuovo repository richiede un account su un'altra macchina che possa reggiungere il server CVS attraverso la rete. Non è necessario nessun account sul repository CVS. Per testare l'accesso anonimo al repository CVS, fare il log in su un'altra macchina come utente senza privilegi ed eseguire i seguenti comandi:

cvs -d:pserver:anonymous@[servername]:/srv/cvsroot co cvstest
[Nota]

Nota

Sostituire [servername] con l'indirizzo IP o l'hostname del server CVS.

Spiegazioni dei comandi

mkdir /srv/cvsroot: crea la directory del repository CVS.

chmod 1777 /srv/cvsroot: setta i permessi dello sticky bit per CVSROOT.

export CVSROOT=/srv/cvsroot: specifica il nuovo CVSROOT per tutti i comandi cvs.

cvs init: inizializza il nuovo repository CVS.

cvs import -m "repository test" cvstest vendortag releasetag: tutti i moduli di codice sorgente devono essere importati nel repository CVS prima dell'uso con il comando cvs import. Il flag -m specifica un campo iniziale descrittivo per il nuovo modulo. Il parametro "cvstest" è il nome usato per il modulo in tutti i successivi comandi cvs. I parametri "vendortag" e "releasetag" sono usati identificare ulteriormente ciascun modulo CVS e sono obbligatori che siano usati o meno.

(grep anonymous /etc/passwd || useradd anonymous -s /bin/false): verifica l'esistenza di un utente anonimo e ne crea uno se non lo trova.

echo anonymous: > /srv/cvsroot/CVSROOT/passwd : aggiunge l'utente anonimo al file passwd CVS, che non è utilizzato per nient'altro in questa configurazione.

echo anonymous > /srv/cvsroot/CVSROOT/readers: aggiunge l'utente anonimo al file di lettura CVS, un elenco di utenti che hanno accesso in sola lettura al repository.

Last updated on