{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Ochrona przed samym sobą, czyli krótki opis zestawu narzędzi RCS

Słowo wstępne, czyli po co to wszystko...
Niniejszy artykuł zawiera krótki opis narzędzi, które są "rodzicami" CVSa - systemu kontroli wersji. Narzędzia te są zdecydowanie bardziej proste w obsłudze, niemniej pozwalają na trzymanie historii zmian plików. Jest to szczególnie bardzo przydatne dla plików konfiguracyjnych.

Zaczynamy przygodę
A zatem jak zacząć. Najlepiej oprzeć się na przykładzie. A zatem mamy następujące zadanie: zainstalować rcs do plików konfiguracyjnych sendmail'a (katalog /etc/mail).

Pierwszym krokiem będzie wykonanie katalogu - repozytorium dla rcs'a. Wykonujemy polecenie

mkdir /etc/mail/RCS.

Następnie należy określić, które pliki chcemy umieścić w repozytorium. Jest to o tyle istotne, że domyślnie pliki umieszczone w RCS nie posiadają atrybutu "w" nawet dla właściciela pliku. Warto o tym pamiętać w celu uniknięcia błędów w trakcie pracy administracyjnej. W naszym przykładzie w repozytorium umieścimy pliki: access, aliases, mailertable, sendmail.mc (sendmail.cf jest generowany na podstawie pliku mc), virtusertable itd. Pominiemy również pliki *.db, które są generowane na podstawie odpowiadających im plików tekstowych.

Umieszczenie w repozytorium
Przystępujemy zatem do umieszczenia pliku w repozytorium. W tym celu należy uruchomić program ci (CheckIn) z następującymi parametrami: ci -wuser plik(i). Jeżeli pominięty zostanie user (cała opcja -wuser), to plik zostanie umieszczony w repozytorium z informacją o bieżącym użytkowniku. Przed tym jednakże zostaniemy poproszeni o wpisanie komentarza - informacji początkowej, np. "Wystartowanie, 20.12.2001". Aby komentarz wpisać od razu w linii poleceń do zestawu opcji należy dodać -t-'KOMENTARZ'.

I tu niespodzianka. Pliku w bieżącym katalogu nie ma. Jest to zachowanie przy inicjalizacji repozytorium. W celu pobranie pliku, należy wykonać polecenie: co plik (CheckOut). Jak łatwo sprawdzić (ls -l plik), plik nie posiada flagi w.UPDATE: możemy ustrzec się przed "znikaniem" pliku dodoając do listu opcji -u. Ten prosty zabieg oszczędzi nam (w sumie) niepotrzebnej pracy.

Co zrobić, gdy chcemy nanieść poprawki?
Konieczne jest zablokowanie pliku do edycji (CheckOut): co -l plik(i). Ponowne wykonanie ls -l zwróci informację o prawach "rw" dla użytkownika. W tym momencie możemy przystąpić do edycji - wykonania zmian konfiguracji.

Po wykonaniu zmian, warto plik ponownie (nową wersję) umieścić w repozytorium. W tym celu wykonujemy polecenie: ci -wuser -u -m'komentarz do zmian' plik(i). I znów plik nie posiada atrybutu "w", natomiast w repozytorium jest nowa wersja pliku.

Tylko jak sprawdzić aktualną wersję pliku?
Najprościej jest (jako komentarz) umieścić znacznik '$_WYTNIJ_TO_Id_WYTNIJ_TO_$' na początku pliku. Po kolejnym wykonaniu ci w miejsce tego znacznika pojawi się informacja (przykład): $Id: rcs.txt,v 1.4 2003/02/11 04:54:48 wtp Exp $

Dopuszczamy innych do wykonywania zmian w plikach
Warto pomyśleć, czy nie warto rozszerzyć listy użytkowników mających prawo modyfikować dane pliki (szczególnie chodzi o użytkowników systemowych, np. roota. Możęmy to osiącnąc poprzez wydanie polecenia: rcs -aroot,toor,wtp plik(i).
Dokumentacja systemowa:
Zachęcam gorąco do poczytania sobie o wszystkich możliwościach RCSa. Być może jest tam coś, co się jeszcze przyda, a co mnie nie jest potrzebne iw tym krótkim artykule nie zostało opisane. ci(1), co(1), rcs(1)

Kontakt z autorem:
wtp@_NOSPAM_mud.pl

Wersja artykułu: $Id: rcs.txt,v 1.4 2003/02/11 04:54:48 wtp Exp $

Autor: 
Krzysztof Stryjek
Porozmawiaj o tym artykule na forum: 

quex, pon., 25/02/2008 - 01:17