Instytut Elektroniki
Wydział Automatyki, Elektroniki i Informatyki
Politechniki Śląskiej
SIECI KOMPUTEROWE
LABORATORIUM
Instrukcja do ćwiczenia nr 5
Gliwice 2011
Ćwiczenie 5
Konfiguracja serwera FreeBSD
5.1
Wstęp
System UNIX jest wielodostępnym i wielozadaniowym systemem opera-
cyjnym, ponieważ może obsługiwać jednocześnie wielu użytkowników i wy-
konywać jednocześnie wiele zadań. W wielu dużych firmach do zarządzania
zasobami komputerowymi stosuje się bardzo wydajne i w dużym stopniu nie-
zawodne komputery z systemami zapewniającymi pracę wielu komputerów
i terminali, przy czym wszystkie istotne informacje (programy i dane) są
gromadzone w centralnym komputerze. Ze względu na wymogi bezpieczeń-
stwa danych, w systemie mogą pracować tylko zarejestrowani użytkownicy,
zaś dostęp każdego z nich do swojego konta (konto to obszar pracy oraz dane
pojedynczego użytkownika) jest chroniony hasłem. Jednym z najbardziej roz-
powszechnionym na świecie systemem zapewniającym dobrą ochronę danych
jest właśnie system UNIX.
5.1.1
System operacyjny UNIX
Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to
skrót – nazwa ”UNIX” jest kalamburem określenia MULTICS, który był wzo-
rem dla Uniksa) - system operacyjny napisany w 1969 r. w Bell Labs (UNIX
System Laboratories) przez Dennisa Ritchie i Kena Thompsona. Rozwija-
ny później w bardzo dynamiczny sposób, co zaowocowało powstaniem wielu
odmian i implementacji.
UNIX jest zarejestrowanym znakiem towarowym The Open Group. Jest
najbardziej znany z tego, iż wszystko w systemie jest plikiem. Unix wywarł
duży wpływ na dzisiejszą informatykę, tak bezpośredni jak i pośredni. To
jemu zawdzięczają swoją popularność język C.
Ćwiczenie 5 - Wstęp
3
Współcześnie Unix stał się synonimem całej rodziny systemów wywodzą-
cych się od pierwotnego pnia lub klonów zgodnych ze zestandaryzowanymi
normami POSIX (GNU/Linux, GNU/Hurd) lub Single UNIX Specification
(z/OS). W obrębie systemów UNIX wywodzących się z oryginalnego kodu
AT&T wyróżnia się pochodne: Systemu V lub BSD. Współcześnie ze wzglę-
du na liczne wzajemne powiązania i zapożyczenia taki podział stracił na ak-
tualności. Unix był prekursorem nowych technologii takich jak rekursywny
system plików i NFS. [5]
5.1.2
System operacyjny FreeBSD
FreeBSD – popularny system operacyjny z rodziny Unix. Do wersji 2.0
wywodził się z systemu 4.3BSD, kolejne wersje wywodziły się z 4.4BSD Li-
te2; obu stworzonych przez Computer Systems Research Group (CSRG) na
Uniwersytecie Kalifornijskim w Berkeley. Podobnie jak NetBSD, jest bezpo-
średnią pochodną 386BSD, systemu będącego pierwszą próbą przeniesienia
systemu Unix z gałęzi BSD na architekturę IA-32.
FreeBSD charakteryzuje się dużą ilością nowinek w porównaniu z innymi
systemami wywodzącymi się 4.4BSD: NetBSD i OpenBSD. Początkowo ini-
cjatorzy projektu FreeBSD postanowili skupić się na stworzeniu systemu dla
najpopularniejszej architektury sprzętowej i386. Z czasem jednak zaczęły się
ukazywać także wersje dla architektur PC98, DEC Alpha (od wersji 7 sys-
temu architektura ta przestaje być wspierana), Sun UltraSPARC, AMD64,
IA-64 Itanium, ARM i PowerPC; w przygotowaniu jest wersja dla procesorów
MIPS.
FreeBSD korzysta z opartego na źródłach systemu pakietowania znanego
jako porty. Szkielet tego rozwiązania opiera się na plikach automatyzujących
Makefile dla BSD make. Repozytorium portów zawiera prawie 18 tysięcy
programów przystosowanych do działania na tym systemie. Na bazie portów
udostępniane są binarne, prekompilowane pakiety z domyślnymi opcjami dla
wszystkich aktualnie wspieranych wersji i architektur sprzętowych FreeBSD.
Zalety portów przyczyniły się do tego, że stały się bazą lub zainspirowa-
ły rozwój zbliżonych rozwiązań wykorzystywanych w systemach OpenBSD,
NetBSD (pkgsrc) oraz Linux Gentoo (portage).
Ze względu na swą wydajność i niezawodność (niemal wzorcowa imple-
mentacja stosu TCP/IP) często stosowany jako serwer lub zapora sieciowa.
FreeBSD obsługuje wiele z najbardziej obciążonych serwisów w Internecie
(Yahoo!, ISC, Apache.org, New York Internet, Netcraft czy polski Home.pl).
Równie dobrze spełnia swoją rolę jako system operacyjny na biurko.
Ze względu na liberalną licencję fragmenty jego kodu znalazły się w takich
projektach jak Microsoft Windows, a ostatnio Mac OS X oraz Mac OS X Se-
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
4
rver, który powstał w oparciu o mikrojądro Mach i rozwiązania zaczerpnięte
z FreeBSD oraz NetBSD. Również wiele zamkniętych urządzeń (np. routery
Junipera czy sprzętowe zapory firmy Nokia) działa w oparciu o FreeBSD. [5]
5.2
Polecenia systemu operacyjnego Unix
W systemach Unix, oraz w systemach uniksopodobnych polecenia są czę-
sto programami uruchamianymi z wiersza poleceń powłoki systemowej. Czę-
sto różne powłoki mają dodatkowo wbudowane własne implementacje nie-
których poleceń; np. zawierają wersję polecenia dostępnego jako /bin/echo.
To, która wersja polecenia będzie wykonana domyślnie zależy od tego, która
powłoka jest używana oraz od konfiguracji systemu. Podstawową powłoką
większości systemów Unix jest Bourne Shell dostępna zwykle jako /bin/sh
lub /usr/bin/sh, jednak częściej w pracy interaktywnej używa się wywo-
dzących się z niej, bardziej rozbudowanych powłok takich jak Bash, Korn
Shell, Z Shell, czy też spokrewnionych C Shell i Tcsh. Większość powłok
może być także używana jako języki skryptowe, co pozwala użytkownikowi
na wykonywanie rozbudowanych poleceń wykorzystujących wiele programów,
oraz pisanie skryptów automatyzujących często wykonywane czynności. Za
pomocą mechanizmów potoków i kolejek można w łatwy sposób przekazywać
dane pomiędzy wieloma programami tworząc z nich bardziej skomplikowane
narzędzia. [5]
5.2.1
Zestaw najważniejszych poleceń
Poniżej zestawiono najważniejsze polecenia systemu UNIX. Wyczerpujące
informacje na temat każdego z nich dostępna jest za pomocą polecenia:
$ man <nazwa_polecenia>
Zarządzanie plikami i systemem plików
• cat – wypisywanie i łączenie plików
• chgrp – zmiana grupy pliku
• chmod – zmiana praw dostępu do pliku
• chown – zmiana właściciela/grupy pliku
• cd – zmiana bieżącego katalogu, użyty bez argumentów powraca do
katalogu domowego
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
5
• cp – kopiowanie plików
• df – wypisywanie wolnej przestrzeni zamontowanych systemów plików
• du – wyświetla ilość miejsca zajmowanego przez pliki/katalogi
• find – przeszukiwanie systemu plików
• fsck - sprawdzanie integralności systemu plików
• ln – tworzenie dowiązań twardych i symbolicznych (patrz niżej)
• ls – listowanie zawartości katalogu
• lsof - wyświetlanie listy otwartych plików, oraz używających ich pro-
gramów
• mkdir – tworzenie katalogów
• mount – montowanie urządzeń/zasobów w systemie plików (patrz niżej)
• mv – przenoszenie/zmiana nazwy pliku
• pwd – wydruk aktualnego katalogu
• rm – usuwanie plików i katalogów
• split - dzielenie pliku na kawałki
• touch - zamiana daty ostatniej modyfikacji, lub dostępu do pliku bądź
utworzenie pustego pliku
• umount – odmontowanie zasobu z systemu plików (patrz mount)
Zarządzanie procesami
• at - jednorazowe wykonywanie polecenia w określonym czasie
• chroot - uruchomienie programu ze zmienionym katalogiem głównym
• cron - regularne uruchamianie programów w określonym czasie
• fg – przeniesienie procesu uruchomionego w tle na pierwszy plan
• kill – przekazanie sygnału do procesu (domyślnie usunięcie wskazane-
go procesu)
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
6
• killall - zakończenie wykonywania wszystkich procesów o podanej
nazwie
• ps – pobieranie informacji o aktywnych procesach
• top – wyświetla najważniejsze procesy
• watch - monitorowanie wyniku polecenia
Zarządzanie użytkownikami i systemem
• halt – zatrzymywanie systemu
• passwd – zmiana hasła
• su – logowanie na konto innego użytkownika (patrz niżej)
• sudo – uruchomienia aplikacji z uprawnieniami root
• adduser - dodaje nowego użytkownika
• w – podobnie jak who, jednak zawiera więcej informacji
• who – wypisanie listy zalogowanych użytkowników wraz z dodatkowymi
informacjami o nich
• whoami – pokazuje bieżący efektywny uid, czyli identyfikator użytkow-
nika, z którego prawami działamy
• rmuser - usuwa użytkownika
Przetwarzanie tekstu
• cut – wycina określone znaki z wejścia (zazwyczaj z pliku)
• grep – wypisywanie linii pasujących do wzorca
• head - wypisanie pierwszych 10 linijek tekstu
• more – rozwinięcie o sterowanie strumieniem
• tail – wypisanie ostatnich 10 linijek tekstu, także używane w diagno-
styce
• tee – wypisywanie danych wejściowych na standardowe wyjście i do
dowolnej liczby plików
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
7
• vi – edycja plików tekstowych
• wc – narzędzie do liczenia słów, znaków, linii lub bajtów w pliku lub
potoku
Operacje wejścia/wyjścia
• echo – druk na standardowe wyjście
• printf - bardziej rozbudowane polecenie drukujące na standardowe
wyjście.
• read - wczytanie znaków z terminala
Inne
• clear – wyczyszczenie konsoli/terminala
• mail – zarządzanie pocztą
• man – podręcznik elektroniczny
• startx – uruchomienie środowiska X Window System
• test - sprawdzanie typów plików i porównywanie wartości
5.2.2
Edycja tekstu za pomocą edytora vi
Edytor vi pomimo pozornego anachronizmu nadal jest wykorzystywany
chętnie przez administratorów i programistów. Jego największe zalety to:
• dostępność praktycznie w każdym systemie uniksowym bez konieczno-
ści doinstalowywania pakietów czy bibliotek,
• możliwość pracy w bardzo ubogim środowisku terminalowym - bez gra-
fiki i przy ograniczonym zestawie znaków,
• możliwość pełnoekranowej edycji plików nawet przy bardzo wolnym
łączu - przez sieć dla każdej edycji przesyłane jest tylko tyle znaków,
ile zostało wpisane, a odświeżany jest tylko niewielki fragment tekstu,
którego dotyczy edycja.
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
8
Edytor vi jest edytorem ekranowym, co oznacza, że użytkownik widzi na
ekranie fragment pliku i może się po nim swobodnie poruszać za pomocą kur-
sorów, dokonywać zmian w tekście i dopisywać nowy tekst. Edytor vi można
uruchomić z argumentem będącym nazwą pliku. Jeżeli taki plik nie istnieje,
to zostanie utworzony nowy. Edytor vi w przeciwieństwie do prawie wszyst-
kich innych edytorów jest modalny – w każdej chwili znajduje się w jednym
z dwu trybów pracy, trybie wstawiania lub trybie poleceń. Bezpośrednio po
uruchomieniu vi znajduje się w trybie poleceń. Przejście do trybu wstawiania
odbywać się może m. in. przez wydanie polecenia i (insert) lub a (append).
Polecenia vi nie wymagają potwierdzenia klawiszem Enter, wykonywane są
natychmiast.
Przejście z trybu wstawiania do trybu poleceń odbywa się przez naciśnię-
cie klawisza Esc.
W istocie vi jest edytorem ex działającym w trybie wizualnym, dlatego
wszystkie polecenia edytora ex dostępne są także w vi. Polecenia ex wydawa-
ne w trybie poleceń poprzedzane są dwukropkiem : i wymagają potwierdzenia
klawiszem Enter.
Polecenia edytora vi składają się z kilku grup:
Polecenia edycyjne
• a - wpisywanie tekstu za kursorem
• A - wpisywanie tekstu na końcu aktualnej linii
• i - wstawianie tekstu przed kursorem
• I - wstawianie tekstu na początku aktualnej linii
• o - utworzenie nowej linii poniżej aktualnej
• O - utworzenie nowej linii powyżej aktualnej
• R - zastępowanie tekstu
• s - zastąpienie znaku wskazanego przez kursor
• S - zastąpienie aktualnej linii
• c - zmiana zaznaczonego tekstu
• C - zmiana do końca linii
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
9
Polecenia zmieniające tekst
• x - skasowanie znaku wskazywanego przez kursor
• X - skasowanie znaku przed kursorem
• d - skasowanie wskazanego tekstu
• dd - skasowanie aktualnej linii
• D - skasowanie tekstu od aktualnej pozycji aż do końca linii
• y - skopiowanie wskazanego tekstu do bufora pomocniczego
• Y - skopiowanie linii tekstu do bufora pomocniczego
• p - wstawienie tekstu za kursorem
• P - wstawienie tekstu przed kursorem
• J - połączenie linii
• > - przesunięcie tekstu w prawo
• < - przesunięcie tekstu w lewo
• ! - przetworzenie tekstu przez polecenie systemowe i zastąpienie tego
tekstu przez wyjście tego polecenia
• r - zastąpienie znaku wskazywanego przez kursor
• m - zaznaczenie linii tekstu
• u - anulowanie ostatniej zmiany (ponowne wciśnięcie powoduje ponow-
ne zastosowanie ostatniej zmiany)
Polecenia sterujące kursorem
• 0 - przeniesienie kursora na początek linii
• ^ - przeniesienie kursora na początek linii
• $ - przeniesienie kursora na koniec linii
• h - przeniesienie kursora w lewo
• j - przeniesienie kursora w dół
Ćwiczenie 5 - Polecenia systemu operacyjnego Unix
10
• k - przeniesienie kursora w góre
• l - przeniesienie kursora w prawo
• ^H - skasowanie znaku przed kursorem (klawisz backspace)
• f - przeniesienie do przodu do podanego znaku
• F - przeniesienie do tyłu do podanego znaku
• t - przeniesienie do przodu przed wskazany znak
• T - przeniesienie do tyłu przed wskazany znak
• ; - powtórzenie ostatniego polecenia f, F, t, T
• , - odwrócenie działania ostatniego polecenia f, F, t, T
• | - ustawienie kursora w podanej kolumnie
• % - odnalezienie pary dla wskazanego nawiasu
• B - ustawienie kursora na początku poprzedniego słowa (słowo = ciąg
znaków bez znaków białych)
• W - ustawienie kursora na początku następnego słowa (słowo = ciąg
znaków bez znaków białych)
• H - przeniesienie kursora na górę ekranu
• L - przeniesienie kursora na dół ekranu
• spacja - przeniesienie kursora w prawo
Polecenia sterujące ekranem
• ^F - przesunięcie okna ekranowego o jeden ekran do przodu
• ^B - przesunięcie okna ekranowego o jeden ekran do tyłu
• G - przesunięcie okna ekranowego do podanej linii
• / - wyszukanie podanego wzorca w przód (po dojściu na koniec pliku
kontynuowanie szukania od początku)
• ? - wyszukanie podanego wzorca w tył (po dojściu na początek pliku
kontynuowanie szukania od końca)
Ćwiczenie 5 - Konfiguracja serwera
11
• ^L - wyczyszczenie i przerysowanie ekranu
• ^R - przerysowanie ekranu
Wybrane polecenia ex
• :q - wyjście z edytora pod warunkiem braku zmian od ostatniego zapisu
• :q! - wyjście z edytora bez zapisania pliku
• :w - zapisanie pliku
• :w nazwa - zapisanie pliku pod nową nazwą
• :w! - zapisanie pliku (z wymuszonym zapisaniem plików tylko do od-
czytu)
• :wq - wyjście z edytora z zapisaniem pliku
• :x - wyjście z edytora z zapisaniem pliku (bez zapisania przy braku
zmian)
• :x! - wyjście z edytora z zapisaniem pliku (bez zapisania przy braku
zmian, z wymuszonym zapisaniem plików tylko do odczytu)
• ZZ - wyjście z edytora z zapisaniem pliku
• :e nazwa - otworzenie pliku do edycji
• :help - wyświetlenie pomocy
5.3
Konfiguracja serwera
Konfiguracja serwera, podobnie jak konfiguracja systemu operacyjnego,
to szereg czynności mających na celu dostosowanie systemu do potrzeb i wy-
magań użytkownika oraz do funkcji jaką w przyszłości będzie pełnił serwer.
Konfigurację rozpoczyna się najczęściej zaraz po instalacji systemu, wtedy
jest to tzw. wstępna konfiguracja, lub też wtedy gdy zmianie ulegają warunki
pracy serwera (np. zmiana zasobów sprzętowych, oprogramowania) lub jego
przeznaczenie. W podrozdziale tym zostaną omówione podstawowe czynno-
ści konfiguracyjne dokonywane zwykle po instalacji systemu operacyjnego
FreeBSD.
Ćwiczenie 5 - Konfiguracja serwera
12
Większość plików konfiguracyjnych systemu operacyjnego FreeBSD, po-
dobnie jak w przypadku pozostałych systemów UNIX znajduje się w karto-
tekach: /etc oraz /usr/local/etc . Najważniejsze kartoteki konfiguracyjne
przedstawiono poniżej wraz z ich przeznaczeniem:
• /etc - lokalizacja głównych plików konfiguracyjnych systemu FreeBSD
lub aplikacji będących intergalną częścią systemu operacyjnego,
• /etc/defaults - zestaw domyślnych plików konfiguracyjnych,
• /etc/mail - pliki konfiguracyjne poczty elektronicznej,
• /etc/ppp - pliki konfiguracyjne usługi PPP,
• /etc/namedb - pliki konfiguracyjne usługi DNS,
• /etc/periodic/ - skrypty systemowe uruchamiane cyklicznie.
• /usr/local/etc - pliki konfiguracyjne dodatkowego oprogramowania,
nie będącego integralną częścią systemu operacyjnego,
• /usr/local/etc/rc.d - skrypty startowe dodatkowego oprogramowa-
nia,
W tabeli 5.1 zestawiono podstawowe pliki konfiguracyjne systemu FreeBSD
wraz z ich lokalizacją oraz przeznaczeniem. Większość parametrów starto-
wych serwera FreeBSD zawarta jest w pliku \etc\rc.conf. Modyfikacji za-
wartości tego pliku jak i zmiany niektórych parametrów konfiguracyjnych
można dokonywać ręcznie modyfikując jego zawartość za pomocą dowolnego
edytora tekstowego, lub też za pomocą programu instalacyjnego sysinstall.
Domyślna konfiguracja serwera zawarta jest w pliku \etc\default\rc.conf.
Nie należy modyfikować zawartości tego pliku. Wszelki zmiany konfiguracji
dokonujemy tylko i wyłącznie poprzez modyfikację zawartości pliku \etc\rc.conf.
W niniejszy ćwiczeniu zagadnienia konfiguracji systemu ograniczy się do
omówienia jej trzech aspektów, realizowanych najczęściej zaraz po zainstalo-
waniu systemu operacyjnego. Są to:
1. Konfiguracja i instalacja jądra systemowego,
2. Instalacja dodatkowego oprogramowania,
3. Aktualizacja systemu FreeBSD.
Ćwiczenie 5 - Konfiguracja serwera
13
Tabela 5.1: Podstawowe pliki konfiguracyjne systemu operacyjnego FreeBSD
nazwa pliku
przeznaczenie pliku konfiguracyjnego
/etc/crontab
konfiguracja demona operacji cyklicznych
/etc/disktab
specyfikacja geometrii napędów dyskowych
/etc/fstab
specyfikacja systemu plików
/etc/group
lista grup do których mogą należeć użytkownicy
/etc/hosts
baza danych nazw oraz numerów IP maszyn lokalnych
/etc/hosts.allow
konfiguracja dostępu do serwera z maszyn zdalnych
/etc/inetd.conf
konfiguracja demona obsługi portów internetowych
/etc/login.access
konfiguracja dostępu użytkowników do serwera
/etc/login.conf
konfiguracja i specyfikacja uprawnień klas użytkowników
/etc/master.passwd
specyfikacja danych o użytkownikach wraz z hasłami
/etc/mord
komunikat dzienny wyświetlany przy logowaniu
/etc/networks
specyfikacja podziału sieci lokalnej na podsieci
/etc/passwd
specyfikacja danych o użytkownikach
/etc/printcap
konfiguracja dostępu do drukarek
/etc/rc.*
grupa plików startowych systemu
/etc/rc.conf
specyfikacja parametrów startowych serwera FreeBSD
/etc/shells
lista dozwolonych w systemie interpreterów poleceń
/etc/syslog.conf
konfiguracja demona komunikatów systemowych
/usr/local/etc
pliki konfiguracyjne zainstalowanych aplikacji.
/usr/local/etc/rc.d
skrypty uruchamiające zainstalowane aplikacje.
/var/db
trwałe dane systemowe, pliki baz danych itp.
5.3.1
Konfiguracja, kompilacja i instalacja jądra syste-
mowego
Jądro stanowi tę część systemu operacyjnego, która pośredniczy w do-
stępie do zasobów sprzętowych serwera. Jądro systemu odpowiedzialne jest
za obsługę urządzeń wewnętrznych i współpracę z pozostałymi komponenta-
mi systemu operacyjnego, mającą na celu optymalne wykorzystanie zasobów
sprzętowych takich jak: czas procesora, pamięć operacyjna, pamięć masowa
i urządzenia peryferyjne [3].
W praktyce spotyka się dwa rodzaje budowy jądra systemowego : mo-
nolityczną oraz modułową. W przypadku monolitycznego jądra systemowe-
go przy każdorazowej zmianie zasobów sprzętowych konieczna jest konfigu-
racja, kompilacja i instalacja nowego zmodyfikowanego jądra systemowego.
Konfiguracja jądra systemowego umożliwia jego dostosowane do konfiguracji
Ćwiczenie 5 - Konfiguracja serwera
14
sprzętowej komputera i funkcji jaką będzie pełnił system operacyjny. Pozwa-
la na uaktywnienie tych elementów jądra systemowego, które odpowiadają
danej konfiguracji sprzętowej komputera, dzięki czemu system operacyjny
będzie pracował bardziej optymalnie i niezawodnie, a zasoby sprzętowe (pa-
mięć i czas procesora) nie będą tracone na obsługę niewykorzystywanych na
danej platformie sprzętowej urządzeń. Dla przykładu jądro systemowe przy-
stosowane do obsługi zbyt wielu urządzeń, często nie istniejących w danym
systemie, będzie miało dużą redundancję i będzie zajmowało więcej pamięci
operacyjnej niż jest to konieczne.
Wiele systemów operacyjnych, w tym także FreeBSD ma modułową budo-
wę jądra systemowego. Dzięki takiej architekturze możliwe jest dostosowanie
jądra systemowego do wymagań bez potrzeby jego kompilacji. W praktyce
polega to na wyborze i załadowaniu tylko tych modułów jądra systemowego
które są niezbędne w danej konfiguracji sprzętowej.
Dobre dostosowanie jądra systemowego do potrzeb użytkownika ma fun-
damentalne znaczenie dla pracy całego systemu operacyjnego i daje nastę-
pujące korzyści:
• Skraca czas załadowania jądra systemowego, a tym samym restartu
systemu operacyjnego.
• Zmniejsza zajęty przez jądro systemu obszar pamięci operacyjnej.
• Umożliwia pracę z nowo zainstalowanymi urządzeniami zarówno we-
wnątrz systemu jak i urządzeniami peryferyjnymi.
Wersja dystrybucyjna systemu operacyjnego FreeBSD jest dostarczana
wraz z plikami źródłowymi systemu operacyjnego oraz jądra systemu opera-
cyjnego. Zaleca się przy instalowaniu systemu FreeBSD zainstalować także
pliki źródłowe jądra systemowego. Umożliwi to łatwą konfigurację, kompila-
cję i instalację nowego jądra, gdy zajdzie taka potrzeba. Źródła jądra sys-
temowego FreeBSD znajdują się zwykle w katalogu \usr\src\sys. W przy-
padku, gdy źródła nie zostały zainstalowane przy instalacji systemu, możliwe
jest zainstalowanie źródeł z dystrybucyjnego dysku CD-ROM. W takim przy-
padku należy wykonać następującą sekwencję poleceń:
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/sys/ssys.[a-d]* | tar -xzvf
Gdy źródła jądra systemowego znajdują się na serwerze, możliwe jest przystą-
pienie do konfiguracji jądra. W tym celu należy stworzyć własny plik konfigu-
Ćwiczenie 5 - Konfiguracja serwera
15
racyjny. Najlepszym rozwiązaniem jest wykorzystanie w tym celu istniejącego
pliku konfiguracyjnego o nazwie GENERIC :
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
Konfigurację jądra systemowego polega na modyfikacji pliku konfiguracyj-
nego, w naszym przypadku jest to plik MYKERNEL znajdujący się w kartote-
ce /usr/src/sys/i396/conf. Przykładowy fragment zawartości tego pliku
przedstawiono poniżej.
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.38 2002/01/25 17:41:40
machine
i386
cpu
I386_CPU
cpu
I486_CPU
cpu
I586_CPU
cpu
I686_CPU
ident
GENERIC
maxusers
32
options
MATH_EMULATE
#Support for x87 emulation
options
INET
#InterNETworking
options
INET6
#IPv6 communications protocols
options
FFS
#Berkeley Fast Filesystem
options
FFS_ROOT
#FFS usable as root device [keep this!]
options
SOFTUPDATES
#Enable FFS soft updates support
options
UFS_DIRHASH
#Improve performance on big directories
options
MFS
#Memory Filesystem
options
MD_ROOT
#MD is a~potential root device
options
NFS
#Network Filesystem
options
NFS_ROOT
#NFS usable as root device, NFS required
options
MSDOSFS
#MSDOS Filesystem
device
isa
device
eisa
device
pci
W pliku konfiguracyjnym znajdują się odpowiednie sekcje odpowiedzialne
za poszczególne funkcje jądra systemowego oraz za obsługę poszczególnych
urządzeń. Ustalenie odpowiedniej konfiguracji w pliku konfiguracyjnym moż-
liwe za pomocą odpowiednich słów kluczowych. Oto niektóre z nich:
• machine - określenie architektury sprzętowej systemu,
• cpu - specyfikacja rodzaju procesora,
• ident - identyfikator (nazwa) jądra systemowego,
• maxusers - maksymalna liczna użytkowników systemu,
Ćwiczenie 5 - Konfiguracja serwera
16
• options - uaktywnienie dodatkowych opcji (funkcji) jądra systemowe-
go,
• device - uaktywnienie obsługi danego typu urządzeń.
Po ustaleniu zawartości pliku konfiguracyjnego można przystąpić do kom-
pilacji i instalacji nowego jądra systemowego. W tym celu będąc w kartotece
/usr/src/sys/i386/conf wykonujemy szereg poleceń :
• config <nazwa_pliku_konfiguracyjnego> - wygenerowane odpowied-
nich plików niezbędnych do kompilacji nowego jądra systemowego,
• cd ../compile/<nazwa_pliku_konfiguracyjnego> - przejście do kar-
toteki źródłowej,
• make depend - kompilacja zmodyfikowanych elementów jądra systemo-
wego,
• make - kompilacja jądra systemowego oraz jego modułów,
• make install - instalacja nowego jądra systemowego.
Generalnie w wraz z wersją dystrybucyjną systemu FreeBSD dostarczo-
ne są dwa pliki konfiguracyjne jądra systemowego. Plik GENERIC opisujący
parametry jądra systemowego używanego przy starcie systemu FreeBSD za-
raz po jego instalacji, oraz plik konfiguracyjny o nazwie LINT uaktywniający
wszystkie możliwe funkcje dodatkowe jądra systemowego oraz współpracę ze
wszystkimi urządzeniami przystosowanymi do obsługi przez system FreeBSD.
Pełny wykaz urządzeń dostępny jest w dokumentacji systemu FreeBSD. Tam
też można znaleźć szczegółowe informacje na temat konfiguracji jądra syste-
mowego oraz pozostałych czynności konfiguracyjnych [1].
5.3.2
Instalacja dodatkowego oprogramowania
W systemie UNIX instalacja dodatkowego oprogramowania przebiega zwy-
kle w następujących kroków:
• Pobranie z Internetu oprogramowania w wersji binarnej (skompilowanej
i dedykowanej dla danego systemu) lub w wersji źródłowej wymagają-
cej kompilacji,
• Rozpakowanie archiwum,
• Zapoznanie się z dokumentacją oprogramowania opisującą sposób in-
stalacji i konfiguracji,
Ćwiczenie 5 - Konfiguracja serwera
17
• Uruchomienie skryptu konfiguracyjnego configure i kompilacja wersji
źródłowej oprogramowania,
• Instalacja, testowanie i konfigurowanie oprogramowania.
Poważne problemy zaczynają się gdy oprogramowanie nie posiada skryptu in-
stalacyjnego, wtedy użytkownik musi zainstalować oprogramowanie ręcznie.
Zdarza się także że dokumentacja jest niewystarczająca lub zainstalowanie
danego oprogramowania wymaga uprzedniej instalacji innych, wykorzysty-
wanych przez to oprogramowanie aplikacji. W takim przypadku użytkownik
napotyka na poważne trudności.
Twórcy systemu operacyjnego FreeBSD starali się maksymalnie ułatwić
użytkownikowi instalację dodatkowego oprogramowania i zautomatyzować
ten proces tak jak to tylko możliwe. Wraz z zainstalowaniem systemu opera-
cyjnego FreeBSD, użytkownikowi udostępniony jest zestaw ponad kilkudzie-
sięcy tysięcy różnych aplikacji gotowych do zainstalowania. Po uaktywnieniu
kompatybilności binarnej z innymi systemami np. systemem linux, liczba
aplikacji dostępnych dla użytkownika sięga kilkuset tysięcy. Szereg uspraw-
nień powoduje, że instalacja lub deinstalacja dodatkowego oprogramowania
jest maksymalnie uproszczona. Odpowiednie narzędzia umożliwiają rejestra-
cję i katalogowanie zainstalowanych aplikacji, co ułatwia zarządzanie nimi,
sprawdzenie aktualnie dostępnych wersji, automatyczną aktualizację lub de-
instalację wybranych aplikacji. W przypadku gdy zainstalowanie wybranego
oprogramowania wymaga uprzednie zainstalowanie współpracujących z nią
aplikacji, to proces ten jest całkowicie zautomatyzowany i nie wymaga in-
gerencji użytkownika. Lista dostępnego oprogramowania dedykowanego dla
systemu operacyjnego FreeBSD jest dostępna na serwerze projektu FreeBSD
1
. Generalnie użytkownik ma możliwość instalacji dodatkowego oprogramo-
wania w dwóch trybach:
• Instalacja oprogramowania w wersji binarnej (skompilowanej),
• Instalacja oprogramowania w wersji źródłowej, wymagająca uprzedniej
kompilacji (najczęściej za pomocą kompilatora C++) w celu stworzenia
plików binarnych.
Instalacja dodatkowego oprogramowania w wersji binarnej
Instalację oprogramowania w wersji binarnej przeprowadza się za pomocą
polecenia pkg_add. Istnieją co najmniej trzy tryby instalacji oprogramowania
w wersji binarnej. Oto one wraz z przykładami:
1
http://www.FreeBSD.org/ports/
Ćwiczenie 5 - Konfiguracja serwera
18
• pkg_add lsof-4.56.4.tgz - instalacja oprogramowania o nazwie lsof
w wersji 4.56.4 z dysku lokalnego,
• pkg_add -r lsof - zdalna instalacja oprogramowania o nazwie lsof
z sieci Internet w najnowszej dostępnej wersji, w przypadku gdy użyt-
kownik nie zna adresu pod którym dostępna jest aplikacja. W takim
przypadku system samodzielnie ustali lokalizację, ściągnie aplikację na
dysk lokalny i ją zainstaluje.
• pkg_add -f ftp://ftp.FreeBSD.org/packages/lsof-4.56.4.tgz -
zdalna instalacja wskazanego oprogramowania ze wskazaniem adresu
internetowego pod którym jest ona dostępna.
System rejestracji zainstalowanych aplikacji umożliwia łatwe zarządzanie
oprogramowaniem. Oto podstawowe funkcje tego systemu wraz z przykłada-
mi:
• pkg_delete lsof-4.56.4 - deinstalacja wybranego oprogramowania o
nazwie lsof w wersji 4.56.4 ,
• pkg_info - wyświetlenie listy aktualnie zainstalowanych aplikacji do-
datkowych wraz z krótkim opisem ich przeznaczenia,
• pkg_version - wyświetlenie listy zainstalowanych aplikacji wraz z in-
formacją o dostępnych uaktualnieniach,
Oprogramowanie dodatkowe w wersji binarnej można także zainstalować
z płyty dystrybucyjnej CD-ROM oraz za pośrednictwem sieci Internet wy-
korzystując do tego celu program instalacyjny /stand/sysinstall.
Instalacja dodatkowego oprogramowania w wersji źródłowej
Instalacja oprogramowania w wersji źródłowej wymaga pobrania wersji
źródłowej wybranego oprogramowania na dysk lokalny. Proces ten został
w znacznym stopniu zautomatyzowany. Po instalacji systemu FreeBSD na
dysku lokalnym zapisane są informacje o dostępnym oprogramowaniu, wraz
z krótkim opisem oraz skryptami za pomocą których możliwe jest auto-
matyczne pobranie, kompilacja i instalacja wybranych aplikacji. Instalację
rozpoczyna się o zlokalizowania skryptów instalacyjnych danego oprogramo-
wania (w tym wypadku aplikacji o nazwie lsof). Dokonać można tego za
pomocą komendy whereis:
# whereis lsof
lsof: /usr/ports/sysutils/lsof
Ćwiczenie 5 - Konfiguracja serwera
19
Następnie należy wejść do wskazanego katalogu zawierającego skrypty insta-
lacyjne oprogramowania (w tym wypadku aplikacji o nazwie lsof) i wykonać
polecenie make:
# cd /usr/ports/sysutils/lsof
# make install
Po wykonaniu powyższych poleceń rozpocznie się zautomatyzowany proces
instalacji oprogramowania składający się z następujących etapów:
• sprawdzenie czy na dysku lokalnym lub napędzie CD-ROM znajduje
się najnowsza zalecana wersja oprogramowania,
• jeżeli nie, to następuje wyszukanie oprogramowania w internecie i po-
branie na dysk lokalny wersji źródłowej,
• zainstalowanie wymaganych łat (ang. patches) jeśli takie istnieją,
• konfiguracja plików źródłowych i przystosowanie ich do kompilacji pod
systemem operacyjnym FreeBSD,
• kompilacja plików źródłowych,
• instalacja i rejestracja oprogramowania,
• wyświetlenie opcjonalnych komunikatów, w przypadku gdy wymagana
jest ingerencja użytkownika.
Po uruchomieniu na ekranie wyświetlona zostaną komunikaty informujące
o przebiegu poszczególnych etapów tego procesu:
# make install
>> lsof_4.57D.freebsd.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===>
Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===>
Patching for lsof-4.57
===>
Applying FreeBSD patches for lsof-4.57
===>
Configuring for lsof-4.57
===>
Building for lsof-4.57
===>
Installing for lsof-4.57
===>
Generating temporary packing list
===>
Compressing manual pages for lsof-4.57
Ćwiczenie 5 - Konfiguracja serwera
20
===>
Registering installation for lsof-4.57
===>
SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
Po zainstalowaniu aplikacji dostępne są wszystkie funkcje zarządzania zain-
stalowanym oprogramowaniem, tak jak to miało miejsce po instalacji opro-
gramowania w wersji binarnej.
5.3.3
Aktualizacja systemu operacyjnego FreeBSD
System operacyjny FreeBSD jest systemem stale rozwijającym się. Gru-
pa programistów stale pracuje nad nowymi wersjami systemu wprowadza-
jąc ciągłe zmiany, polegające na usuwaniu zgłoszonych przez użytkowników
błędów, dodaniu nowych funkcji do systemu i zwiększeniu możliwości oraz
funkcjonalności systemu operacyjnego. Efekty pracy tej grupy można doce-
nić wraz każdą nową wersją dystrybucyjną systemu, która wydawana jest co
kilka miesięcy. Są jednak mechanizmy pozwalające na śledzenie, synchroni-
zację i aktualizację plików źródłowych do bieżącej wersji systemu. Jedną z
nich jest CVS, CVSup (ang. Current Version System). Usługi te pozwalają
na synchronizację posiadanych przez użytkownika plików źródłowych z aktu-
alną ich wersją. W ramach projektu FreeBSD dostępne są następujące wersje
źródłowe systemu operacyjnego:
• FreeBSD-CURRENT - bieżąca, najnowsza wersja systemu operacyjnego
FreeBSD, często zawierająca jeszcze błędy, które mogą być powodem
niestabilności systemu. Testowanie pozwala na wykrycie błędów i stwo-
rzenie wersji stabilnej.
• FreeBSD-STABLE - wersja stabilna systemu operacyjnego FreeBSD, za-
lecana dla końcowego użytkownika. Ta wersja systemu jest wersją dys-
trybucyjną wzbogaconą o krytyczne poprawki do systemu operacyjne-
go.
• FreeBSD-RELEASE - wersja dystrybucyjna systemu operacyjnego FreeBSD,
dostępna także na nośnikach CD-ROM.
Zaleca się przeprowadzanie aktualizacji systemu wtedy, gdy na serwerze głów-
nym projektu FreeBSD
2
będzie dostępna informacja o aktualnych błędach
lub poprawkach bieżącej wersji dystrybucyjnej systemu. Uaktualnienie syste-
mu będzie wówczas możliwe poprzez zainstalowanie odpowiednich łat (ang.
2
http://www.FreeBSD.org
Ćwiczenie 5 - Konfiguracja serwera
21
patches) lub też poprzez synchronizację plików źródłowych oraz ich później-
szą kompilację i instalację. W ramach ćwiczenia zajmiemy się synchronizacją
plików źródłowych systemu FreeBSD za pośrednictwem narzędzia CVSup.
Aby zainstalować CVSup można skorzystać z wersji źródłowej, której
skrypty startowe znajdują się w katalogu /usr/ports/net/cvsup, lub też
zainstalować wersję binarną używając do tego celu komendy pkg_add:
# pkg_add -r cvsup
Przed aktualizacją systemu należy upewnić się czy zostały zainstalowane
pliki źródłowe systemu FreeBSD, które powinny znajdować się w kartotece
/usr/src. Jeśli brak plików źródłowych, należy je doinstalować korzystając
w tym celu z wersji dystrybucyjnej systemu. Aktualizację należy przepro-
wadzać posiadając uprawnienia użytkownika najbardziej uprzywilejowanego
(root).
Zaleca się przeprowadzanie aktualizacji do wersji stabilnej. W tym celu
wykorzystamy narzędzie CVSup oraz pliki konfiguracyjne aplikacji CVSup
dostępne w kartotece /usr/share/examples/cvsup:
• stable-supfile - plik konfiguracyjny aplikacji CVSup, umożliwiający
aktualizacją plików źródłowych systemu FreeBSD do wersji FreeBSD-
STABLE,
• ports-supfile - plik konfiguracyjny aplikacji CVSup, umożliwiający
aktualizację archiwum dostępnego oprogramowania w wersji źródłowej
(ports),
• doc-subfile - plik konfiguracyjny aplikacji CVSup, umożliwiający ak-
tualizację dokumentacji w wersji źródłowej.
Oto przykładowa zawartość pliku stable-subfile:
*default host=cvsup.pl.FreeBSD.org
*default base=/usr
*default prefix=/usr
# The following line is for 4-stable.
If you want 3-stable or 2.2-stable,
# change "RELENG_4" to "RELENG_3" or "RELENG_2_2" respectively.
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
Pliki konfiguracyjne CVSup najlepiej skopiować do kartoteki domowej.
Następnie należy zmodyfikować ich zawartość precyzując adres serwera usługi
CVSup, który w naszym przypadku będzie następujący: cvsup.pl.freebsd.org,
oraz określić znacznik TAG określający wersję systemu do której będzie doko-
nywana aktualizacja. Oto przykładowe znaczniki oraz ich znaczenie:
Ćwiczenie 5 - Konfiguracja serwera
22
• HEAD - oznacza wersję systemu FreeBSD-CURRENT.
• RELENG_X - oznacza wersję systemu FreeBSD X-STABLE.
• RELENG_X_Y - oznacza ostatnią wersję systemu FreeBSD X.Y-STABLE.
• RELENG_X_Y_RELEASE - oznacza wersję systemu FreeBSD X.Y-RELEASE
wraz z naniesionymi poprawkami błędów krytycznych oraz związanych
z bezpieczeństwem systemu.
Po dokonaniu zmian aktualizacji plików źródłowych systemu dokonujemy
następującym poleceniem:
# cvsup -g -L 2 stable-supfile
Można także przekopiować plik /etc/default/make.conf do /etc/make.conf.
Oraz zmodyfikować jego zawartość wskazując aktualne ścieżki dostępu do pli-
ków konfiguracyjnych CVSup oraz nazwę serwera CVSup. Oto przykładowa
zawartość pliku make.conf:
SUP_UPDATE=
yes
SUP=
/usr/local/bin/cvsup
SUPFLAGS=
-g -L 2
SUPHOST=
cvsup.pl.FreeBSD.org
SUPFILE=
/usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=
/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=
/usr/share/examples/cvsup/doc-supfile
Aktualizacja systemu z wykorzystaniem pliku make.conf jest bardzo prosta.
Polega ona na wykonaniu następujących poleceń:
# cd /usr/src
# make update
Po zakończeniu aktualizacji można przystąpić do kompilacji źródeł sys-
temu operacyjnego poleceniem:
# cd /usr/src
# make buildworld
Kompilacja całego systemu może zająć nawet do kilku godzin w zależności od
mocy obliczeniowej komputera. Ponieważ podczas aktualizacji zmianie mogły
ulec także pliki źródłowe jądra systemowego, wymagana jest jego powtórna
kompilacja:
# make buildkernel KERNCONF=<nazwa_jądra_systemowego>
Ćwiczenie 5 - Konfiguracja serwera
23
Po zakończonej kompilacji nie pozostaje nic innego jak zainstalować nową
wersję systemu i jądra systemowego na podstawie skompilowanej aktualnej
wersji stabilnej systemu:
# make installworld
# make installkernel KERNCONF=<nazwa_jądra_systemowego>
Po zakończeniu instalacji zalecany jest restart natychmiastowy restart syste-
mu operacyjnego.
5.3.4
Zakładanie konta użytkownika
Zakładanie kont użytkownikom należy właściwie do czynności admini-
strowania serwerem, co będzie tematyką następnego ćwiczenia. Ponieważ re-
alizacja ćwiczenia rozpoczyna się od założenia sobie konta użytkownika to
wypadałoby zamieścić kilka informacji na ten temat.
Do zakładanie konta użytkownika służy polecenie adduser. Po wykonaniu
polecenia, przed założeniem konta użytkownika wymagane jest podanie kilku
parametrów określających parametry tego procesu. Przykładowy przebieg
wykonania polecenia adduser przedstawiono poniżej:
# adduser
Use option ‘‘-silent’’ if you don’t want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let’s go.
Don’t worry about mistakes. I~will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Ćwiczenie 5 - Problemy do rozwiązania przed ćwiczeniem
24
Login group is ‘‘jru’’. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name:
jru
Password: ****
Fullname: J. Random User
Uid:
1001
Gid:
1001 (jru)
Class:
Groups:
jru wheel
HOME:
/home/jru
Shell:
/usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ‘‘jru’’
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
#
Literatura
1. FreeBSD Handbook , The FreeBSD Documentation Project - Copyright
c
⃝ by The FreeBSD Documentation Project
(http://www.freebsd.org/handbook).
2. FreeBSD/i386 RELEASE Hardware Notes, The FreeBSD Documentation
Project - Copyright c
⃝ by The FreeBSD Documentation Project
3. Tanenbaum A.S Operating Systems - Design and Implementation, Pren-
tice Hall, New Jersey 1997.
4. The UNIX Reference-Desk (http://www.technion.ac.il/guides/unix.html)
5. Wikipedia (http://wikipedia.pl)
5.4
Problemy do rozwiązania przed ćwicze-
niem
a) Zapoznać się z użyciem podstawowych poleceń systemu UNIX przed-
stawionymi w punkcie 5.3.1.
b) Zapoznać się z zasadami edycji dokumentów w systemie FreeBSD oraz
z obsługą edytora vi.
Ćwiczenie 5 - Program ćwiczenia
25
c) Zapoznać się z użyciem oraz działaniem aplikacji portupgrade. Apli-
kacja ta nie została opisana w niniejszej instrukcji. Niezbędne jest sa-
modzielne zdobycie meteriałów informacyjnych na ten temat. Pomocny
może być pozycja wyszczególniona w literaturze jako [1].
d) Uzupełnić swoją wiedzę dotyczącą podstaw obsługi systemu operacyj-
nego FreeBSD, korzystając z dostępnej literatury oraz z dokumentacji
dostępnej w sieci Internet [1].
e) Korzystając z dokumentacji systemu FreeBSD, publikacji ogólnodo-
stępnych oraz udostępnionych na Platformie Zdalnej Edukacji pod ad-
resem http://platforma.polsl.pl/rau3 uzupełnić swoją wiedzę z
zakresu tematyki niniejszego ćwiczenia w stopniu umożliwiającym jego
realizację.
5.5
Program ćwiczenia
Uwaga: Większość działań w tym ćwiczeniu laboratoryjnym wykonuje się z
uprawnieniami użytkownika o największych uprawnieniach. W związku
z tym proszę zachować szczególną ostrożność wykonując jakiekolwiek
operacje na serwerze. W przeciwnym wypadku może dojść do uszko-
dzenia serwera. W szczególności proszę pamiętać aby:
1. nie modyfikować żadnych plików konfiguracyjnych serwera bez wy-
raźnej zgody prowadzącego,
2. nie usuwać i nie modyfikować żadnych plików serwera chyba, że
znajdują się one w kartotece domowej użytkownika,
3. nie zakłócać pracy innym użytkownikom. Proszę pamiętać, że ser-
wer jest systemem wielozadaniowy i wielodostępnym oraz, że pra-
cują na nim także inni użytkownicy.
5.5.1
Zakładanie konta użytkownika
a) Założyć konto swojego użytkownika spełniającego następujące warunki:
– username = nazwisko (nazwisko studenta), w przypadku istnie-
nia już w systemie takiej nazwy użytkownika dodać do nazwiska
pierwszą literę imienia,
– homedir = /home/SK/GrX/nazwisko gdzie GrX to numer grupy
dziekańskiej,
Ćwiczenie 5 - Program ćwiczenia
26
– group = students,
– UID = ostatnie cyfry numeru inteksu z przedziału od 1000 do
65000,
– Reszta parametrów konta powinna przyjąć wartości domyślne.
b) Zalogować się i sprawdzić czy nie ma błędów podczas logowania.
c) Zgłosić się do prowadzącego celem sprawdzenia poprawności wykonania
zadania.
Uwaga 1: Proszę pamiętać ze tylko użytkownik admin (po użyciu polece-
nia su2) ma uprawnienia do administrowania serwerem, w tym także
zakładania użytkowników.
Uwaga 2: Podczas zakładania konta użytkownika system operacyjny nada-
je numer indentyfikacyjny użytkownika tzw. UID. Nadany numer UID
jest pierwszym wolnym numerem. W przypadku gdy kilku użytkowni-
ków zakłada konto jednocześnie może wystąpić sytuacja, w której kilku
użytkownikom nadany zostanie ten sam numer UID. W takim przypad-
ku numer UID zostanie przyznany temu użytkownikowi, którego proces
zakładania konta zakończy się jako pierwszy. Proces zakładania kont
pozostałych użytkowników będzie musiał zostać powtórzony. Dlatego
też zaleca się aby podczas zakładania konta, nadać własny numer UID,
najlepiej z przedziału od 1000 do 65000 będący ostatnimi cyframi nu-
meru indeksu studenta.
5.5.2
Narzędzia do konfiguracji i administrowania ser-
werem
Przetestować wskazane przez prowadzącego narzędzia do konfiguracji i
administrowania serwerem FreeBSD np:
• Webmin (http://www.webmin.com),
• Usermin (http://www.webmin.com/usermin.html).
5.5.3
Edycja plików w systemie FreeBSD
Stworzyć plik o nazwie test.txt i zapoznać się z użytkowaniem edytora
vi wykonująć następujące zadania:
• wpisywanie tekstu za kursorem
Ćwiczenie 5 - Program ćwiczenia
27
• wpisywanie tekstu na końcu aktualnej linii
• wstawianie tekstu przed kursorem
• wstawianie tekstu na początku aktualnej linii
• utworzenie nowej linii poniżej aktualnej
• utworzenie nowej linii powyżej aktualnej
• zastępowanie tekstu
• zastąpienie znaku wskazanego przez kursor
• zastąpienie aktualnej linii
• zmiana zaznaczonego tekstu
• zmiana do końca linii
• skasowanie znaku wskazywanego przez kursor
• skasowanie znaku przed kursorem
• skasowanie wskazanego tekstu
• skasowanie aktualnej linii
• skasowanie tekstu od aktualnej pozycji aż do końca linii
• skopiowanie wskazanego tekstu do bufora pomocniczego
• skopiowanie linii tekstu do bufora pomocniczego
• wstawienie tekstu za kursorem
• wstawienie tekstu przed kursorem
• połączenie linii
• przesunięcie tekstu w prawo
• przesunięcie tekstu w lewo
• przetworzenie tekstu przez polecenie systemowe i zastąpienie tego tek-
stu przez wyjście tego polecenia
• zastąpienie znaku wskazywanego przez kursor
Ćwiczenie 5 - Program ćwiczenia
28
• zaznaczenie linii tekstu
• anulowanie ostatniej zmiany (ponowne wciśnięcie powoduje ponowne
zastosowanie ostatniej zmiany)
• przeniesienie kursora na początek linii
• przeniesienie kursora na początek linii
• przeniesienie kursora na koniec linii
• przeniesienie kursora w lewo
• przeniesienie kursora w dół
• przeniesienie kursora w góre
• przeniesienie kursora w prawo
• skasowanie znaku przed kursorem (klawisz backspace)
• przeniesienie do przodu do podanego znaku
• przeniesienie do tyłu do podanego znaku
• przeniesienie do przodu przed wskazany znak
• przeniesienie do tyłu przed wskazany znak
• powtórzenie ostatniego polecenia f, F, t, T
• odwrócenie działania ostatniego polecenia f, F, t, T
• ustawienie kursora w podanej kolumnie
• odnalezienie pary dla wskazanego nawiasu
• ustawienie kursora na początku poprzedniego słowa (słowo = ciąg zna-
ków bez znaków białych)
• ustawienie kursora na początku następnego słowa (słowo = ciąg znaków
bez znaków białych)
• przeniesienie kursora na górę ekranu
• przeniesienie kursora na dół ekranu
• przeniesienie kursora w prawo
Ćwiczenie 5 - Program ćwiczenia
29
• przesunięcie okna ekranowego o jeden ekran do przodu
• przesunięcie okna ekranowego o jeden ekran do tyłu
• przesunięcie okna ekranowego do podanej linii
• wyszukanie podanego wzorca w przód (po dojściu na koniec pliku kon-
tynuowanie szukania od początku)
• wyszukanie podanego wzorca w tył (po dojściu na początek pliku kon-
tynuowanie szukania od końca)
• wyczyszczenie i przerysowanie ekranu
• przerysowanie ekranu
• wyjście z edytora pod warunkiem braku zmian od ostatniego zapisu
• wyjście z edytora bez zapisania pliku
• zapisanie pliku
• zapisanie pliku pod nową nazwą
• zapisanie pliku (z wymuszonym zapisaniem plików tylko do odczytu)
• wyjście z edytora z zapisaniem pliku
• wyjście z edytora z zapisaniem pliku (bez zapisania przy braku zmian)
• wyjście z edytora z zapisaniem pliku (bez zapisania przy braku zmian,
z wymuszonym zapisaniem plików tylko do odczytu)
• wyjście z edytora z zapisaniem pliku
• otworzenie pliku do edycji
• wyświetlenie pomocy
5.5.4
Aktualizacja zainstalowanego oprogramowania
a) Wyświetlić na ekranie listę wszystkich aplikacji zainstalowanych w sys-
temie FreeBSD. Policzyć ile jest tych aplikacji. Należy do tego celu użyć
polecenia wc.
b) Wyświetlić na ekranie listę zainstalowanych aplikacji nie wymagających
aktualizacji w systemie FreeBSD. Policzyć ile jest tych aplikacji.
Ćwiczenie 5 - Program ćwiczenia
30
c) Wyświetlić na ekranie listę zainstalowanych aplikacji wymagających
aktualizacji w systemie FreeBSD. Policzyć ile jest tych aplikacji.
d) Przeprowadzić aktualizację wybranej wraz z prowadzącym aplikacji z
listy z podpunktu c). Każdorazowo podać nazwę aplikacji prowadzą-
cemu i zanotować ją w protokole z zajęć laboratoryjnych. Aktualizacji
można dokonać trzema metodami:
(a) aktualizacja aplikacji w wersji binarnej,
(b) aktualizacja aplikacji w wersji źródłowej,
(c) aktualizacja aplikacji za pomocą programu portupgrade.
Po dokonaniu aktualizacji aplikacji sprawdzić czy znajduje się na liście
aplikacji zainstalowanych w systemie FreeBSD oraz czy aplikacja zo-
stała zainstalowana w wersji najnowszej (czyli takiej która nie wymaga
aktualizacji). Jeśli aplikacja nie znajduje się na liście, lub jest nieaktu-
alna to oznacza, że coś poszło nie tak, i trzeba cały proces aktualizacji
aplikacji powtórzyć.
5.5.5
Aktualizacja systemu operacyjnego FreeBSD
a) Dokonać synchronizacji wersji źródłowej systemu FreeBSD do najnow-
szej wersji stabilnej.
b) Dokonać synchronizacji oraz aktualizacji archiwum dostępnego opro-
gramowania w wersji źródłowej (ports).
c) Przeprowadzić aktualizację dokumentacji.
d) Skompilować i zainstalować aktualną dokumentację.
e) Skompilować zaktualizowaną wersją źródłową systemu wraz z jądrem
systemowym.
f) Po konsultacji z prowadzącym dokonać aktualizacji systemu operacyj-
nego.
5.5.6
Kompilacja jądra systemowego
a) Zapoznać się z zawartością pliku konfiguracyjnego jądra systemowe-
go dostarczonego wraz z wersją dystrybucyjną systemu operacyjnego
FreeBSD o nazwie GENERIC.
Ćwiczenie 5 - Program ćwiczenia
31
b) Skompilować jądro systemowe GENERIC.
c) Stworzyć własny plik konfiguracyjny jądra systemowego o nazwie MYKERNEL
oparty na pliku GENERIC dodając do niego kilka dodatkowych opcji:
• QUOTA - uaktywnienie ograniczenia przestrzeni dyskowej dla użyt-
kowników.
• IPFIREWALL oraz IPFIREWALL_VERBOSE - uaktywnienie usługi fil-
trowania pakietów firewall.
• DUMMYNET - uaktywnienie usługi ograniczenia przepustowości bi-
towej wybranych usług siecowych.
• IPX - uaktywnienie obsługi protokołu IPX.
• NTFS - uaktywnienie obsługi systemu plików NTFS.
• EXT2FS - uaktywnienie obsługi systemu plików systemu Linux.
d) Dokonać kompilacji jądra nowej wersji jądra systemowego.
e) Dokonać aktualizacji jądra systemowego do aktualnej wersji STABLE.
f) Dokonać aktualizacji jądra systemowego do aktualnej wersji CURRENT.
5.5.7
Konfiguracja plików startowych serwera FreeBSD
a) Zapoznać się z zawartością pliku /etc/defaults/rc.conf określającą
domyślne parametry konfiguracji startowej serwera FreeBSD.
b) Zapoznać się z zawartością pliku /etc/rc.conf określającą aktualną
konfigurację startową serwera FreeBSD.
c) Zapoznać się z zawartością kartoteki /usr/local/etc i zawartych tam
plików.
Uwaga: Proszę pamiętać aby bez wyraźnej zgody prowadzącego nie modyfi-
kować żadnych plików konfiguracyjnych serwera.
5.5.8
Wstępna konfiguracja serwera FreeBSD
Wykorzystując program instalacyjny /stand/sysinstall przeprowadzić
następujące czynności konfiguracyjne:
a) Sprawdzić w jakim zakresie można dokonać konfiguracji serwera za po-
mocą dostępnego narzędzia.
Ćwiczenie 5 - Program ćwiczenia
32
b) Ustawić poprawną strefę czasową (ang. Time-Zone)
c) Uaktywnić usługę ntpdate , umożliwiającą automatyczną synchroni-
zację zegara systemowego z zegarem atomowym poprzez sieć Internet,
d) Uaktywnić zgodność binarną systemu FreeBSD z systemem Linux.
e) Za pomocą /stand/sysinstall dokonać dodatkowe zmiany w konfi-
guracji serwera w zakresie określonym przez prowadzącego.