Το ίδιο το FreeBSD project χρησιμοποιεί μια ελαφρώς διαφορετική
εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο
freebsd
του
CVSROOT
που χρησιμοποιείται στο
FreeBSD. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των
committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group.
Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει
τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε
αυτό του repository.
Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε μια σύντομη επισκόπηση των σχετικών αρχείων.
access
- το αρχείο αυτό ελέγχει τις
πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το
επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του
project σας.
freebsd/commitmail.pl
- το αρχείο αυτό
δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους.
Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο.
freebsd/cvswrap.c
- πρόκειται για τον
πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για
να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν.
Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε
παρακάτω. Θα πρέπει να διορθώσετε τα paths στις
ACCESS
και REALCVS
μακροεντολές ώστε να ταιριάζουν με τη δική σας
εγκατάσταση.
freebsd/mailsend.c
- το αρχείο αυτό
χρειάζεται για την σχετική με τις λίστες ταχυδρομείου
εγκατάσταση του FreeBSD. Δεν θα χρειαστεί να πειράξετε το αρχείο
αυτό.
Διορθώστε το αρχείο access
ώστε να
περιέχει μόνο το δικό σας username.
Διορθώστε το αρχείο cvswrap.c
ώστε να
περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται
ως μια μακροεντολή που ονομάζεται ACCESS
. Θα
πρέπει επίσης να αλλάξετε και το όνομα αρχείου του πραγματικού
cvs
binary αν αυτή που υπάρχει δεν είναι η
σωστή για τη δική σας περίπτωση. Το κανονικό
cvswrap.c
θεωρεί πως θα αντικαταστήσετε την
εντολή cvs σε επίπεδο συστήματος με το cvwrap, κι η αρχική εντολή
cvs θα μεταφερθεί στο
αρχείο /usr/bin/ncvs
.
Το δικό μου αντίτυπο του αρχείου
cvswrap.c
έχει τα ακόλουθα:
#define ACCESS "/local/cvsroot/CVSROOT/access" #define REALCVS "/usr/bin/ncvs"
Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να
είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν
γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο
cvswrap.c
στον κατάλογο
CVSROOT
.
Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να περιέχει τα σωστά paths:
%
cc -o cvs cvswrap.c
Στη συνέχεια εγκαταστήστε το νέο cvs εκτελέσιμο ακολουθώντας τα ακόλουθα βήματα (θα πρέπει να είστε root για το βήμα αυτό):
#
mv /usr/bin/cvs /usr/bin/ncvs
#
mv cvs /usr/bin/cvs
#
chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
#
chmod o-rx /usr/bin/ncvs
#
chmod u-w,g+s /usr/bin/cvs
Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού
cvs
εντολή, κάνοντας έτσι σίγουρο ότι
οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να
έχει τα κατάλληλα επίπεδα πρόσβασης.
Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το οποίο θα γίνεται και η τελική πρόσβαση.
Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το
δοκιμάσετε κάνοντας ένα forced commit στο αρχείο
access
:
%
cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access
Ξανά, αν αυτό αποτύχει, ελέγξτε ότι όλα τα παραπάνω βήματα έχουν εκτελεστεί σωστά.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την
τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην
<doc@FreeBSD.org>.