3 Ειδική Εγκατάσταση του FreeBSD Project

Το ίδιο το FreeBSD project χρησιμοποιεί μια ελαφρώς διαφορετική εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο freebsd του CVSROOT που χρησιμοποιείται στο FreeBSD. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group. Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε αυτό του repository.

Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε μια σύντομη επισκόπηση των σχετικών αρχείων.

3.1 Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του FreeBSD



3.2 Η διαδικασία

  1. Διορθώστε το αρχείο access ώστε να περιέχει μόνο το δικό σας username.

  2. Διορθώστε το αρχείο 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"
    
  3. Το επόμενο βήμα είναι να εγκαταστήσουμε τον 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, θα πρέπει να έχει τα κατάλληλα επίπεδα πρόσβασης.

  4. Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το οποίο θα γίνεται και η τελική πρόσβαση.

3.3 Ελέγχοντας την εγκατάσταση

Ο 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>.