CVS
A HupWiki-ből...
Concurrent Versions System - Verziókövető rendszer
Olyan esetben használják, ha egy alkalmazást többen fejlesztenek egyszerre, és nem lenne előnyös, ha a különféle változatok összekeverednének. Roppant elterjedt és egyszerű a használata. A fejlesztés során a fejlesztés tetszőleges régebbi állapota visszakereshető.
Főleg BSD-s körökben népszerű a CVSup, ami leginkább az rsynchez hasonlítható, tehát tükrözésre használatos, viszont az rsync-kel ellentétben cvs-hez optimalizálták.
Biztonságos távoli CVS elérés
A CVS az alatta fekvő filerendszer és userspace azonosító/hozzáférést ellenőrző módszereit használja. Elsőre nem tervezték hálózatos működésre, csak később került bele (ext direktíva). Több hálózatos csatlakozási módja is van, ebből a pserver nem túl biztonságos, a különböző rsh-s megoldások idejétmúltak, GSSAPIval meg nem triviális belőni (kell 1 implementacio, pl. Kerberos). Mi marad? SSH. Az rsh transport helyére betéve már egy jó, biztonságosnak mondható megoldást kapunk. Nosza, rajta :
- Tegyük fel a CVS-t, SSH-t a szerverre
Debian alatt
apt-get install cvsutils cvs ssh
- Hozzunk létre egy felhasználót akinek a nevében turkáljuk majd a cvs-t
adduser foocvs
- Módosítsuk az SSH konfigját...
... úgy, hogy elfogadja az SSH kulcsokat (ki akar még a passwordozessel is bajlódni, ha fejleszt?)
PubkeyAuthentication yes
- Generáljuk le a kulcsainkat
Ez mindenkinek, aki hozzásférést akar, meg kell csinálnia (saját néven bejelentkezve).
ssh-keygen -t rsa ssh-keygen -t dsa
Alapértelmezetten a ~/.ssh/ könyvtárba kerülnek a file-ok, ebből a .pub kiterjesztésűeket juttassuk fel a szerverre (pl. scp).
- Vegyük fel a kulcsainkat a szerveren
A CVS userünk $HOME/.ssh könyvtárában adjuk ki:
touch authorized_keys
majd vegyünk fel a file-ba sorokat így:
#XYZ hozzaferese a foo projekt CVSehez command="/usr/bin/cvs server",no-port-forwarding,no-pty,no-X11-forwarding,no-agent-forwarding ssh-rsa ASDG..= user@srv
A # jel megjegyzést jelöl. Minden kulcs bejegyzése 1 sor, formátuma: a bejelentkezéskor végrehajtandó parancs (nem kap shellt), opciók (szóköz nélkül), kulcs. A kulcs (publikus részét) a .pub fájlból kimásolva lehet egyszerűen beilleszteni a sor végére. Ha valaki RSA és DSS kulcsot használ, akkor a neve alatt két bejegyzés kell (a két kulcsnak). A fájlba mindenkinek fel kell venni a kulcsait, akinek hozzáférést akarunk adni a CVS repositoryhoz.
- CVS repo inicializálása
Jelentkezzünk be a szerverre.
su foocvs cd cvs -d/home/foocvs/cvs init
Így a CVS userünk home-jában keletkezik egy CVS repo, ami innentől használható.
- CVS használat tesztelése
Egy - már kulcsait felvett - felhasználóként adjuk ki:
env CVS_RSH=ssh cvs -d:ext:foocvs@server:/home/foocvs/cvs checkout .
Ha a CVS munkapéldányunk megvan, használhatjuk a rövidebb formát is:
env CVS_RSH=ssh cvs checkout .
Ha a login scriptünkben elintézzük a CVS_RSH változó helyes beállítását és még rövidítünk a parancson, akkor pedig:
cvs co .
A fentiek Arnaud receptje alapján íródtak (ld. linkek), feltételezve hogy 1 projektet kell kiszolgálni, a tagok megbíznak egymásban annyira, hogy minden felvett user írni/olvasni tudja a CVS repo-t. Ne feledkezzünk el a rendszeres mentésről!
FIXME (CHROOT)
Külső hivatkozások
CVS over SSH linkek: