Instalacja,administracja i zastosowania systemu cz.1
Wprowadzenie
1.1 Podstawowe własnosci systemu
Linux jest nowoczesnym, wielozadaniowym, wielouzytkownikowym systemem operacyjnym
podobnym do systemu UNIX. Posiada miedzy innymi:
• prawdziwa wielozadaniowosc (preemptive multitasking)
• ochrone pamieci (jeden proces nie moze uszkodzic innego procesu ani tym bardziej
systemu)
• zaawansowany system plików (długie nazwy, wielkosc do 4TB)
• wbudowana obsługe wielu protokołów sieciowych (TCP/IP, IPX, SMB, Appletalk,
AX.25)
• wielowatkowosc
Pod wzgledem wydajnosci, szybkosci i stabilnosci smiało konkuruje z kosztownymi komercyjnymi
systemami operacyjnymi. Ponadto, duza jego zaleta jest pełna dostepnosc kodu
zródłowego. Bazujac swoje rozwiazania na Linuxie nie inwestuje sie w zamknieta technologie,
uzalezniona od łaski i niełaski jednej firmy, lecz w otwarty system, do którego wiele firm
jest w stanie zapewnic wsparcie i doradztwo. Dodatkowym atutem Linuxa jest to, ze działa
na wielu platformach sprzetowych: w tej chwili pełne dystrybucje dostepne sa na procesory
Intel x86, DEC Alpha (21064 i 21164), SPARC, MIPS, Motorola 680x0 PowerPC, ARM oraz
PA-RISC.
Warto pamietac o tym, ze nazwa Linux dotyczy wyłacznie jadra systemu, zas jadro
z reszta oprogramowania niezbednego do pracy systemu okresla sie mianem dystrybucji.
Bardziej znane dystrybucje to np. RedHat, Mandrake, Slackware.
Linux jest dostepny za darmo, na licencji GPL (General Public Licence). Oznacza to w
skrócie, ze mozna go stosowac takze do celów komercyjnych, lecz jezeli chce sie go sprzedawac
(ew. tworzac zmodyfikowane wersje), trzeba udostepnic równiez kod zródłowy. Istotne jest,
ze to wymaganie nie dotyczy programów pisanych pod Linuxa – a wiec mozna stworzyc
np. system finansowo – ksiegowy i sprzedawac go jak dowolne inne oprogramowanie.
1.2 Rys historyczny
Linux został stworzony przez Linusa Torvaldsa na bazie publicznie dostepnej wersji systemu
UNIX na komputery PC o nazwie MINIX. Pierwsze jadro systemu zostało opublikowane
w sieci wraz z zaproszeniem do współpracy w roku 1991.
Samo jadro systemu, bez programów uzytkowych nie nadaje sie do pracy. Dopiero uzupełnienie
jadra o programy uzytkowe tworzy system operacyjny. Pierwsze programy rozpowszechniane
z jadrem systemu zostały zapozyczone z projektu GNU (GNU’s Not Unix)
prowadzonego przez FSF (Free Software Foundation). Od czasu opublikowania Linux rozwija
sie bardzo dynamicznie. W skrócie kolejne etapy rozwoju mozna strescic w nastepujecych
punktach
• adaptacja darmowego oprogramowania z innych systemów operacyjnych
,
• powstanie projektów których pierwotna platforma jest Linux,
• rozwój oprogramowania komercyjnego.
1.3 Zródła informacji o systemie
. Obok publikacji ksiazkowych oraz czasopism dotyczacych Linux’a istnieje wiele materiałów
rozpowszechnianych elektronicznie. Integracja rozproszonej w ielu miejscach dokumentacji
systemu zajmuje sie inicjatywa LDP (Linux Documentation Project. Witryna internetowa
projektu mozna odwiedzic łaczac sie z adresem http://www.ldp.org/ lub jego polskim „odbiciem
lustrzanym” http://www.ldp.org.pl/. Mozna tam znalezc m. in.
• Pliki HOWTO, polskie tłumaczenia – projekt JTZ http://www.jtz.org.pl,
• ksiazki Linux Installation and Getting Started , The Linux System Administrators’
Guide , The Network Administrators’ Guide , The Linux Programmer’s Guide , The
Linux Kernel , Linux Kernel Module Programming Guide
• strony man,
• pliki info,
1.4 Zródła oprogramowania
Zródeł oprogramowania pod Lnux’a jest w internecie bez liku. Ponizej wymienie kilka
najwazniejszych
• http://www.sunsite.icm.edu.pl/pub/Linux,
• http://freshmeat.net/,
• http://linux.com/,
• http://slashdot.org/,
• http://sourceforge.net/.
1.5 Instalacja
Instalacja kazdej dystrubucji składa sie z nastepujacych etapów:
• przydzielenie przestrzeni dyskowej,
• wybór oprogramowania i jego kopiowanie na dysk,
• ustalenie hasła uzytkownika root,
• konfiguracja startu systemu.
Opcjonalnie (choc w zasadzie jest to juz kanonem) moga byc wykonane nastepujace czynnosci
• lokalizacja systemu (wybór strefy czasowej, jezyka),
• konfiguracja interfejsu graficznego X Windows.
• konfiguracja usług (np. WWW, FTP) uruchamianych przy starcie systemu.
1.5.1 Podstawowe wiadomosci o dyskach twardych
Urzadzenia do zapisu imformacji dzielimy na znakowe lub blokowe. W urzadzeniach znakowych
w jednym cyklu przesyłany jest jeden bajt danych. Do typowych urzadzen znakowych
zaliczyc nalezy port szeregowe oraz drukarki. Z kolei w urzadzeniach blokowych w jednym
cyklu przesyłany jest zbiór znaków. W komputerach PC rozmiar bloku 512 znaków. Dostep
do danego bloku danych uzyskuje sie poprzez podanie jego numeru. Z logicznego punktu
widzenia urzadzenie blokowe jest widziane jako zestaw bloków o stałej długosci. Do klasycznych
urzadzen blokowych naleza dyskietki oraz dyski twarde. Bloki danych na urzadzeniach
dyskowych nazywane sa sektorami. Zazwyczaj dane zapisane na urzadzeniach blokowych
zapisane w postaci plików, które z kolei moga byc umieszczane w katalogach. Istnieje wiele
sposobów translacji akcji podejmowanych na katalogach i plikach na akcje podejmowane na
urzadzeniu blokowym. Struktura posredniczaca miedzy iluzja plików i katalogów a rzeczywistym
interfejsem zapisu pojedynczych bloków jest system plików. Zadaniem systemu plików
jest wiec odpowiednia organizacja danych na urzadzeniu. Najbardziej znanymi przykładami
systemów plików sa: system oparty FAT (ang. File Allocation Table) stosowany MS DOS
oraz jego ulepszona wersja pozwalajaca na zapis długich nazw, tzw. VFAT stosowany w
systemach Windows.
Systemy operacyjne obsługuja jeden lub kilka dla zachowania zgodnosci z poprzednimi
wersjami systemów plików. Linux jest tutaj chlubnym wyjatkiem. Lista obsługiwanych systemów
plików jest bardzo długa: minix, ext, ext2, xiafs, hpfs, msdos, umsdos, vfat, proc,
nfs, iso9660, smbfs, ncpfs, smbfs, affs, ufs, romfs, sysv, xenix, ntfs, reiserfs, ext3. System plików
moze byc utworzony na całym urzadzeniu blokowym (np. dyskietce) lub na jego czesci
(partycja dysku twardego).
W systemach czerpiacych swe korzenie w UNIX’ie obowiazue sztywna struktura katalogów.
Oznacza to, ze system operacyjny i programy spodziewaja sie znalezc w okreslonych
katalogach okreslone pliki. Najczesciej miejsca gdzie poszukuja plików sa stałymi kompilacji
na trwałe „zaszytymi” w program. Drzewo katalogów rozpoczyna sie od katalogu głównego
/. W katalogu głównym znajduje sie z góry zdefiniowana struktura podkatalogów. Najwazniejsze
z nich to
boot – jadro systemu,
bin – binaria niezbedne do działania systemu,
sbin – podstawowe narzedzia administtratora,
lib – podstawowe biblioteki,
dev – pliki specjalne urzadzen,
home – katalogi uzytkowników systemu,
usr – aplikacje,
var – dane pomocnicze, logi systemowe,
tmp – katalog na pliki tymczasowe.
W Linux’ie nie ma pojecia „napedów” i przypisanych im liter. Aby uzyskac dostep do danych
zapisanych na okreslonym urzadzeniu nalezy skojarzyc je z katalogiem. Proces tworzenia
powiazania urzadzenia ! katalog nazywamy montowaniem. Realizuje je komenda mount
o nastepujacej składni
mount -t
mount -t -o loop
Parametry , i oznaczaja: identyfikator systemu plików
na urzadzeniu, plik specjalny odpowiadajacy danemu urzadzeniu oraz katalog w którym
ma byc widoczna zawartosc urzadzenia.
Przed instalacja systemu musimy zapoznac sie z konwencja nazywania urzadzen w Linux’ie.
Dostep do urzadzen w Linux’ie uzyskujemy przez zapis i/lub odczyt ze specjalnego
pliku umieszczonego w katalogu /dev/. Kazde urzadzenie ma swój własny plik. Urzadzenia
odpowiadajace dyskietkom maja przedrostek fd?. Na przykład fd0 odpowiada pierwszej
stacji dysków, fd1 – drugiej, itd. Podobnie sprawa ma sie z dyskami twardymi. Urzadzenia
odpowiadajace dyskom twardym IDE maja przedrostek hd?. Pierwszy dysk to /dev/hda,
drugi – dev/hdb, itd. Dla dysków SCSI przedrostek ma postac sd?. Dostep do kolejnych
partycji na dysku uzyskujemy uzupełniajac nazwe urzadzenia dysku numerem partycji. Na
przykład dla dysku /dev/hda pliki specjalne odpowiadajace kolejnym partycjom maja postac:
/dev/hda1, /dev/hda2, /dev/hda3 itd. Na jednym dysku moga byc utworzone 4 partycje
główne (Primary). Gdy 4 partycje sa niewystarczajace, nalezy zamiast jednej partycji
głównej nalezy utworzyc partycje rozszerzona (Extended). Pełni ona role pojemnika na inne
partcyje. Partycje załozone wewnatrz partycji rozszerzonej nosza nazwe partycji logicznych
(Logical ). Przydzielane im sa numery wieksze badz równe 5.
Kazda z partycji dyskowych ma swój typ. Typ partycji to nic innego jak jednobajtowy
identyfikator informujacy system operacyjny które partycje powinien podejrzewac, ze znajduja
sie na niej jego pliki. Identyfikator ten jest róznie interpretowany pzrez rózne systemy
operacyjne: niektóre odmawiaja współpracy z partycjami innych typów niz swoje, inne z
kolei w zasadzie ignoruja ten identyfikator. Najwazniejsze typy partycji to
6 FAT16 (DOS),
7 HPFS/NTFS,
b Win95 FAT32,
c Win95 FAT32 (LBA),
e Win95 FAT16 (LBA),
82 Linux swap,
83 Linux native,
85 Linux extended
Aby na dysku mógł byc zainstalowany Linux niezbedne jest utworzenie co najmniej dwóch
partycji: Linux native i Linux swap. Na partycje Linux native zostana skopiowane programy,
natomiast partycja Linux swap bedzie słuzyc jako plik wymiany. Oczywiscie mozliwe jest
utowrzenie wiekszej liczby partycji Linux native i przypisanie im róznych katalogów.
Utworzenie parycji to oczywiscie zbyt mało, aby mógł byc na niej zainstalowany system
operacyjny. Przed nagraniem skopiowaniem systemu nalezy partycje sformatowac, tj. nagrac
na nia struktury danych zwiazane z konkretnym systemem plików. Obecnie domyslnym systemem
plików Linux’a jest ext2 (Extended Filesystem version 2 ), jednak jego pozycja zaczyna
byc zagrozona, bowiem do konkurencji zaczynaja wkraczac systemy plików z dziennikowaniem
(Journaling Filesystems). Do najwazniejszych konkurentów naleza tutaj reiserfs
i ext3. Mozliwe jest równiez tworzenie systemów plików w których dane sa szyfrowane korzystajac
z cfs (Cryptographic Filesystem).
1.5.2 Start systemu
Pierwszym programem uruchamianym przez BIOS (Basic Input Output System) jest
procedura POST (Power On self Test). Po jej wykonaniu ładowany jest pierwszy sektor
z urzadzenia wybranego w programie BIOS Setup jako startowe. Jezeli w przeczytanym
sektorzez znajduje sie odpowiedni znacznik, BIOS identyfikuje zawartosc sektora jako program
ładujacy i przekazuje mu sterowanie. Na dyskach twardych twardych pierwszy sektor
nazywany jest MBR (Master Boot Record). Z kolei pierwszy sektor kazdej partycji nazywany
jest BR (Boot Record). Systemy operacyjne spod znaku Windows nagrywaja program
którego jedynym zadaniem jest stwierdzenie która z partycji jest zaznaczona jako aktywna,
wczytanie jej pierwszego sektora i przekazanie sterowania programowi tam zawartemu. Z
kolei program zawarty w BR podczas formatowania partycji (dysku C:) został uzupełniony
informacja gdzie na dysku znajduje sie jadro systemu. Jego zadaniem jest wczytania jadra
systemu do pamieci operacyjnej i przekazanie mu sterowania.
Start systemu Linux jest mozliwy dzieki podmianie programu znjadujacemu sie MBR lub
BR na inny program ładujacy, który potrafi uruchomic jadro Linux’a. Najbardziej znanym
programem ładujacym jest LILO (LInux LOader). Wybierajac instalacje LILO w MBR
nadpisujemy domyslny program ładujacy. W przypadku rezygnacji z Linux’a mozemy go
odtworzyc po wystartowaniu DOS’a z dyskietki systemowej komenda
fdisk /MBR
Mozliwa jest równiez bezinwazyjna instalacja LILO. Mianowicie instalujemy LILO BR partycji
z Linuxem i zaznaczamy ja jako aktywna. Oryginalny program z MBR podczas startu
systemu załaduje pierwszy sektor z partycji aktywnej, a wiec LILO. Deinstalacji Linux’a
przebiega bezbolesnie, wystarczy bowiem deaktywowac partycje z Linukx’em i aktywowac
partycje z Windows.
1.5.3 Modułowa budowa jadra
Moduły mozna nazwac inaczej (choc mniej scisle) sterownikami do róznego rodzaju urzadzen.
Ładowanie modułów mozna wyłaczyc przekazujac jadru nomodules jako parametr podczas
ładowania systemu. Moduły jadra znajduja sie w katalogu /lib/modules/.
Podstawowe komendy obsługi modułów to
lsmod – wyswietlenie listy aktualnie załadowanych modułów,
insmod – dołaczenie modułu do działajacego jadra systemu,
rmmod – usuniecie modułu z jadra systemu.
Poniewaz miedzy modułami moga istniec dosc skomplikowane zaleznosci wstawianie modułów
przy uzyciu insmod moze okazac sie dosc uciazliwe. Do rozwiazania tego problemu
słuzy komenda modprobe pozwalajaca ładowac i usuwac moduły z uwzglednieniem zaleznosci
miedzymodułowych. Komenda modprobe korzysta z listy zaleznosci umieszczonej w pliku
/lib/modules//modules.dep
Plik ten tworzony jest komenda depmod która powinna byc uruchomiona po kazdorazowej
zmianie zawartosci katalogów z modułami.
Jadro Linuksa potrafi ładowac moduły „w locie”, gdy zajdzie potrzeba skorzystania z danego
interfejsu. Do ustanowienia zwiazku miedzy nazwa interfejsu a nazwa sterownika słuzy
plik /etc/conf.modules. Np. karty sieci Ethernet zainstalowane w systemie maja nazwy
eth0, eth1, eth2, eth2, itd. Jezeli karta konfigurowana jako pierwsza jest karta zgodna
z NE2000 w pliku /etc/conf.modules umieszczamy
alias eth0 ne
options ne irq=5 io=0x300
Powyzszy wpis informuje jadro, ze funkcje pierwszej karty sieciowej realizuje sterownik
ne i podczas ładowania sterownika powinny mu byc przekazane parametry z linii options,
tj. karta pracuje na przerwaniu nr 5 i obszar portów IO rozpoczyna sie od adresu 0x300.
Jezeli sterownik jest nie uzywany przez pewien okres czasu odpowiedni moduł usuwany jest
z obszaru jadra. Moduły załadowane automatycznie maja ustawiona flage autoclean. Szybsze
usuniecie nie uzywanych modułów z flaga autoclean realizuje komenda modprobe -r.
1.5.4 Podstawowe wiadomosci o sieciach TCP/IP
Protokół IP jest beztsanowym protokołem warstwy sieciowej. Adres komputera w sieciach
IP stanowia 4 bajty. W sieciech IP adres komputera musi byc unikalny, stad adresy sa
centralnie przydzielane.
Protokół IP to protokół Internetu (ang. Internet Protocol). Z kolei Internet to siec szkieletowa
łaczaca sieci komputerowe rozmieszczone na całym swiecie.Wtakich warunkach trudno
sobie wyobrazic centralny przydział adresów IP dla stacji koncowych. Z tego wzgledu sieciom
przyłaczonym do Internetu przydzielane sa zakresy adresów, zas sprawa przydziłau adresu
IP do konkretnej stacji jest sprawa administratora sieci lokalnej. Stad podział adresu IP na
czesc zwiazana z siecia i czesc zwiazana z adresem hosta (własnie ta czesc ustala administrator
sieci lokalnej). Zaleznie od rozmiaru sieci lokalnej administrator moze ubiegac sie
o przydział adresu klasy A – 224 adresów, klasy B – 216 adresów lub klasy C – 28 adresów.
O tym czy dany adres sieciowy nalezy do okreslonej klasy decyduje kilka najstarszych bitów
pierwszego bajtu adresu IP. Taka organizacja adresów zapewnia łatwe sterowanie ruchem pakietów.
Odpowiednie zaleznosci ilustruje Tab. #1 Przykładowe adresy poszczególnych klas
ilustruje Tab. #1 Dla sieci klasy A i B liczba hostów jest olbrzymia (224 − 2 i 216 − 2,
odpowiednio). Oczywiscie zarzadzanie tak wielkimi sieciami jest bardzo trudne. Dlatego dopuszczono
„wewnetrzny” podział sieci na podsieci. Koncepcja jest bardzo prosta, pozyczamy
czesc bitów z czesci adresujacej hosta i traktujemy je jako adres sieci. I tak np. jezeli dla
sieci klasy B pozyczymy jeden bajt, to maska podsieci wyniesie 255.255.255.0. Dzieki takiej
operacji przekształcilismy siec klasy B w 28 − 2 podsieci klasy C. Musimy odjac 2 bowiem
podsiec o numerze x.x.0 miałaby adres identyczny z adresem sieci „matki”, zas bajt o wartosci
255 zarezerwowany jest na broadcast (rozgłoszenie do wszystkich stacji w podsieci).
klasa adr. pocz. (bin) adr. pocz. (dec) adr. kon. (bin) adr. kon. (dec)
A 0 0000000 0 0 1111110 126
loop-back 0 1111111 127 0 1111111 127
B 10 000000 128 10 111111 191
C 110 00000 192 110 11111 223
D 1110 1111 224 1110 1111 239
E 11110 111 240 11110 111 247
Klasa netmask podział adresu przykładowy adres hosta adres sieci
A 255.0.0.0 N.H.H.H 10.0.1.123 10.0.0.0
B 255.255.0.0 N.N.H.H 157.158.1.3 157.158.0.0
C 255.255.255.0 N.N.N.H 200.150.189.31 200.150.189.0
Ciezar zarzadzanie podsieciami spoczywa na włascicielu adresu klasy B. Utworzone podsieci
maja dostep do internetu za posrednictwem własciciela adresu B.
Oczywiscie, mozliwe jest wydzielenie podsieci ustalajac podział adresu na czesc sieciowa
i „hostowa” wewnatrz z któregos bajtów. Dla objasnienia rozwazmy podział sieci klasy C
na podsieci. Wydzielmy najstarsze 3 bity ostatniego bajtu na czesc sieciowa. Wówczas maska
sieci wyniesie 255.255.255.224 (ostatni bajt binarnie 11100000). Numery powstałych
w ten sposób podsieci oraz odpowiadajacy im zakres adresów hostów przedstawia Tab. #1
Wprowadzenie adresu podsieci powoduje, ze nie mozemy juz wnioskowac o masce podsieci
na podstawie jej numeru IP. Stad czesto stosuje sie zapis adresów sieci w postaci ˇadres
IPż/ˇliczba bitów maski ustawionych na 1ż. Oznacza to, ze adresy IP sieci z Tab. #1
mozemy zapisac jako 10.0.0.0/8, 157.158.0.0/16, 200.150.189.0/24.
Rozwazmy konfiguracje piatej z rozwazanych podsieci (przypuscmy, ze podsiec skonfigurowano
w Instytucie Elektroniki, przydzielona do IE podsiec ma adres 157.158.17.0): adres
maska (bin) maska (dec) adr. pocz. (dec) adr. kon. (dec)
001 00000 32 33 62
010 00000 64 65 95
011 00000 96 97 126
100 00000 128 129 158
101 00000 160 161 190
110 00000 192 193 223
podsieci – 157.158.17.160, maska podsieci – 255.255.255.224 (lub inaczej adres podsieci –
157.158.17.160/21) adresy hostów – 157.158.17.161÷190, adres rozgłoszeniowy (broadcast) –
(157.158.17.160) + ¬ (255.255.255.244) = 157.158.17.191.
Powyzszy przykład ilustruje równiez „utrate” adresów IP przy podziale na podsieci. Gdy
siec 157.158.17.0 potraktujemy jako siec klasy C, to mamy do dyspozycji 28−2 = 254 adresów
IP dla stacji. Tymczasem proste sumowanie poprawnych adresów z Tab. #1 prowadzi do
liczby 180. Oto gdzie tracimy dostepne adresy:
• mamy 6 podsieci a wiec tracimy 6 × 2 = 12 adresów na adresy sieci i broadcasty,
• ze wzgledu na to, ze nie moze byc podsieci o numerze 0 tracimy 32 adresy (0 ÷ 31),
• tracimy równiez adresy powyzej 224 bowiem nie moze byc podsieci o numerze 11100000
(binarnie) tj. 31 adresów.
Sumujac otrzymujemy liczbe 76.
Czesc adresów IP została wydzielona z puli przydzielanych adresów i zaden host (czy inne
urzadzenie sieciowe) podłaczone bezposrednio do internetu nie moze miec takiego adresu IP.
Te wydzielone pule adresów moga byc uzywane wewnetrznie w sieciach lokalnych jednak nie
moga byc „widziane” z zewnatrz. Adresy wydzielonych sieci to: 10.0.0.0/8, 172.16.0.0/12,
192.168.0.0/16.
Instalacja
W niniejszym rozdziale zamiescimy skrót z instalacji nastepujacych czterech dystrybucji
• RedHat 7.2 (2 płyty zasadnicze + PowerTools),
• Mandrake 8.0 (2 płyty),
• Mandrake 8.1 (3 płyty),
• SuSE 7.2 (7 płyt).
2.1 Przygotowanie do instalacji
Przygotowanie do instalacji wymaga posiadania nastepujacych przygotowan:
• przygotowanie wolnego miejsce na dysku, ile przeznaczamy dla partycji /, ile na swap,
• zgromadzenie podstawowych danych o sprzecie: mysz, klawiatura, karta graficzna, karta
dzwiekowa, karta sieciowa, modem.
• zdobycie podstawowych parametrów sieci: adres IP, netmask, gateway lub adres serwera
DHCP lub numer tel. do ISP + adres IP serwera nazw,
• do jakich celów ma słuzyc system: router/firewall, serwer sieciowy, stacja robocza,
• jakie usługi sieciowe ma oferowac system: e-mail, ftp, http, nfs, smb, dns,
• wybór interfejsu uzytkownika: virtualna konsola i/lub srodowisko graficzne (KDE lub
GNOME).
Linux’a da sie zainstalowac nawet gdy cały dysk komputera zajety jest przez partycje
Windows. W pierwszym kroku uruchamiamy pod Windows program defrag. Jegozadanie
jest uporzadkowanie danych na dysku i umieszczenie ich w jego poczatkowej czesci. Nastepnie
z płyty z dystrybucja Linux’a przegrywamy i uruchamiamy program fips. Program ten
słuzy do bezinwazyjnego (tj. bez utraty danych) skrócenia partycji Windows (DOS). Miejsce
odzyskane przez program fips bedzie zaznaczone jako wolne podczas instalacji systemu.
Po przygotowaniu miejsca na dysku przystepujemy do instalacji. Jako urzadzenie wybieramy
CDROM, wkładamy płyte z Linux’em i restartujemy komputer. Gdy nasz komputer
ma antyczny BIOS który nie umozliwia startu z płyty CD, to jedyna rada jest skorzystanie
z dyskietek startowych rozprowadzanych w postaci plików z omawianymi dystrybucjami.
Pliki te stanowia obrazy binarne dyskietek, tzn. sa to kolejne sektory dyskietki umieszczone
w jednym pliku. Do utworzenia dyskietki z pliku-obrazu słuzy program rawrite. Zaleznie
od dystrybucji konieczne jest utworzenie jednej lub dwóch dyskietek startowych.
Po uruchomieniu systemu z dyskietek lub płyty CD otrzymujemy zaproszenie do instalacji.
Dalszy przebieg wydarzen zalezy od programu instalacyjnego danej dystrybucji.
Programy instalacyjne nowej generacji najpierw zbieraja niezbedne informacje i dopiero gdy
posiadaja wszystkie dane przystepuja do instalacji. W programach starszej generacji działania
instalacyjne (np. zakładanie partycji, ich formatowanie) sa podejmowane na biezaco,
tuz po wydaniu odpowiednich zlecen przez uzytkownika.
2.2 Mandrake 8.0
2.2.1 Instalacja
Program instalacyjnych przygotowuje instalacje na biezaco, np. nowa tablica partycji jest
zapisywana na dysk natychmiast po jej zatwierdzeniu.
1. Jezyk instalacji. Program instalacyjny wspiera jezyk polski. Wybieramy „Polish”.
Jezyk ten bedzie równoczesnie jezykiem obowiazujacym w systemie.
2. Rodzaj instalacji. Wybieramy „Dla eksperta”. W instalacji typowej brakuje wielu
narzeddzi do samodzielnej kompilacji pakietów.
3. Wybór nosnika. Program instalacyjny zbiera informacje o tym z ilu płyt CD bedzie
instalowany system.
4. Mysz. Mysz wykrywana jest automatycznie.
5. Klawiatura. Model klawiatury wykrywany jest automatycznie. Mamy do wyboru polska
klawiature w układzie programisty lub w układzie maszynistki. Oczywiscie wybieramy
ten pierwszy.
6. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• Wysoki: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Sredni: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049, zdalne
sesje X Windows – port 6000, 6001 itd. , serwer fontów X Windows – port 7100.
• Niski: bez filtrowania ramek.
7. Partycjonowanie dysku. Obszar dysku prezentowany jest w formie graficznej. Klikajac
na wolny obszar mozemy utworzyc nowa partycje. Wybranie juz istniejacej partycji
pozwala na zmiane jej parametrów. Mozliwy jest równiez wybór automatycznego repartycjonowania
dysków. Po nacisnieciu przycisku „Zrobione” nowa tablica partycji
zostaje zapisana na dysk.
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około
2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB.
8. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
9. Wybór grup pakietów. Komputer biurowy, Korzytsanie z multimediów, Korzystanie
z Internetu, Komputer sieciowy (klient), Konfiguracja, Stacja robocza dla naukowca,
Programowanie, WWW/FTP, Serwer sieciowy, Stacja robocza z KDE. W sumie 1091
MB. Rezygnujemy z samodzielnego wyboru pakietów.
10. Instalacja serwerów Wybór serwerów które moga stanowic potencjalne zagrozenie
dla bezpieczenstwa systemu powoduje pojawienie sie ostrzezenia.
11. Instalacja pakietów Wybrane pakiety sa instalowane na dysk twardy.
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika. Mozna jedynie
korzystac z systemu NIS (tzw. yellow pages) zarzadzania kontami.
13. Interfejs sieciowy. Program sprawdza czy w systemie jest karta ethernet lub modem.
Zaleznie od wykrytego sprzetu wybierana jest metoda konfiguracji interfejsu sieciowego.
• Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej
znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry
musimy dostac od administratora sieci: numer IP, netmask, hostaname,
domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje
interfejsu przy starcie systemu.
14. Konfiguracja posredników Dla ograniczenia ruchu w sieci oraz dla ochrony stacji
znajdujacych sie za sciana ogniowa do komunikacji ze swiatem zewnetrznym wykorzystywane
sa tzw. serwery posrednie („proxy”). Jezeli w Twojej sieci działaja takie
serwery to nalezy je w tym punkcie podac.
15. Jezyk systemu. Polish
16. Strefa czasowa. Europe/Warsaw
17. Karta dzwiekowa W procesie instalacji karty dzwiekowe wykrywane i konfigurowane
sa automatycznie.
18. Konfiguracja drukarki W pierwszym rzedzie musimy podjac decyzje którego demona
wydruku bedziemy uzywac. Do wyboru mamy CUPS („Common Unix Printing
System”) oraz stary i sprawdzony lpd. Zalecam zdecydowac sie na CUPS. Po zainstalowaniu
demona drukowania przeprowadzona jest konfiguracja drukarki. Definiujemy
sposób dostepu (lokalna czy zdalna), nazwe kolejki, typ drukarki oraz metode wydruku
(tzw. filtr).
19. Konfiguracja usług startowych Proponuje zaznaczyc jedynie: alsa, crond, cups,
harddrake, httpd, ipchains, keytable, kudzu, kheader, netfs, network, numlock, portmap
postfix, random, rawdevices, sshd, syslog, xfs, xinted.
20. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli
na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora
jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc
uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc
program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac
poleceniem DOS’a:
fdisk /MBR
Zamiast LILO mozna uzyc innego programu ładujacego onazwie GRUB. Mamy równiez
mozliwosc wyboru sposobu startu systemu: linux – start w trybie graficznym, linuxnonfb
– start w trybie tekstowym. Proponuje wybrac linux-nonfb jako domyslny.
21. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania
pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
Zaleznie od rodzaju karty mamy mozliwosc instalacji X serwera w wersji: XFree 3.3.6
lub XFree 3.3.6 z akceleracja sprzetowa lub XFree 4.0.3. Rozwiazanie konserwartywne
do instalacja XFree 3.3.6. Poprawnosc wyboru testujemy.
22. Logowanie Na koniec procesu instalacji podejmujemy decyzje o uruchomieniu programu
XDM (logowanie w trybie graficznym).
2.2.2 Dostrajanie
1. Konfiguracja drukarki. W okienku K! Konfiguracja! Drukowanie ! QT-CUPS
mozna zmienic parametry juz zdeiniowanych drukarek (a dokładniej kolejek drukowania).
Z kolei w K!Konfiguracja!Drukowanie !KUPS mozna ustawiac nowe kolejki
lub usuwac istniejace.
2. Polskie teksty w graficznym ekranie logowania. W okienku K! Konfiguracja! KDE! System! Menedzer logowania. wybieramy Country: Polska i czczionki z kodowaniem
ISO 8859-2.
3. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! Terminale! Terminal.
W okienku Settings! Czczionka! Definiuj wybieramy biznet-fixed o rozmiarze
16. UWAGA! Koniecznie nalezy kliknac przycisk domyslne kodowanie. Rozmiar
terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc). Zmiany
zachowujemy poleceniem Settings! Save settings.
4. Konfiguracja Netscape. Uruchamiamy netscape (K! Internet! Netscape Communicator).
Dodajemy jezyk polski w Edycja! Ustawienia! Navigator! Jezyki.
5. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy
rpm -Uvh /mnt/cdrom/RedHat/RPMS/mc-*.rpm
Napedu nie trzeba montowac bowiem do odczytu dyskietek, napedów ZIP i CD uzywany
jest mechanizm supermount (patrz plik /etc/fstab). Po instalacji uruchamiamy
mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy: Pełne 8 bitowe
oraz Pełne osmiobitowe wejscie.
6. Konfiguracja usług startowych Pod X Windows uruchamiamy program drakxservices.
Zaznaczamy w nim które usługi powinny byc aktywowane podczas startu systemu.
7. Łaczenie z internetem przez modem Uruchamiamy program K! Siec! Zdalny
dostep! Łaczenie z internetem Konfiguracje programu wykonujemy wybierajac Ustawienia.
W zakładce Modem wybieramy Testuj modem aby sprawdzic rodzaj modemu.
Zakładka Połaczenia słuzy do konfiguracji połaczen z róznymi dostawcami internetu.
8. Konfiguracja sprzetu Do konfiguracji sprzetu słuzy program harddrake K! Konfiguracja
! Sprzet! HardDrake
9. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc
pod adresem ftp://ftp.task.gda.pl/pub/linux/Mandrake/
2.2.3 Błedy i niedoróbki
1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie
wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu,
tuz za inicjalizacja sieci (usługa network).
#!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf
fi
2. Wskład dystrybucji nie wchodzi program ogonkify rozprowadzany równiez z pakietem
a2ps. Aby drukowac polskie znaki diakrytyczne z Netscape’a nalezy go skompilowac
i zainstalowac. Strony WWW zawierajace polskie znaki narodowe drukujemy (Plik! Drukuj) komenda
ogonkify -AT -N | lpr
lub drukujemy do pliku netscape.ps i przetwarzamy go komenda
ogonkify -AT -N netscape.ps > netscape-pl.ps
Wynik konwersji sprawdzamy przegladarka gv
gv netscape-pl.ps
2.3 Mandrake 8.1
2.3.1 Instalacja
Program instalacyjnych przygotowuje instalacje na biezaco, np. nowa tablica partycji jest
zapisywana na dysk natychmiast po jej zatwierdzeniu.
1. Jezyk instalacji. Program instalacyjny wspiera jezyk polski. Wybieramy „Polish”.
Jezyk ten bedzie równoczesnie jezykiem obowiazujacym w systemie.
2. Rodzaj instalacji. Wybieramy „Dla eksperta”. W instalacji typowej brakuje wielu
narzeddzi do samodzielnej kompilacji pakietów.
3. Mysz. Mysz wykrywana jest automatycznie.
4. Klawiatura. Model klawiatury wykrywany jest automatycznie. Mamy do wyboru polska
klawiature w układzie programisty lub w układzie maszynistki. Oczywiscie wybieramy
ten pierwszy.
5. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• Wysoki: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Sredni: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049, zdalne
sesje X Windows – port 6000, 6001 itd. , serwer fontów X Windows – port 7100.
• Niski: bez filtrowania ramek.
6. Partycjonowanie dysku. Obszar dysku prezentowany jest w formie graficznej. Klikajac
na wolny obszar mozemy utworzyc nowa partycje. Wybranie juz istniejacej partycji
pozwala na zmiane jej parametrów. Mozliwy jest równiez wybór automatycznego repartycjonowania
dysków. Po nacisnieciu przycisku „Zrobione” nowa tablica partycji
zostaje zapisana na dysk.
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około
2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB.
7. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
8. Wybór nosnika. Program instalacyjny zbiera informacje o tym z ilu płyt CD bedzie
instalowany system.
9. Wybór grup pakietów. Komputer biurowy, Korzytsanie z multimediów, Korzystanie
z Internetu, Komputer sieciowy (klient), Konfiguracja, Stacja robocza dla naukowca,
Programowanie, WWW/FTP, Serwer sieciowy, Stacja robocza z KDE. Zaznaczamy
Samodzielny wybór pakietów i sprawdzamy czy zostana zainstalowane kde-i18n-pl, a2ps,
mc.
10. Instalacja serwerów Wybór serwerów które moga stanowic potencjalne zagrozenie
dla bezpieczenstwa systemu powoduje pojawienie sie ostrzezenia.
11. Instalacja pakietów Wybrane pakiety sa instalowane na dysk twardy.
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika. Mozna korzystac
z systemu NIS (tzw. yellow pages) oraz LDAP zarzadzania kontami.
13. Interfejs sieciowy. Program sprawdza czy w systemie jest karta ethernet lub modem.
Zaleznie od wykrytego sprzetu wybierana jest metoda konfiguracji interfejsu sieciowego.
• Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej
znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry
musimy dostac od administratora sieci: numer IP, netmask, hostaname,
domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje
interfejsu przy starcie systemu.
• Jezeli wykryty zostanie modem zostana zadane pytania o dostawce internetu,
uzytkownika, hasło oraz sposób aktywacji połaczenia.
14. Konfiguracja posredników Dla ograniczenia ruchu w sieci oraz dla ochrony stacji
znajdujacych sie za sciana ogniowa do komunikacji ze swiatem zewnetrznym wykorzystywane
sa tzw. serwery posrednie („proxy”). Jezeli w Twojej sieci działaja takie
serwery to nalezy je w tym punkcie podac.
15. Jezyk systemu. Polish
16. Strefa czasowa. Europe/Warsaw
17. Karta dzwiekowa W procesie instalacji karty dzwiekowe wykrywane i konfigurowane
sa automatycznie.
18. Konfiguracja drukarki W pierwszym rzedzie musimy podjac decyzje którego demona
wydruku bedziemy uzywac. Do wyboru mamy CUPS („Common Unix Printing
System”), LPRng oraz PDQ („Print, Don’t Queue”). Wybór ostatniej opcji oznacza,
ze nie bedzie zainstalowany spooler drukarki. Po zainstalowaniu demona drukowania
przeprowadzona jest konfiguracja drukarki. Definiujemy sposób dostepu (lokalna czy
zdalna), nazwe kolejki, typ drukarki oraz metode wydruku (tzw. filtr).
19. Konfiguracja usług startowych Proponuje zaznaczyc jedynie: alsa, crond, cups,
harddrake, httpd, ipchains, keytable, kudzu, kheader, netfs, network, numlock, portmap
postfix, random, rawdevices, sshd, syslog, xfs, xinted.
20. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli
na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora
jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc
uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc
program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac
poleceniem DOS’a:
fdisk /MBR
Zamiast LILO mozna uzyc innego programu ładujacego onazwie GRUB. Mamy równiez
mozliwosc wyboru sposobu startu systemu: linux – start w trybie graficznym, linuxnonfb
– start w trybie tekstowym. Proponuje wybrac linux-nonfb jako domyslny.
21. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania
pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
Zaleznie od rodzaju karty mamy mozliwosc instalacji X serwera w wersji: XFree 3.3.6
lub XFree 3.3.6 z akceleracja sprzetowa lub XFree 4.0.3. Rozwiazanie konserwartywne
do instalacja XFree 3.3.6. Poprawnosc wyboru testujemy.
22. Logowanie Na koniec procesu instalacji podejmujemy decyzje o uruchomieniu programu
XDM (logowanie w trybie graficznym).
2.3.2 Dostrajanie
1. Polski jezyk w KDE. Wybieramy K! Configuration! KDE! Personalization ! Country and Language. Ustawiamy jezyk polski oraz kodowanie ISO 8859-2. Aby ustawienia
zaczeły obowiazywac w KDE musimy sie wylogowac i zalogowac ponownie.
2. Konfiguracja drukarki. W okienku K! Konfiguracja! Inne! Centrum sterowania
Mandrake wybieramy zakładke Sprzet!Drukarka. Pojawi sie okienko w którym mozna
zmienic parametry juz zdefiniowanych drukarek (a dokładniej kolejek drukowania) oraz
utworzyc nowe.
3. Konfiguracja Netscape. Uruchamiamy netscape (K!Internet!Netscape Communicator).
Dodajemy jezyk polski w Edycja! Ustawienia! Navigator! Jezyki. Strony
WWW zawierajace polskie znaki narodowe drukujemy (Plik! Drukuj) komenda
ogonkify -AT -N | lpr
lub drukujemy do pliku netscape.ps i przetwarzamy go komenda
ogonkify -AT -N netscape.ps > netscape-pl.ps
Wynik konwersji sprawdzamy przegladarka gv
gv netscape-pl.ps
4. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy
mount /mnt/cdrom rpm -Uvh /mnt/cdrom/Mandrake/RPMS/mc-*.rpm umount /mnt/cdrom
Po instalacji uruchamiamy mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy:
Pełne 8 bitowe oraz Pełne osmiobitowe wejscie.
5. Konfiguracja usług startowych Pod X Windows uruchamiamy program drakxservices.
Zaznaczamy w nim które usługi powinny byc aktywowane podczas startu systemu.
6. Łaczenie z internetem przez modem Uruchamiamy program K! Siec! Zdalny
dostep! Łaczenie z internetem Konfiguracje programu wykonujemy wybierajac Ustawienia.
W zakładce Modem wybieramy Testuj modem aby sprawdzic rodzaj modemu.
Zakładka Połaczenia słuzy do konfiguracji połaczen z róznymi dostawcami internetu.
7. Konfiguracja sprzetu Do konfiguracji sprzetu słuzy program harddrake K! Konfiguracja
! Sprzet! HardDrake
8. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc
pod adresem ftp://ftp.task.gda.pl/pub/linux/Mandrake/
2.3.3 Błedy i niedoróbki
1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie
wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu,
tuz za inicjalizacja sieci (usługa network).
#!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf
fi
2.4 RedHat 7.1
2.4.1 Instalacja
Program instalacyjny zbiera informacje niezbedne do instalacji i po ich ostatecznym
zatwierdzeniu wykonuje czynnosci instalacyjne.
1. Jezyk instalacji. Program instalacyjny nie wspiera jezyka polskiego.Wybieramy „English”.
2. Klawiatura. Model klawiatury wykrywany jest automatycznie, wybieramy polski układ
klawiatury oraz właczone „dead keys”.
3. Mysz. Nalezy zwrócic uwage czy wykryta została poprawnie liczba przycisków.
4. Rodzaj instalacji. Wybieramy „Custom System” aby miec wpływ na grupy instalowanych
pakietów.
5. Partycjonowanie dysku. Wybieramy partycjonowanie reczne („Manually partition
with Disk Druid”).
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około
2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB.
6. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
7. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli
na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora
jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc
uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc
program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac
poleceniem DOS’a:
fdisk /MBR
8. Interfejs sieciowy. Karta ethernet jest wykrywana i konfigurowana podczas instalacji.
Połaczenia modemowe konfiguruje sie po instalacji. Karta ethernet moze byc skonfigurowana
automatycznie jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie.
W drugim przypadku nastepujace parametry musimy dostac od administratora sieci:
numer IP, netmask, hostname, domainname, gateway IP, server DNS główny i ew.
zapasowe. Zaznaczamy aktywacje interfejsu przy starcie systemu.
9. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• High: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Medium: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049,
zdalne sesje X Windows – porty 6000, 6001 itd. , serwer fontów X Windows –
port 7100.
• No firewall: bez filtrowania ramek.
Reguły narzucone przez Medium i High mozna uzupełnic podajac w opcji customize
usługi które nie beda odfiltrowane przez firewall.
10. Jezyk systemu. Polish
11. Strefa czasowa. Europe/Warsaw
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika.
13. Zarzadzanie kontami uzytkowników. Wybieramy wyliczanie skrótów haseł jednokierunkowa
funkcja MD5. Skróty powinny byc przechowywane w pliku /etc/shadow
(właczone „shadow passwords”). Pozostałe usługi dotycza stacji w duzych sieciach:
NIS, LDAP, Kerberos sa metodami centralnego zarzadzania kontami uzytkowników i
ewentualnego szyfrowanie transmisji.
14. Wybór grup pakietów. Printer, X Windows, KDE, Graphics, Multimedia, NetworkedWorkstation,
DialUpWorkstation,Web Server, Development, Authoring/Publishing
w sumie: 1085 MB
15. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania
pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki,
• monitor,
• rodzdzielczosc i liczba bitów na piksel
Poprawnosc wyboru sprawdzamy przyciskiem „Test settings”
2.4.2 Dostrajanie
1. Konfiguracja drukarki.Wokienku K!System!Printer Configuration lub Controlpanel
! Printer wprowadzamy nazwe, typ kolejki (drukarka zdalna lub lokalna), oraz
sterownik. Ustawienia sprawdzamy drukujac strone testowa. Jezeli wszystko jest OK
restartujemy demona drukowania (Plik!Restart lpd) i konczymy konfiguracje (Plik! Save Changes i Plik! Zakoncz).
2. Konfiguracja karty dzwiekowej. Wybieramy Control Panel! Sound lub w terminalu
uruchamiamy sndconfig. Postepujemy wg wskazan programu.
3. Polskie teksty w graficznym ekranie logowania. W okienku K! Preferencje! System! Menedzer logowania. wybieramy Country: Polska i czczionki z kodowaniem
ISO 8859-2.
4. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! System! Terminal.
W okienku Settings! Czczionka! Definiuj wybieramy misc-fixed o rozmiarze 16.
Rozmiar terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc).
Zmiany zachowujemy poleceniem Settings! Save settings.
5. Konfiguracja Netscape. Uruchamiamy Netscape (K! Internet! Netscape Communicator).
Dodajemy jezyk polski w Edit! Preferences! Navigator! Language.
Strony WWW zawierajace polskie znaki narodowe drukujemy (File! Print) komenda
ogonkify -AT -N | lpr
lub drukujemy do pliku netscape.ps i przetwarzamy go komenda
ogonkify -AT -N netscape.ps > netscape-pl.ps
Wynik konwersji sprawdzamy przegladarka gv
gv netscape-pl.ps
6. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy
mount /mnt/cdrom
rpm -Uvh /mnt/cdrom/RedHat/RPMS/mc-*.rpm
umount /mnt/cdrom
Po instalacji uruchamiamy mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy:
Pełne 8 bitowe oraz Pełne osmiobitowe wejscie.
7. Konfiguracja usług startowych Wybieramy Control Panel! Services lub uruchamiamy
w terminalu ntsysv Proponuje uruchomic jedynie: crond, gpm, ipchains, keytable,
kudzu, lpd, netfs (eth), network (eth), nfslock (eth), portmap (eth), pppoe (eth),
random, sendmail (eth, dialup), xfs, http. W nawiasach zaznaczono usługi uruchomione
na stacjach z kartami ethernet lub wyposazonymi w modemy.
8. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc
pod adresem ftp://ftp.task.gda.pl/pub/linux/redhat/linux/
2.4.3 Błedy i niedoróbki
1. W Control Panel! Kernel pojawia sie informacja, ze nalezy zainstalowac pakiet kernelcfg.
Takiego pakietu nie ma w dystrybucji.
2. Pozycja Control Panel! Apache nie uruchamia programu do konfiguracji serwera.
Mozna ja wykonac uruchamiajac program apacheconf.
2.5 SuSE 7.2
2.5.1 Instalacja
Instalacja moze byc wykonana przy uzyciu dwóch programów: YaST2 – w trybie graficznym,
lub YaST1 – w trybie tekstowym. Program instalacyjny YaST2 najpierw zbiera informacje
niezbedne do instalacji. W dowolnym momencie mozna z niej zrezygnowac. Z kolei
YaST1 dokonuje zmian na biezaco.
1. Tryb instalacji Po restarcie systemu z płyty CD mamy 5 sekund na decyzje czy
instalacja ma byc wykonana automatycznie („Installation”) lub z duza doza interwencji
uzytkownika („Manual installation”). Wybieramy pierwsza mozliwosc.
2. Jezyk instalacji. W trybie automatycznym program instalacyjny (YaST2) nie wspiera
jezyka polskiego. Wybieramy „English”. Jezyk ten bedzie równoczesnie jezykiem
obowiazujacym w systemie tuz po instalacji.
3. Klawiatura i strefa czasowa. Wybieramy polski układ klawiatury (jest to układ
programisty) oraz strefe czasowa „Europe/Poland”.
4. Tryb instalacji. Do wyboru mamy instalacje całkowicie nowego systemu, aktualizacje
juz istniejacego oraz start juz zainstalowanego systemu. Wybieramy pierwsza mozliwosc.
5. Podział dysku na partycje. Decydujemy sie na „Custom partitioning”. W przeciwnym
razie program instalacyjny sam zagospodaruje dostepna przestrzen dyskowa.
6. Partycjonowanie Nowe partycje tworzymy uzywajac przycisku „Create”. Istniejacym
partycjom mozemy przydzielic punkt montowania oraz zaznaczyc je do sformatowania
wybierajac przycisk „Edit”. Do unikalnych opcji programu instalacyjnego niewatpliwie
nalezy zaliczyc mozliwosc utworzenia na partycji systemu plików z katalogowaniem
(ReiserFS ) i/lub jego zaszyfrowanie. Nie jest dozwolone szyfrowanie partycji z systemem
plików „/”. Przejscie do nastepnego punktu instalcji nie powoduje jeszcze wpisu
nowej tablicy na dysk.
7. Instalacja pakietów. Instalowane pakiety mozemy wybrac wg jednej z pieciu predefiniowanych
konfiguracji. Wybieramy „Default System” (954 MB). Swój wybór mozemy
zmienic korzystajac z przycisku „Detailed selection ...”. Oprogramowanie mozna równiez
uzupełnic uruchamiajac YaST2 w juz działajacym systemie.
8. Program ładujacy. Jezeli program instalacyjny wykryje na dysku inny system operacyjny,
to proponuje instalacje LILO na dyskietce. Domyslna konfiguracje LILO mozna
zmienic wybierajac „Custom LILO installation”. LILO wgrywamy do MBR lub pierwszego
sektora jednej z partycji jezeli na komputerze nie Windows NT. W przeciwnym
razie LILO wgrywamy na dyskietke. Aby program ładujacy z pierwszego sektora partycji
mógł byc uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR
powinieni byc program ładujacy z DOS’a lub Windows. Domyslny program ładujacy
mozna wgrac poleceniem DOS’a:
fdisk /MBR
9. Dostep do systemu. Okreslamy hasło root’a oraz nazwe i hasło zwykłego uzytkownika.
10. Potwierdzenie instalacji.Wtym momencie program instalacyjny posiada juz wszystkie
dane do wykonania instalacji. Przejscie do nastepnego ekranu spowoduje instalacje
systemu.
11. Start systemu. Po wgraniu wybranych pakietów zainstalowany system jest uruchamiany
(bez restartu maszyny) w trybie tekstowym.
12. Tryb logowania. Automatycznie uruchamiany jest program postinstalacyjny.Wpierwszej
kolejnosci musimy zdecydowac czy do systemu bedziemy sie logowac w trybie tekstowym
lub graficznym. Wybieramy otoczenie graficzne. Automatycznie uruchamiany
jest program sax2 do konfiguracji X Windows.
13. Konfiguracja X Windows. W ramce podane sa parametry wykrytego sprzetu. Mozna
je zmienic przyciskiem „Change”. Niestety X Server wybierany jest automatycznie i
nie mamy mozliwosci jego zmiany. Poprawnosc ustawien sprawdzamy wybierajac przycisk
„Test”. Konfiguracja X Windows konczy proces instalacji. System bez restartu
przechodzi do odpowiedniego trybu działania.
14. Konfiguracja sprzetu W toku instalacji mozemy opcjonalnie skonfigurowac peryferia
takie jak modem, karta dzwiekowa i drukarka. Konfiguracja tego sprzetu mozemy
równiez wykonac po zakonczeniu instalacji uruchamiajac program YaST2.
2.5.2 Dostrajanie
1. X Windows Program sax2 konfiguruje serwer XFree 4.0.3 zapisujac konfiguracje w
/etc/X11/XF86Config. Jezeli serwer z serii nam nie odpowiada konfiguracje XFree
3.3.6 wykonujemy programem sax. Niezbedne pakiety zostana automatyczne załadowane
z nosnika. Koniecznie nalezy znac zakresy czestotliwosci odchylania pionowego i
poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
2. Konfiguracja drukarki. W okienku terminala uruchamiamy yast2 lub wybieramy
K!SuSE!System!Configuration!YaST2 Wsekcji Hardware wybieramy Printer.
Dla drukarki definiujemy nazwe kolejki, sterownik, rozmiar papieru, itd.
3. Konfiguracja modemu. W okienku terminala uruchamiamy yast2 lub wybieramy
K! SuSE! System! Configuration! YaST2 W sekcji Network/Basic wybieramy
Modem configuration.
4. Konfiguracja karty sieciowej. W okienku terminala uruchamiamy yast2 lub wybieramy
K! SuSE! System! Configuration! YaST2 W sekcji Network/Basic wybieramy
Network Card Configuration. Karta ethernet moze byc skonfigurowana automatycznie
jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie. W drugim
przypadku nastepujace parametry musimy dostac od administratora sieci: numer IP,
netmask, hostaname, domainname, gateway IP, server DNS główny i ew. zapasowe.
Zaznaczamy aktywacje interfejsu przy starcie systemu.
5. Konfiguracja karty dzwiekowej W okienku terminala uruchamiamy yast2 lub wybieramy
K!SuSE!System!Configuration!YaST2 Wsekcji Hardware wybieramy
Sound.
6. Dogrywamy lokalizacje KDE. W okienku terminala uruchamiamy yast2 lub wybieramy
K! SuSE! System! Configuration! YaST2 W sekcji Software wybieramy
moduł Install/Remove Software. Wazne aby w momencie uruchomienia modułu pierwsza
płyta zestawu była włozona do napedu CD. Wybieramy przycisk Search i wpisujemy
kde-i18n. Z listy wyswietlonych pakietów zaznaczamy do instalacji (podwójne
kliniecie) kde-i18n-pl. Wybór zatwierdzamy przyciskiem OK.
7. Polska czczionka na konsoli Uruchamiamy program yast2, wybieramy zakładke
misc, a nastepnie przycisk RC-Config Editor. Wybieramy zakładke Base-Administation! Console! console font. Jako wartosc zmiennej wpisujemy lat2-16.psfu. Nowe ustawienia
beda obowiazywały dopiero po restarcie systemu. Aby wymienic font na konsoli w
uruchomionym systemie w terminalu wpisujemy /etc/init.d/kbd restart.
8. Polski jezyk w sytemie. Uruchamiamy program yast2, wybieramy zakładke misc, a
nastepnie przycisk RC-Config Editor. Wybieramy zakładke Base-Administation! Localisation.
Do zmiennych rc lang i rc lc * wpisujemy wartosc pl PL. Jezeli lokalizacja
systemu ma równiez obowiazywac dla uzytkownika root to do zmiennej root uses lang
równiez wpisujemy pl PL.
9. KDE po polsku dla root’a. Wybieramy K!Preferences !Personalization!Country
and Language. Ustawiamy polski jezyk oraz kodowanie ISO 8859-2. Wylogowujemy
sie z KDE.
10. Polskie teksty w graficznym ekranie logowania. W okienku K! Preferences! System! Login Menager. wybieramy Country: Polska i czczionki z kodowaniem ISO
8859-2.
11. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! Terminale! Terminal.
W okienku Settings! Czczionka! Definiuj wybieramy misc-fixed o rozmiarze
16 i kodowaniu ISO 8859-2. Rozmiar terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc). Zmiany zachowujemy poleceniem Settings! Save settings.
12. Konfiguracja Netscape. Uruchamiamy Netscape (K!SuSE!Internet!WWW! Netscape Communicator). Dodajemy jezyk polski w Edit! Preferences! Navigator
! Languages. Strony WWW zawierajace polskie znaki narodowe drukujemy (File
! Print) komenda
ogonkify -AT -N | lpr
lub drukujemy do pliku netscape.ps i przetwarzamy go komenda
ogonkify -AT -N netscape.ps > netscape-pl.ps
Wynik konwersji sprawdzamy przegladarka gv
gv netscape-pl.ps
13. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc
pod adresem ftp://ftp.task.gda.pl/pub/linux/SuSE-Linux/i386/
2.5.3 Błedy i niedoróbki
1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie
wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu,
tuz za inicjalizacja sieci.
#!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf
fi
2.6 Wydruki z własnych programów
Najlepiej drukowac do postscriptu. Jezeli korzystamy z polskich fontów (ISO-8859-2) to
najlepiej bezposrednio dołaczyc je do pliku wynikowego. Musimy dysponowac wersja zródłowa
fontu (pliki z rozszerzeniem *.pfa) Oto fragment programu w C++ generujacego wyjscie
w postscripcie korzystajacego z polskich fontów Courier
#define FONT_NORMAL "Courier"
#define FONT_NORMAL_FILE "cour-iso2.pfa"
#define FONT_BOLD "Courier-Bold"
#define FONT_BOLD_FILE "courb-iso2.pfa"
// wygeneruj nagłówek pliku
cout << "%!PS-Adobe-2.0" << endl ;
copyfile(FONT_NORMAL_FILE,cout) ;
cout << endl ;
copyfile(FONT_BOLD_FILE,cout) ;
cout << endl ;
// wybierz font
cout << "/" << FONT_NORMAL << " findfont 12 scalefont setfont" << endl ;
// teksty
.........
// zmien font
cout << "/" << FONT_BOLD << " findfont 12 scalefont setfont" << endl ;
// teksty
Elementy systemu
3.1 Uzytkownicy sytemu
Linux jest systemem wielodostepnym. W jednym czasie moze wiec z zasobów stacji roboczej
korzystac wiele osób. Aby osoba mogła uzykac do zasobów musi miec załozone tzw. konto.
Konto identyfikowane jest przez nazwe, inaczej okreslana mianem uzytkownika. Dostep do
konta uzyskuje sie po podaniu własciwego hasła. Z kontem zwiazanych jest szreg informacji
o charakterze administracyjnym. Dla kazdego uzytkownika (konta) przydzielony jest katalog
domowy. Własciciel konta ma prawo tworzenia, zmieniania i niszczenia plików w tym katalogu.
W prawidłowo skonfigurowanym systemie uzytkownik nie powinien miec mozliwosci
zmiany plików poza swoim katalogiem domowych. Z kontem uzytkownika moze byc zwiazane
ograniczenie wykorzystania przestrzeni dyskowej, tzw. quota.
Uzytkownicy systemu moga miec rózne prawa. Aby ułatwic zarzadzanie dostepem do
zasobów systemu wprowadzono pojecie grupy. Grupa to po prostu podzbiór uzytkowników,
która ma pewne szczególne prawa, np. dostep do stacji CD-ROM. Uzytkownik moze nalezec
do wielu grup. Prawa uzytkownika nalezacego do wielu grup sa suma praw przydzielonych
poszczególnym grupom.
Wykaz uzytkowników systemu znajduje sie w pliku /etc/passwd.
pz:x:501:501:Piotr Zawadzki:/users/pz:/bin/bash
Obok nazwy uzytkownika okreslone sa tam: dane identyfikacyjne takie jak nazwisko, telefon,
itp. oraz katalog domowy. W starszych systemach plik ten zawierał równiez zaszyfrowane
hasła uzytkowników. Obecnie praktykuje sie umieszczania zaszyfrowanych haseł w pliku
/etc/shadow, do którego dostep ma jedynie administrator systemu.
pz:p2SxDhYqIK/j2:11592:0:99999:7:0::
W pliku /etc/group zawarte jest przyporzadkowanie uzytkowników systemu do grup.
3.2 Pliki
Z punktu widzenia uzytkownika systemu przestrzen dyskowa jest zbiorem plików. Porzadek
i hierarchiczna strukture w zbiorze plików zapewniaja katalogi. Kopiowanie, przesuwanie
i usuwanie plików zapewniaja komendy cp, mv, rm.
3.2.1 Atrybuty plików
Kazdy plik i katalog ma przyporzadkowanego uzytkownika i grupe. Czesto mówi sie, ze
plik nalezy do uzytkownika i grupy. Do zmiany przyporzadkowania słuzy komenda chown.
Kazdy plik i katalog ma przydzielone prawa do odczytu, zapisu i wykonania. Osobny zestaw
praw przydzielony jest włascicielowi, grupie oraz pozostałym uzytkownikom systemu. Tak
wiec prawa do pliku lub katalogu kontrolowane sa przez 9 bitów. Prawa dostepu do pliku
ustala sie komenda chmod. Znaczenie atrybutu wykonywalnosci, oraz praw do odczytu i zapisu
dla zwykłych plików jest oczywiste. Dla katalogów interpretacja praw jest nastepujaca:
atrybut wykonywalnosci oznacza mozliwosc przejscia do katalogu (np. komenda cd), prawo
do odczytu oznacza mozliwosc wylistowania zawartosci katalogu (np. komenda ls), a prawo
do zapisu oznacza mozliwosc tworzenia plików w katalogu (np. komenda touch).
3.2.2 Dowiazania symboliczne
Jak zauwazylismy na wstepie system plików pozwala na zarzadzanie przestrzenia dyskowa
poprzez pojecia plików i katalogów. O pliku mozna w pierwszym przyblizeniu myslec jak
o dowiazaniu okreslonej nazwy do fragmentu przestrzeni dysku. W Linuksowych systemach
plików (ext2, ext3, reiserfs) do okreslonego fragmentu przestrzeni dyskowej mozna utworzyc
wiele dowiazan, lub inaczej mówiac, mozna jej nadac wiele nazw. Poprzez wskazanie do
tego samego fragmentu dysku istnieje scisły zwiazek miedzy plikami. Zwiazek ten nazywamy
twardym dowiazaniem (ang. hardlink ). Zmiany naniesione w jednym z plików sa natychmiast
widoczne w drugim. Kontrola nad danym fragmentem przestrzeni dyskowej jest zachowana
tak długo, jak długo przypisana jest do niego co najmniej jedna nazwa, a kasowanie pliku
polega jedynie na usunieciu dowiazania o ile tylko nie jest to ostatnie wskazanie na plik.
Sama istota dowiazan twrdych wymaga, aby oba powiazane ze soba pliki nalezały do tego
samego pliku. Do tworzenia dowiazan twardych słuzy komenda ln.
Istnieje jeszcze jeden typ dowiazan, tzw. dowiazania symboliczne (ang. symbolic link ). Dowiazanie
symboliczne realizowane sa niejako w wyzszej warstwie systemu plików. W pierwszym
przyblizeniu o dowiazaniu symbolicznym mozna myslec jako o wskazniku do nazwy
pliku. Oznacza to, ze utworzenie dowiazania symbolicznego wymaga zuzycia dodatkowej
przestrzeni dyskowej (wskaznik przechowuje co najmniej nazwe pliku który wskazuje). Niewatpliwa
zaleta dowiazan symbolicznych jest mozliwosc rozmieszczenia dowiazan na rozłacznych
systemach plików.
3.2.3 Kontrola montowania systemów plików
W Linuksie nie ma pojecia napedów dysków. Systemy plików umieszczone na urzadzeniach
blokowych moga byc integrowane z głównym drzewem katalogów przy uzyciu komendy
mount. Komenda mount wymaga podania typu systemu plików na urzadzeniu, nazwy
urzadzenia blokowego oraz katalogu w którym bedzie widoczna zawartosc katalogu. Jednak
kazdorazowe montowanie niezbednych systemów plików po uruchomieniu systemu byłoby
bardzo uciazliwe. Do automatyzacji procesu montowania systemów plików wykorzystuje sie
plik /etc/fstab. W pliku tym zawarte sa niezbedne dane do wykonania procesu montowania
uzupełnione szeregiem pozytecznych opcji. W pliku /etc/fstab podaje sie m.in. czy na
systemie plików obowiazuje kontrola przydziału przestrzeni dyskowej, czy integralnosc systemu
plików powinna byc sprawdzana po nieprawidłowym zakonczeniu pracy systemu, czy
wreszczie system plików moze byc zamontowany przez nieuprzywilejowanego uzytkownika.
Montowanie systemów plików okreslonych w /etc/fstab jest bardzo uproszczone, bowiem
komendzie mount wystarczy przekazac nazwe punktu montowania. Pozostałe sa ustalane na
podstawie pliku /etc/fstab.
/dev/hda1 /mnt/windows vfat user,exec,umask=0,codepage=852,iocharset=iso8859-2
0/dev//dev/hda5 /users ext2 defaults 1 2
/dev/fd0 /mnt/floppy vfat noauto,owner 0 0
Obok tradycyjnego mechanizmu montowania systemu plików jadro Linuksa wyposazone jest
w mechanizm supermount. Mechanizm ten pozwala na wymiane płyt CD i dyskietek bez
uprzedniego montowania i odmontowania, które to operacje wykonywane sa przez jadro gdy
jest to konieczne. Wada tego podejscia jest wyłaczenie buforowania dla tak udostepnionych
systemów plików.
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
/mnt/zip /mnt/zip supermount user,fs=vfat,dev=/dev/zip 0 0
3.3 Kontrola urzadzen zewnętrznych
Komunikacja z urzadzeniem zewnetrznym wymaga wykonania nastepujacych kroków: instalacji
sterownika do urzadzenia zapewniajacego jednolity interfejs dla danej klasy urzadzen
oraz przekazywania i odbierania danych interpretowanych przez sterownik.
3.3.1 Moduły jadra
W starszych wersjach Linuksa sterwonik urzadzenia musiał byc wkompilowny w jadro.
W praktyce oznaczało to, ze w zasadzie po instalacji systemu nalezało wykonac rekompilacje
jadra aby umiescic w nim sterowniki do posiadanego sprzetu i wyrzucic balast zajmujacy
pamiec RAM, jakim były sterowniki do pozostałaych urzadzen. Obecnie jadro Linuksa ma
budowe modułowa. Oznacza to, ze elementy jadra moga byc ładowane i usuwane z pamieci
w czasie działania systemu. Do zarzadzania modułami słuza komendy lsmod, insmod i rmmod.
Moduły jadra sa ze wzajemnie ze soba powiazane i poprawne działanie niektórych modułów
wymaga załadowania innych. Ładowanie modułów komenda insmod nie uwzglednia zaleznosci
miedzymodułowych, co powoduje, ze uzycie w/w komendy jest w niektórych przypadkach
bardzo utrudnione.
Zarzadzanie modułami z uwzglednieniem zaleznosci umozliwiaja komendy depmod i modprobe.
Pierwsza z nich bada wzjemne zaleznosci i zapisuje je w pliku /lib/modules/-
/modules.dep. Zazwyczaj baza danych zawarta w tym pliku jest budowana przy kazdorazowym
starcie systemu. Druga z komend jest odpowiedzialna jest za ładowanie i usuwanie
modułów z pamieci z uwzglednieniem zaleznosci ustalonych przez depmod.
Jadro systemowe zapewnia abstrakcje obsługi wielu typów urzadzen, np. kart sieciowych
Ethernet, strowników SCSI, kart dzwiekowych, kart telewizyjnych. Do obsługi tych urzadzen
jadro korzysta z wewnetrznych nazw tych interfejsów. I tak pierwszej karcie sieciowej odpowiada
urzadzenie o nazwie eth0, drugiej – eth1, sterownikowi SCSI – scsi hostadapter,
pierwszej karcie dzwiekowej – sound-slot-0, drugiej – sound-slot-1, karcie telewizyjnej –
char-major-81.
alias scsi_hostadapter ncr53c8xx
alias char-major-81 bttv
alias sound-slot-0 opl3sa2
alias synth0 opl3
options opl3 io=0x388
options opl3sa2 isapnp=1
Gdy moduł ładowany jest recznie kod zawarty w module informuje jadro do jakiej klasy nalezy
moduł. Jednak ładowanie reczne modułów przy kazdorazowym starcie systemu moze byc
uciazliwe. Ponadto załadowane moduły pozostaja w pamieci niezaleznie od tego czy sa uzywane
czy nie. W Linuksie mozna zorganizowac ładowanie modułów „na zadanie”, tj. moduł
jest ładowany gdy jadro zamierza skorzystac z usług urzadzenia danej klasy i usuwany, gdy
pozostaje przez pewien zadany czas w bezczynnosci. Na przykład gdy jadro chce skomunikowac
sie z urzadzeniem danej klasy to zada usługi od odpowiadajacego urzadzniu interfejsu,
np. aby wysłac ramke do sieci Ethernet, zada odpowiedniej usługi od interfejsu eth0. Jednak
konkretny sterownik zapewniajacy obsługe urzadzenia zalezny jest od konkretnych rozwiazan
sprzetowych. Stad istnieje wiele sterowników obsługujacych rózny sprzet a zapewniajacych
jednolity interfejs dla jadra systemowego. Do ustalenia zwiazku miedzy abstrakcyjnym interfejsem
urzadzenia danej klasy a konkretnym sterownikiem słuzy plik /etc/modules.conf.
Inaczej mówiac, w pliku tym znajduje sie informacja który moduł odpowiedzialny jest za
obsługe danego interfejsu jadra. System wyposazony w taka informacje moze ładowac dany
sterownik tylko gdy z niego korzysta. Sterowniki nie uzywane moga byc automatycznie
usuniete z pamieci.
3.3.2 Pliki urz±dzeń
Z punkyu widzenia jadra sterwnik realizuje okreslonu interfejs. Zgdonie z filozofia systemu,
w którym virtualnie wszystko jest plikiem, komunikacja programów z urzadzeniami
zewnetrznymi odbywa sie poprzez pliki. Kazdemu urzazdeniu przypisany jest odpowiedni
plik. Jezeli nastepuje próba zapisu lub odczytu z pliku urzadzenia, zadaniem jadra jest
sprawdzenie czy dane moze byc obsłuzone i ewentualne załadowanie sterownika na podstawie
zawartosci /etc/modules.conf.
Pliki specjalne odpowiedzialne za obsługe urzadzen znajduja sie w katalogu /dev. Najwazniejszym
podziałem jest podział na urzadzenia blokowe i znakowe. W kazdej z tych grup
urzadzenia identyfikowane sa przez dwa bajtowe numery: główny (ang. major) i pomocniczy
(ang. minor). Pierwszy z numerów identyfikuje typ urzadzenia (karta sieciowa, karta dzwiekowa,
itd.) lub inaczej mówiac rodzaj interfejsu, drugi zas jest numerem kolejnym urzadzenia
w danej klasie. Przypisanie numerów do klas urzadzen mozna znalezc w pliku /usr/src/-
linux/Documentation/devices.txt. Pliki urzadzen tworzy sie komenda mknod.
3.4 Procesy
Linux jest systemem wielozadaniowym, tzn. moze w nim pracowac wiele programów jednoczesnie.
Sytem operacyjny kazdemu programowi przydziela chroniony obszar pamieci (inny
proces nie ma dostepu do tego obszaru pamieci) oraz czesc czasu procesora. W terminologii
UN*X’a kazdy uruchomiony program nazywamy procesem. Uruchomienie procesu odbywa
sie zawsze za posrednictwem innego procesu. Proces odpowiedzialny za uruchomienie danego
procesu nazywany jest procesem przodkiem, natomiast proces uruchomiony – procesem
potomnym. Kazdy proces w systemie ma przydzielony swój identyfikator, tzw. PID. Prawa
procesu w systemie sa co najwyzej takie, jak prawa uzytkownika który go uruchomił. Aby
proces miał wieksze prawa, a dokładniej prawa własciciela lub grupy posiadajacej plik z programem,
plik ten musi miec ustawiony atrybut SUID i/lub GUID. Mimo iz istnienie programów
z takimi strybutami jest w systemie niezbedne, to stanowia one potencjalne zagrozenie
dla bezpieczenstwa systemu. Inteligentne wykorzystanie błedów w programach z atrybutami
SUID i GUID moze byc uzyte do powiekszenia swoich praw w systemie, w szczególnym
przypadku – uzyskania przywilejów administratora. Procesy uruchomione w systemie sprawdzamy
komenda ps, a podział czasu procesrora pomiedzy procesy podaje komenda top.
Z procesem mozna komunikowac sie wysyłajac do niego sygnały (UN*X’owy odpowiednik
przewan). Do wysyłania sygnałów słuzy komenda kill, Aby zatrzymac działanie procesu
nalezy wysłac do niego sygnał SIGTERM lub SIGKILL.
3.5 Interfejs użytkownika
Komplet klawiatura, mysz, monitor moga byc w Linuksie uzywane jednoczesnie do prowadzenia
wielu sesji. Jest to mozliwe dzieki koncepcji konsoli wirtualnej. Konsola wirtualna
moze byc obsługiwana w trybie tekstowym lub graficznym. Zdarzenia wejscia/wyjscia obsługiwane
sa przez konsole biezaca. Przełaczanie miedzy konsolami w trybie tekstowym wykonujemy
klawiszami ˇCtrlż ˇFxż gdzie x oznacza numer konsoli. Liczba konsoli tekstowych jest
konfigurowalna. Dystrybucje Linuksa zazwyczaj sa skonfigurowane na 6 konsoli tekstowych.
Pozostałe konsole tj. o numerach wiekszych od 6, moga byc wykorzystywane jako konsole
graficzne. Konsola inicjowana jest do trybu graficznego przez system X Window. Przełaczanie
miedzy konsolami w trybie graficznym realizuje kombinacja klawiszy ˇCtrlżˇAltżˇFxż
gdzie ponownie x oznacza numer konsoli. Powyzsza kombinacja pozowala równiez na przełaczanie
sie miedzy trybem tekstowym i graficznym.
3.5.1 Logowanie do systemu
Logowanie do systemu moze odbywac sie w trybie tekstowym (na konsolach od 1 do 6)
lub w trybie graficznym na konsoli 7. konfiguracje konsoli omówimy bardziej szczegółowo
podczas omawiania programu init.
Po zalogowaniu w trybie tekstowym uzytkownik wydaje korzystajac z interfejsu powłoki.
Powłoka jest UN*X’owym odpowiednikiem programu DOS’owego command.com. Jednak w
Linuksie mamy do wyboru kilka róznych powłok, z których najbardziej popularne to bash
i tcsh. Linuksowe powłoki wyposazone sa jezyk programowania (specyficzny dla danej powłoki)
pozwalajacy na realizacje działan warunkowych, petli, itp.
Zarzadzanie plikami z poziomu powłoki jest dosc uciazliwe, dlatego dobrze jest skorzystac
z programu mc. Jest to program bardzo podobny w idei działania do programu Norton
Commander.
Pracujac w trybie tekstowym mozemy w dowolnym momencie uruchomic graficzny interfejs
uzytkownika komenda startx. Graficzny interfejs realizuje serwer X Windows realizowany
w ramach projektu XFree86. Sam serwer jest jedynie obszarem ekranu na którym rózne
programy moga umieszczac dane. Srodowisko okienkowe, tj. przesuwanie, zamykanie realizuje
nastepna warstwa oprogramowania nazywana zarzadca okien (ang. Window Manager).
Istnieje wiele programów pełniacych funkcje zarzadcy okien. Najwazniejsze z nich to WindowMaker,
fvwm, AfterStep. Obok zarzadców okien powstały dwa projekty, których zadaniem
jest stworzenie graficznego srodowiska pracy, obejmujace programy pocztowe, zarzadce
plików, przegladarke WWW, programy typu PIM (ang. Personal Information Management).
Projekty te to GNOME i KDE rozprowadzone obecenie z wiekszoscia dystrybucji.
Graficzny zarzadca logowania XDM (lub jeden z odpowiedników KDM, GDM)
Start systemu
4.1 Ładowanie jadra sytemu
Najczestsza metoda bootowania Linuksa jest korzystanie z LILO (ang. LInux LOader).
LILO jest programem który pozwala na wybór systemu opracyjnego podczas startu systemu.
Po właczeniu zasilania i rozpoznaniu zainstalowanych urzadzen BIOS usiłuje uruchomic
program ładujacy (wg. wskazan ustawionych w SETUP). Zazwyczej urzadzeniem z którego
bedzie ładowany program ładujacy jest pierwszy dysk na pierwszym kontrolerze (choc
wiele BIOS’ów pozwala obecnie na wybór innego dysku), czyli w terminologii Linuksowej
/dev/hda. Najpierw kontrola przekazywana jest do programu zawartego w pierwszym sektorze
urzadzenia z którego nastepuje start. Pierwszy sektor na dysku twardym nosi nazwe
Master Boot Record (MBR). W przypadku systemów operacyjnych producenta „wiodacego”
na rynku oprogramowania program z MBR przekazuje kontrole do programu zawartego w
pierwszym sektorze (tzw. boot sector) partycji oznaczonej jako aktywna (ew. bootable).
LILO moze byc zainstalowane zarówno w MBR, jak i pierwszym sektorze aktywnej partycji.
Decyzja o miejscu instalacji jest podejmowana w czasie wstepnej konfiguracji systemu.
Ewentualne zmiany moga byc zawsze wprowadzone recznie w pliku /etc/lilo.conf lub przy
uzyciu programu konfiguracyjnego zaleznego od dytsrybucji (np. linuxconf w dystrybucji
RedHat). Nalezy pamietac, ze plik /etc/lilo.conf nie jest plikiem konfiguracyjnym programu
ładujacego, a jedynie opisem jak program ładujacy ma byc skonfigurowany w systemie.
Do utworzenia i/lub aktualizacji opcji programu ładujacego słuzy komenda /sbin/lilo. Po
jakiejkolwiek zmianie /etc/lilo.conf nalezy wiec uruchomic /sbin/lilo. Przykładowy
plik konfiguracyjny dla lilo zamieszczono ponizej
boot = /dev/hda
prompt
timeout = 500
read-only
default = linux
image = /boot/vmlinuz-2.2.14-5.0
label = linux
root = /dev/hda6
other = /dev/hda3
label = win
Opcja boot definiuje gdzie bedzie zainstalowany program ładujacy. Ustawienie /dev/hda
oznacza MBR pierwszego dysku na pierwszym kontrolerze. Przykładowe inne dozwolone
ustawienie to /dev/hda1 oznaczajace pierwszy sektor pierwszej partycji. Opcja prompt oznacza,
ze zostanie wyswietlone zaproszenie do wyboru systemu operacyjnego w postaci LILO:.
Opcja timeout okresla czas (w milisekundach) na reakcje uzytkownika po wyswietleniu zaproszenia.
Przy braku reakcji zostanie uruchomiony system zdefiniowany opcja default. Opcja
read-only ma wpływ jedynie na proces ładowania Linuksa, i oznacza, ze podczas startu systemu
jadro powinno zamontowac system plików „/” w trybie tylko do odczytu1. Dlasza czesc
pliku podzielona jest na tzw. sekcje. Sekcja zaczyna sie słowem image lub other i konczy poczatkiem
nastepnej sekcji lub koncem pliku. Sekcja image definiuje lokalizacje jadra systemu
orza jego etykiete podawana podczas wyboru. Nastepnie podawana jest lista parametrów
przekazanych do jadra systemu przy jego uruchomieniu. W podanym przykładzie opcja root
definiuje system plików który bedzie zamontowany jako /. Parametry przekazywane do
jadra mozna zmienic podczas startu systemu w linii wyboru systemu operacyjnego np. aby
partycja /dev/hdc7 była uzywana jako system plików / musimy wpisac
LILO: linux root=/dev/hdc7
Sekcja other definuje etykiete do uruchomienia systemu operacyjnego innego niz Linux,
oraz partycje z której zostanie uruchomiony program ładujacy dany system. Oczywiscie
sekcji other i image moze byc wiele. Opis wszystkich mozliwych parametrów jadra znajduje
sie w pliku kernel-parameters.txt w katalogu /usr/src/linux/Documentation2
4.2 Proces init
Jadro po załadowaniu sie do pamieci, rozpoznaniu zainstalowanego sprzetu i zamontowaniu
partycji „/” jako read-only uruchamia proces init. init jest przodkiem wszystkich
procesów uruchomionych w systemie. Jest to zarazem jedyny proces który nie ma przodka.
Proces init ma zawsze PID = 1. Plikiem konfiguracyjnym procesu init jest plik
/etc/inittab. Start systemu odbywa sie poprzez interpretacje własnie tego pliku. Tak wiec
plik /etc/inittab jest odpowiednikiem pliku CONFIG.SYS z systemów operacyjnych pewnego
„wiodacego” na rynku producenta. Proces init moze uruchomic system w kilku trybach
(tzw. poziomach uruchomienia, ang. runlevel ). Tryby maja oznaczenia cyfrowe od 0 do 6.
Tryby pracy 0,1 i 6 sa zarezerwowane: 0 – zatrzymanie systemu (tzn. aby zatrzymac system
musimy zarzadac od init uruchomienia systemu w trybie 0), 1 – praca w trybie jednego
uzytkownika, 6 – ponowne uruchomienie (reboot) systemu. Pozostałe tryby wykorzystywane
sa róznie w zaleznosci od dystrybucji.
1Dopiero w po sprawdzeniu systemu plików jest on montowany w trybie do odczytu i zapisu.
2Nalezy wczesniej zainstalowac pakiet kernel-doc.
Składnia pliku /etc/inittab opisana jest na stronie pomocy (man inittab). Elementy
pliku /etc/inittab maja nastepujaca składnie
id:runlevels:action:process
gdzie id jest dowolnym dwuliterowym identyfikatorem, runlevels lista poziomów uruchomienia
w których dany element pliku jest aktywny (np. wpis 0123 oznacza, ze dany
element bedzie aktywny w poziomach uruchomienia 0, 1, 2 i 3), action opisuje jakie ma
podejmowac xinit przy wykonywaniu programu wymienionego w polu process. Dozwolone
wartosci pola action to
initdefault Ustawienie typowego poziomu uruchomienia. Pole process jest ignorowane,
natomiast w polu runlevels powinien wystepowac oznaczenie tylko jednego poziomu
uruchomienia.
respawn Wymieniony proces jest uruchamiany i init przetwarza plik konfiguracyjny nie
czekajac na zakonczenie jego działania. Gdy proces zakonczy swoje działanie jest automatycznie
uruchamiany ponownie.
wait Proces zostanie uruchomiony jeden raz i przetwarzanie pliku /etc/inittab zostanie
wstrzymane dopóki proces nie zakonczy swojego działania.
once Proces jest uruchamiany jeden raz. Po uruchomieniu procesu przetwarzanie /etc/inittab
jest kontynuowane.
boot Proces jest uruchamiany tylko podczas startu systemu. Pole zawierajace poziomy uruchomienia
jest ignorowane, proces nie jest uruchamiany podczas zmiany poziomu uruchomienia
działajacego systemu.
bootwait Podobnie jak boot, z tym, ze przetwarzanie /etc/inittab jest wznawiane po
zakonczeniu procesu.
sysinit To samo co bootwait.
ctlraltdel proces jest wykonywany gdy nacisniete zostana „trzy magiczne klawisze”.
powerfail Proces jest wykonywany gdy system otrzyma sygnał od UPS o braku zasilania.
powerok Proces jest wykonywany gdy po krótkotrwałym braku zasilania zostaje ono przywrócone.
Dalej przeanalizujemy zawartosc /etc/inittab z dystrybucji RedHat 6.2. W systemie RedHat
oprócz trybów zarezerwowanych wykorzystywane sa nastepujace poziomy uruchomienia:
2 tryb wielodostepny z wyłaczonym NFS,
3 tryb 2 + NFS,
5 tryb 3 + grafczny interfejs logowania.
4.2.1 Inicjalizacja systemu
Przedstawione nizej elementy pliku /etc/initab sa odpowiedzialne za podstawowa incjalizacje
sytemu.
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ud::once:/sbin/update
Widzimy, ze w podanym przykładzie standardowy tryb uruchomienia to 5. Nastepnie
uruchamiany jest proces /etc/rc.d/rc.sysinit (odpowiednik AUTOEXEC.BAT). Proces
init czeka, az rc.sysinit skonczy sie wykonywac. Nastepnie wykonywany jest skrypt
/etc/rc.d/rc odpowiedzilany za konfiguracje usług specyficznych dla danego poziomu uruchomienia.
Numer poziomu uruchomienia przekazywany jest do /etc/rc.d/rc jako parametr.
Ostatnim elementem podstawowej konfiguracji jest uruchomienie demonów (programów rezydentnych)
odpowiedzialnych za zapisywanie buforów dyskowych. Funkcjonalnie, działanie
/sbin/update jest bardzo podobne do działania programu SmartDrive.
4.2.2 Zdarzenia wyjatkowe
Przez zdarzenia wyjatkowe rozumiemy tutaj zdarzenia, które wystepuja stosunkowo rzadko
i wymagaja szybkiej reakcji systemu. Takim zdarzeniom odpowiadaja nastepujace wartosci
pola action: ctrlaltdel. powerfail, powerok.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
Jak widac reakcja na wszystkie te zdarzenia wymaga skorzystania z komendy shutdown.
Znaczenie poszczególnych opcji mazna znalezc na stronie pomocy (man shutdown). Znaczenie
komend odpowiadajacych poszczególnym kluczom jest nastepujace
ctrlaltdel natychmiast ururuchom ponownie komputer.
powerfail poczekaj 2 minuty i zamknij system. Uzytkownikom systemu wyslij komunikat
o zaniku mocy.
powerfail zrezygnuj z zamkniecia systemu.
Ostatnie dwa zdarzenia moga wystapic w systemie który jest przyłaczony do UPS. Komunikacje
z UPS zapewnia demon powerd.
4.2.3 Logowanie do systemu
Do systemu mozemy logowac sie zarówno w trybie tekstowym jak i graficznym.
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
Obsługe konsol tekstowych realizuje program mingetty 3. Program rezerwuje odpowiednie
urzadzenie /dev/tty? odpowiadajace konsoli tekstowej, wyswietla na niej plik /etc/issue
i uruchamia program login odpowiedzialny za uwierzytelnienie uzytkownika. W podanym
przykładzie inicjowanych jest 6 konsol tekstowych (id = 1 ÷ 6 uruchamianych w poziomach
uruchomienia 2 ÷ 5.
Graficzny interfejs logowania zarówno z lokalnej konsoli, jak i poprzez siec moga realizowac
nastepujace programy: xdm (XFree86), gdm (GNOME), kdm (KDE). W omawianym
przykładzie uruchamiany jest skrypt /etc/X11/prefdm. Zadaniem tego skryptu jest wybór
i uruchomienie preferowanego w danym systemie menedzera logowania. Preferencje ustalane
sa na podstawie zawartosci pliku /etc/sysconfig/desktop (patrz rozdział ??).
4.3 Skrypty startowe
W systemie RedHat 6.2 inicjalizacja systemu wzorowana UNIX System V. Pliki startowe
systemu znajduja sie w katalogu /etc/rc.d, przy czym
• za konfiguracje niezalezna od poziomu uruchomienia odpowiedzialne sa pliki rc.*,
• skrtypty startowe poszczególnych usług znajduja sie w podkatalogu init.d,
• usługi które maja byc uruchomione dla danego poziomu uruchomienia sa okreslone
w podkatalogach rc?.d przez umieszczenie dowiazania symbolicznego do odpowiedniego
skryptu z katalogu init.d.
4.3.1 Podstawowa inicjalizacja systemu
Za podstawowa konfiguracje systemu RedHat 6.2 odpowiedzialny jest skrypt /etc/rc.sysinit.
Oto lista zadan które sa realizowane przez ten skrypt.
1. Odczytanie podstawowych parametrów konfiguracyjnych sieci z pliku /etc/sysconfig/network.
3Logowanie do systemu z terminala podłaczonego do portu szeregowego obsługuje program mgetty
2. Załadowanie i wykonanie funkcji pomocniczych dla procesu startu systemu z pliku
/etc/rc.d/ init.d/functions. Konfiguracja bootowania systemu znajduje sie w pliku
/etc/sysconfig/init,
3. Zamontowanie systemu plików proc zapewniajacego dostep do biezacej konfiguracji
jadra systemu.
4. Ustawienie parametrów jadra systemu poleceniem sysctl na podstawie pliku konfiguracyjnego
/etc/sysctl.conf. Zazwyczaj ustawiane parametry dotycza trybu współpracy
jadra sytemu z siecia.
5. Na podstawie pliku /etc/sysconfig/clock ustawiany jest zegar systemowy zgodnie
z zadeklarowana strefa czasowa.
6. Inicjowana jest mapa klawiatury. Jezeli istnieje plik
/etc/sysconfig/console/default.kmap
to jest przyjmowany jako prawidłowa mapa klawiatury. W przeciwnym razie mapa
klawiatury ustalana jest na podstawie zawartosci pliku /etc/sysconfig/keyboard.
Dostepne mapy klawiatur mozna sprawdzic w katalogu /usr/lib/kbd/keymaps/ . Aktywacje
wybranej mapy klawiatury realizuje komenda loadkeys.
7. Załadowanie fontu ekranowego realizowane jest komenda setsysfont. Nazwe fontu
definiujemy w pliku /etc/sysconfig/i18n przez przypisanie nazwy fontu do zmiennej
SYSFONT.Wcelu otrzymania nazwy pliku zawartosc zmiennej SYSFONT uzupełniana jest
o rozszerzenia *.psf.gz lub *.gz. Plik o tak wygenerowanej nazwie poszukiwany jest
w katalogach
/etc/sysconfig/console/
/usr/lib/kbd/consolefonts/
8. Aktywowanie partycji wymiany.
9. Ustanowienie nazwy hosta.
10. Ustanowienie domeny NIS (ang. Network Information System) jezeli została skonfigurowana.
11. Nastepnie sprawdzany jest system plików na urzadzeniu zamontowanym jako /. Sprawdzenie
jest wykonywane komenda fsck (Linuksowy odpowiednik ScanDisk). Opcje dla
komendy ustalane sa na podstawie:
• zawartosci pliku /fsckoptions, plik zazwyczaj nie istnieje,
• trybu startu systemu (szeregowy lub kolorowy tj. z wyswietlanymi napisami OK,
FAILED, itp.).
W przypadku powaznych błedów w strukturze plików uruchamiana jest konsola superuzytkownika
z prosba o uruchomienie fsck w trybie iteraktywnym. Dla systemów
z aktywnym limitowanym przydziałem przestrzeni dyskowej (ang. quota) wystapienie
błedów które mozna było usunac automatycznie powoduje ustawienie flagi mówiacej
o koniecznosci sprawdzenia miejsca na dysku zajmowanego przez kazdego z uzytkowników.
Istnienie pliku /fastboot dezaktywuje sprawdzanie poprawnosci struktury systemu
plików.
12. Inicjacja kart ISA PnP. Incjacje kart PnP mozna wyłaczyc przekazujac jadru parametr
nopnp. Do inicjacji kart PnP uzywana jest komenda isapnp która standardowo
korzysta z pliku konfiguracyjnego /etc/isapnp.conf. Plik konfiguracyjny w dystrybucji
RedHat jast zazwyczaj tworzony automatycznie. Reczne utworzenie takiego pliku
jest równiez mozliwe przy uzyciu komendy isapnpdump która tworzy plik zawierajacy
wszelkie mozliwe ustawienia kart PnP w systemie. tak wygenerowany plik musimy
poddac edycji wybierajac dla kazdej z kart bezkonfliktowy przydział przerwan (IRQ),
zakresów portów wejscia i wyjscia (IO ports) oraz kanałów bezposredniego dostepu do
pamieci (DMA). Plik wygenerowany przez isapnpdump jest bogato komentowany, stad
stosunkowo łatwo wybrac własciwa konfiguracje. Szczegółowy opis składni pliku konfiguracyjnego
isapnp znajduje sie na odpowiedniej stronie podrecznika systemowego
(man isapnp.conf).
13. Przemontowanie systemu plików / do trybu do odczytu i zapisu, oraz aktualizacja pliku
/etc/mtab zawierajacego liste aktualnie zamontowanych systemów plików.
14. Sprawdzenie, jezeli to konieczne, ile miejsca zajmuja pliki poszczególnych uzytkowników.
15. Wpisanie nazwy hosta do pliku /etc/HOSTNAME.
16. Statyczne załadowanie modułów jadra obsługujacych dzwiek, tj. interfejsy audio, midi.
W celu znalezienia nazw modułów obsługujacych dane interfejsy przeszukiwany jest
plik /etc/modules. Poszukiwane sa tzw. aliasy dla nazw sound-slot-0 (audio pierwszej
karty dzwiekowej) oraz midi. W ten sposób zidentyfikowane moduły sa ładowane
przy uzyciu modprobe.
17. Odtworzenie ustawien mixera realizowane jest tylko gdy spełnione sa wszystkie trzy
warunki: interfejs audio jest aktywny, istnieje plik /etc/.aumixrc oraz komenda która
z niego korzysta, tj. aumix-minimal.
18. Deaktywacja automatycznego ładowania modułów gdy uzytkownik ustawił podczas
startu systemu parametr nomodules.
19. Wykonanie pliku /etc/rc.d/rc.modules (jezeli istnieje!). W pliku tym powinny znajdowac
sie komendy ładujace statycznie moduły zdefiniowane przez administratora systemu.
Statyczne ładowanie modułów ma sens jedynie gdy chcemy uniknac narzutu
zwiazanego z dynamicznym ładowaniem.
20. Aktywacja urzadzen RAID, tj. kilku urzadzen blokowych połaczonych w jeden logiczny
system plików (prawdopodobnie z właczonym mirrorowaniem). Informacje nt. róznych
trybów pracy urzadzen RAID mozna znalezc pod adresem http://ostenfeld.dk/˜jakob/Software-
RAID.HOWTO Interfejs do urzadzen RAID zapewnia sterownik md.
21. Sprawdzenie lokalnych systemów plików wymienionych w /etc/fstab.
22. Zamontowanie pozostałych lokalnych systemów plików (na podstawie zawartosci /etc/fstab)
oraz sprawdzenie obszaru dyskowego zajmowanego przez poszczególnych uzytkowników
(gdy przy sprawdzaniu systemu plików wystapily błedy). Istnienie pliku /fastboot
dezaktywuje sprawdzanie poprawnosci struktury systemu plików.
23. Jezeli istnieje plik /.unconfigured przeprowadzana jest konfiguracja systemu obejmujaca
ustawienie: hasła uzytkownika root (passwd), parametrów sieci (netconfig),
strefy czasowej (timeconfig), metody uwierzytelniania uzytkowników (authconfig),
usług uruchamianych podczas startu (ntsysv),
24. Właczenie mechanizmu limitowania przydziału przestrzeni dyskowej (quota).
25. Usuniecie plików przechowujacych informacje miedzy kolejnymi restartami systemu
np. /fastboot.
26. Inicjalizacja plików /var/utmp i /var/wtmp. Pliki te zawieraja informacje kto i kiedy
zalogował sie w systemie (komendy who i last).
27. Inicjalizacja katalogów /var/run oraz /var/lock. Usługi uruchamianie przez skrypty
z init.d zapisuja identyfikatory procesów (PID) w katalogu /var/run. Dzieki temu
zatrzymanie usługi jest łatwe, bowiem odpowiedni PID niezbedny dla komendy kill
jest juz zapisany w pliku. Jezeli jakis proces korzysta z zasobu do którego dostep
moga miec inne procesy, a chcialby miec ten zasób na wyłacznosc tworzy w katalogu
/var/lock plik zamykajacy (ang. lock file). Gdy odpowiedni plik istnieje zasób jest
niedostepny dla innych procesów.
28. Oczyszczenie katalogu /tmp z plików pozostawianych przez XSerwer i PostgreSQL.
29. Inicjalizacja portów szeregowych. Inicjalizacja portów szeregowych powinna znajdowac
sie w pliku /etc/rc.d/rc.serial. Specjalna inicjalizacja portów szeregowych ma
sens jedynie gdy w komputerze mamy zainstalowana karte wieloportowa, ew. wiecej
niz jeden modem wewnetrzny.
30. Instalacja obsługi streamera, jezeli jest zainstalowany w systemie.
31. Utworzenie pliku /boot/kernel.h informujacego czy jadro wspiera przetwarzanie równoległe
(SMP=1) czy tez obsługuje tylko jeden procesor (UP=1).
32. Utworzenie odpowiednich linków symbolicznych w katalogu /boot wiazacych pliki
System.map- z plikiem System.map.
33. Zapis logu bootowania jadra do pliku /var/log/dmesg.
34. Uruchomienie programu getkey w celu sprawdzenia czy wybrano interaktywny tryb
startu systemu.
4.3.2 Inicjalizacja zalezna od poziomu uruchomienia
Po zakonczeniu wykonywania rc.sysinit proces init uruchamia skrypt /etc/rc.d/rc
przekazujac mu jako parametr wartosc poziomu uruchomienia. Na podstawie numeru poziomu
uruchomienia skrypt rc ustala połozenie katalogu zawierajacego dowiazania symboliczne
do plików kontrolujacych działanie poszczególnych usług (tj. plików z katalogu init.d).
Jako pierwsze wykonywane sa dowiazania o nazwach K. Pole numer
jest dwucyfrowe i zapewnia kolejnosc wykonywania komend. Dla plików zatrzymujacych
najpierw wykonywane sa pliki o numerach wiekszych. Przed zatrzymaniem usługi sprawdzane
jest czy usługa działa (tj. czy istnieje odpowiedni plik w katalogu /var/lock/subsys.
Zadanie zatrzymania usługi jest ignorowane jezeli odpowiedni plik nie istnieje.
Nastepnie uruchamiane sa skrypty o nazwach S. Tym razem
jako pierwsze wykonywane sa pliki z mniejszymi numerami. Przed uruchomieniem usługi
sprawdzane jest czy istnieje plik o odpowiedniej nazwie w katalogu /var/lock/subsys).
Zadanie usługi usługi jest ignorowane jezeli odpowiedni plik istnieje. Ponadto, w trybie interaktywnym,
przed uruchomieniem kazdej usługi uzytkownik proszony jest o potwierdzenie
jej uruchomienia. Jako ostatni (ma bowiem numer 99) uruchamiana jest usługa local. Jest to
link symboliczny do pliku /etc/rc.d/rc.local co oznacza, ze zawartosc tego pliku bedzie
wykonana jako ostatni element inicjalizacji systemu. W pliku tym znajduja sie komendy
aktualizujace pliki /etc/issue i /etc/issue.net. Zawartosc tych plików jest wyswietlana
przed zaproszeniem do zalogowania (słowo login). Plik /etc/issue wyswietlany jest na
konsoli, natomiast /etc/issue.net gdy staramy sie uzyskac dostep do systemu poprzez siec.
Usługi sieciowe
5.1 Interfejsy sieciowe
Podstawowe polecenia słuzace do konfiguracji i sprawdzania poprawnosci działania interfejsów
sieciowych w systemie to
ifconfig – słuzace do aktywizacji, wyłaczania oraz sprawdzania stanu interfejsów sieciowych,
arp – zwiazane z kartami sieciowymi Ethernet i wyswietlajace tablice translacji adresów IP
na adresy sprzetowe.
netstat – słuzace do wyswietlania listy aktywnych połaczen,
route – pozwalajace na sprawdzenie i ustawienie tablicy routowania.
Z urzadzeniem sieciowym jest zwiazana nazwa typu interfejsu zapewnianego przez urzadzenie
oraz numer kolejny interfejsu danego typu. Na przykład nazwa interfejsu do sieci
Ethernet jest eth, i kolejne karty sieciowe identyfikowane przez system beda miały nazwy
eth0, eth1, itd. Nazwy interfejsów sieciowych sa wbudowane w jadro i nie mozna ich znalezc
w katalogu /dev/. Najwazniejsze interfejsy to
lo – interfejs urzadzenia zapetlajacego (ang. loopback device). Jest to interfejs do urzadzenia
logiczne (tzn. nie jest wymagany zadna dodatkowa karta w systemie) którego działanie
polega na tym, ze wszystkie dane wysłane na interfejs sa „zawracane” i moga byc z tego
interfejsu odczytane.
eth – interfejsy kart do sieci Ethernet, przy czym oznacza numer kolejny karty
sieciowej.
ppp – połaczenia PPP.
Pierwszym krokiem konfiguracji interfejsu jest załadowanie modułu obsługujacego dany
interfejs. Dla kart sieciowych Ethernet zazwyczaj bedziemy mieli skonfigurowane ładowanie
sterownika w razie koniecznosci. Tak wiec w pliku /etc/conf.modules przykładowy wpis
bedzie miał postac
alias eth0 ne
options ne irq=5 io=0x300
alias eth1 ne2k-pci
Obsługa kart na magistrali ISA wymaga podania przerwania i portu na którym pracuje
karta, natomiast karty PCI konfiguruja sie same. Moduły obsługujace rózne typy kart
sieciowych znajduja sie w katalogu /lib/modules/
/etc/rc.d/init.d/network
W dalszej czesci tego punktu szczegółowo omówimy jego działanie.
Konfiguracja podstawowych ustawien sieciowych dotyczacych całego systemu znajduje sie
w pliku /etc/sysconfig/network. W szczególnosci powinno sie tam znajdowac ustawienie
zmiennej
NETWORKING=yes
decydujace czy interfejsy sieciowe w systemie beda konfigurowane. Ponadto w pliku
znajduja sie definicje nazwy hosta, adresu standardowo uzywanej bramy oraz nazwa interfejsu
który moze sie z ta brama komunikowac. Za konfiguracje poszczególnych interfejsów
sieciowych odpowiedzialne sa skrytpy z katalogu /etc/sysconfig/network-scripts.
Jezeli w pliku znajduja sie wyłacznie wartosci parametrów to nazwa rozpoczyna sie od
przedrostka ifcfg. Natomiast jezeli skrypty zawieraja dedykowane komendy do „podniesienia”
lub „opuszczenia” interfejsu to ich nazwy zaczynaja sie od przedrostków ifup oraz
ifdown, odpowiednio. Skrypty konfigurujace poszczególne usługi tworzone sa przez programy
konfigurujace siec, tj. netconfig, linuxconf, netcfg. Skrypt /etc/rc.d/init.d/network
sprawdza zainstalowane interfejsy sieciowe i komenda ifup uaktywnia dany interfejs. Skrypt
/sbin/ifup jest dosc złozony i nie bedziemy go szczegółowo omawiac. Warto jednak zapamietac
fakt, ze napis
Delaying initialization.
wyswietlony podczas aktywizacji sieci oznacza niepowodzenie konfiguracji danego interfejsu.
Jezeli system obsługuje wiecej niz jedna siec i chemy zbudowac odpowiednia tablice
routingu adresy sieci oraz bram do nich prowadzacych powinnismy podac w pliku
/etc/sysconfig/static-routes. Oczywiscie najlepiej uzyc do tego celu programu konfigurujacego
linuxconf.
Jezeli ktos ma ochote na „reczna” konfiguracje interfejsów sieciowych to nieoceniona tu
bedzie lektura ksiazki Linux Network Administrator Guide rozprowadzanej w formie elektronicznej
w ramach projektu Linux Documentation Project. Ksiazka powinna byc wiec dostepna
na jakimkolwiek kompletnym serwerze z Linuksem, np. ftp://ftp.task.gda.pl/pub/linux/LDP/.
5.2 Konfiguracja usług sieciowych
Aplikacje w internecie pracuja wg modelu klient-serwer. Warstwe transportowa miedzy
dwoma aplikacjami realizuje protokół TCP lub UDP. Protokół TCP obejmuje mechanizmy
odtwarzania kolejnosci odbieranych ramek1 oraz mechanizmy retransmisji zgubionych lub
błednych danych. W protokole UDP sama aplikacja musi zapewnic mechanizmy kontroli
błedów.
5.2.1 Usługi dostepne w systemie
Wykaz typowych protokołów internetowych znajduje sie w pliku /etc/protocols. Znajdziemy
tam m.in.:
# Internet (IP) protocols
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
tcp 6 TCP # transmission control protocol
udp 17 UDP # user datagram protocol
W protokołach warstwy transportowej kazda aplikacja komunikujaca sie poprzez siec jest
identyfikowana przez numer IP komputera oraz numer portu na którym nasłuchuje i/lub
nadaje. Przestrzen portów dla protokołów TCP i UDP jest rozdzielna. Serwery (demony)
nasłuchuja na okreslonych portach czy nie ma jakiegos zadania obsługi, natomiast klienci
łacza sie z serwerami informujac je o swoich potrzebach. W zasadzie istnieje dowolnosc
przypisania usług do portów. Jednak w celu standaryzacji i zmniejszenia zamieszania uzywa
sie tzw. dobrze znany portów (ang. well-known ports). Wykaz zawierajacy przypisanie usług
do portów znajduje sie w pliku /etc/services
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp mail
www 80/tcp http # WorldWideWeb HTTP
1kolejnosc po stronie odbiorczej moze byc inna niz po stronie nadawczej np. na skutek wielodrogowosci
www 80/udp # HyperText Transfer Protocol
pop-2 109/tcp postoffice # POP version 2
pop-2 109/udp
pop-3 110/tcp # POP version 3
pop-3 110/udp
imap2 143/tcp # Interim Mail Access Proto v2
imap2 143/udp
ipx 213/tcp # IPX
ipx 213/udp
imap3 220/tcp # Interactive Mail Access
imap3 220/udp # Protocol v3
Typowy komputer UNIX-owy jest serwerem wielu usług. W pierwotnej konfiguracji do
kazdej usługi uruchomiony był demon, którego jedynym zadaniem był nasłuch na okreslonym
porcie. Aby oddzielic operacje nasłuchu od własciwej obsługi oraz zmniejszyc ilosc uruchomionych
demonów (a tym samym obciazenie systemu i zajetosc RAM) wprowadzono demona
inetd (Internet Daemon). Jedynym zadaniem tego demona jest nasłuch na okreslonym zestawie
portów i w przypadku wykrycia próby połaczenia na pewien port – uruchomienie
odwiedniego programu usługi. Plik konfiguracyjny tego demona to /etc/inetd.conf, a jego
składnia wyglada nastepujaco
# /etc/inetd.conf: see inetd(8) for further informations.
#
#
#:STANDARD: These are standard services.
ftp stream tcp nowait root /usr/sbin/in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd
Zazwyczaj demon obsługujacy dana usługe moze pracowac samodzielnie lub byc uruchomiony
przez inetd. Tryb działania musi byc dla obu przypadków nieco inny bowiem
przy uruchumieniu z inetd demon nie musi wykonywac nasłuchu. Aby poinformowac serwer
w jakim trybie ma działac czesto wykorzystuje sie mechanizm dowiazan symbolicznych
(komenda ln -s), powodujac ze program serwera bedzie istniał w systemie pod dwoma nazwami.
Przyjeto konwencje, ze demony przeznaczone do uruchomienia z inetd maja nazwe
ropoczynajaca sie od in.* (np. in.telnetd, in.smtp). Dzieki takiej konwencji nazewnictwa
demon moze podjac decyzje w jakim trybie nalezy pracowac sprawdzajac wartosc argv[0].
Czesto chcemy ograniczyc dostepnosc usług do okreslonej klasy klientów (np. komputerów
z sieci lokalnej). W przedstawionej wyzej konfiguracji inetd kazda usługa musiałaby posiadac
mechanizm kontroli kto ma przyzwolenie do korzystania z niej. Konfiguracja systemu
byłaby bardzo uciazliwa ze wzgledu na olbrzymia liczbe plików do edycji. W celu rozwiazania
powyzszego problemu wprowadzono TCP Wrappers, czyli pakiet do autoryzacji klientów
sieciowych. Gdy przychodzi zadanie obsługi, zamiast oryginalnego serwera uruchamiany jest
program tcpd. Gdy klient przejdzie autoryzacje z wynikiem pozytywnym uruchamiany jest
demon danej usługi sieciowej. Program do uruchomienia po pozytywnej autoryzacji podaje
sie tcpd jako argument z linii komend. Plik /etc/inetd.conf po wprowadzeniu ww zmian
wyglada nastepujaco
# /etc/inetd.conf: see inetd(8) for further informations.
#
#
#:STANDARD: These are standard services.
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
Autoryzacja klienta odbywa sie na podstawie dwóch plików konfiguracyjnych /etc/hosts.allow
i /etc/hosts.deny. Kazdy plik zawiera linie w formacie
lista_demonów : lista_klientów [ : komenda_shella ]
gdzie nawiasy [ ] oznaczaja opcjonalny składnik. Pola lista demonów i lista klientów
moga byc zastapione maskami. Dokładny opis składni omawianych plików opisany jest w
stronie manuala hosts access(5). Algorytm autoryzacji przebiega jak nastepuje
1. Najpierw sprawdzany jest plik hosts.allow. Jezeli klient zostanie dopasowany do masek
to dostep do usługi zostaje mu przydzielony.
2. Nastepnie sprawdzany jest hosts.deny. Jezeli klient zostanie dopasowany to zostaje
odrzucony.
3. Jezeli klient nie został znaleziony w zadnym z plików to dostep zostaje mu przydzielony.
Najczesciej spotykane sa dwa schematy konfiguracji
Defensywny W pliku hosts.deny znajduje sie wpis ALL:ALL, a w pliku hosts.allow sa
wpisane komputery dopuszczone do obsługi.
Otwarty Plik hosts.allow jest pusty a w pliku hosts.deny znajduja sie wpisy komputerów
nie dopuszczonych do usług.
5.3 Poczta elektroniczna
Do obsługi poczty elektronicznej wykorzystywane sa dwa zasadnicze typy programów:
MTA (Mail Transfer Agent) czyli serwer pocztowy, oraz MUA (Mail User Agent) czyli klient.
Z poczta elekroniczna zwiazane sa trzy protokoły
SMTP Simple Mail Transfer Protocol uzywany jest do komunikacji miedzy dwoma MTA
oraz miedzy MUA i MTA. Protokołowi SMTP przydzielony jest standardowo port 25.
POP Post Office Protocol przeznaczony do komunikacji miedzy MUA i MTA. Powszechnie
uzywana wersja tego protokołu to POP3. Przydzielono jej port 110.
IMAP Interactive Mail Access Protocol pełni te same funkcje co POP. Standardowo serwer
IMAP nasłuchuje na porcie 220.
Oba protokoły POP i IMAP słuza jedynie do sciagana poczty ze skrzynek odbiorczych,
zarzadzania folderami itp., jezeli znajduja sie one na innym komputerze niz uruchomiony
program pocztowy (MUA).
Aby wysłac poczte klient ma dwie mozliwosci: skorzystac z usług lokalnego MTA i zlecic
mu zadanie wysłania (uzycie komendy sendmail) lub z usług lokalnego lub zdalnego serwera
SMTP. Aby klienci mogli korzystac z usług zdalnego serwera SMTP do rozsyłania poczty,
to musi on byc skonfigurowany jako tzw. relay.
Linux moze pracowac jako serwer SMTP, POP i IMAP. Najbardziej popularne serwery
SMTP to sendmail, smail oraz qmail. Kazdy z tych serwerów ma swoje pliki konfiguracyjne
o specyficznej składni. Ogólnie mówiac poprawna konfiguracja poczty jest zadaniem złozonym.
Na szczescie pakiety dystrybucyjne z MTA zawieraja konfiguracje która działa dobrze
w olbrzymiej wiekszosci przypadków. Plik konfiguracyjny sendmail to /etc/sendmail.cf.
Pliki konfiguracyjne smail znajduja sie w katalogu /etc/smail/.
Programów pełniacych role MUA jest mnóstwo. Pracuja one w trybie tekstowym (mail,
mailx, pine) jak równiez w srodowisku okienkowym (xfmail, kmail).
Pierwotnie poczta elektroniczna słuzyła jedynie do przesyłania wiadomosci tekstowych.
W toku postepujacej informatyzacji społeczenstwa pojawiła sie potrzeba uzupełnienia tekstu
o informacje graficzna i dzwiekowa – powstał standard MIME (Multimedia Internet Mail
Extensions). Dzieki niemu nadawca i odbiorca moga miedzy soba wymieniac dane binarne
zawierajace grafike i dzwiek nawet gdy posługuja sie róznymi programami pocztowymi. Istota
standardu polega na poprzedzeniu przesyłanych danych nagłówkiem informujacym o ich
rodzaju.
W Linuxie do konfiguracji MIME słuza dwa pliki: /etc/mime.types oraz /etc/mailcap.
Uzytkownik moze rozszerzyc zawartosc tych plików tworzac w swoim katalogu domowym pliki
.mime.types i/lub .mailcap. Plik mime.types zawiera zestawienie typówMIME które moga
byc przesyłane oraz odpowiadajacych im rozszerzen nazw plików. Oto wyciag z tego pliku
application/pdf pdf
application/pgp-signature pgp
application/postscript ps ai eps
application/x-compress z Z
application/x-gzip gz
application/zip zip
audio/midi mid midi
audio/x-wav wav
image/gif gif
image/jpeg jpeg jpg jpe
image/png png
image/tiff tiff tif
text/html html htm
text/plain txt
Plik mime.types jest uzywany przez program nadawcy do okreslenia odpowiedniego nagłówka
na podstawie nazwy pliku dołaczanego do wiadomosci. Odbiorca korzysta z pliku
mailcap który jest zestawieniem typu MIME z aplikacja go obsługujaca. Wiecej nt. składni
tego pliku mozna sie dowiedziec studiujac strone manuala mailcap(5). Warto zwócic uwage,
ze z pliku mailcap nie korzystaja wszyscy klienci (np. Netscape) i utrzymuja oni własne
tablice o znaczeniu podobnym do mailcap.
5.4 Udostepnianie plików – FTP
Pierwotna dla UNIX-a metoda udostepniania plików jest FTP –File Transfer Protocol.
Uruchamianie demona ftpd odbywa sie zazwyczaj przez inetd. Tam tez mozna podac szereg
opcji kontrolujacych jego działanie. Wiecej informacji na ich temat mozna uzyskac ze strony
manuala ftpd(8). Pliki kontrolujace działanie demona FTP to
/etc/nologin Jezeli ten plik istnieje demon wyswietla go i przerywa połaczenie.
/etc/ftpwelcome Ten plik jest wyswietlany przed zapytaniem o nazwe uzytkownika.
/etc/motd Ten plik jest wyswietlany po udanym zalogowaniu.
.message Jezeli ten plik jest w katalogu do którego uzytkownik wykonał cd to jego zawartosc
zostanie wyswietlona.
/etc/ftpchroot Ten plik zawiera liste uzytkowników dla których nalezy po zalogowaniu
wykonac komende chroot, tzn. uniemozliwic przejscie do katalogów powyzej katalogu
domowego uzytkownika. Aby serwis działał poprawnie, w katalogu domowym uzytkownika
powinny byc podkatalogi bin, etc, lib itd. z zawartoscia identyczna jak dla
uzytkownika ftp.
/etc/ftpusers Ten plik zawiera liste uzytkowników którzy nie moga korzystac z serwisu
FTP.
5.5 Serwis WWW
Mimo iz istnieje wiele serwerów HTTP, to tak naprawde liczy sie obecnie tylko apache.
Zazwyczaj ze wzgledu na wydajnosc serwera WWW, demona apache uruchamia sie w trybie
standalone, tzn. nie przez inetd. Standardowo apache nasłuchuje na porcie 80. Pliki
konfiguracyjne znajduja sie w katalogu /etc/apache/. Najwazniejsze z nich to httpd.conf,
srm.conf, access.conf. Plik httpd.conf konfiguruje działanie serwera. Wiekszosc dostepnych
opcji jest w nim wymieniona, a opcje nie uzywane – wykomentowane. Na szczególna
uwage zasługuje mozliwosc zadeklarowania przetwarzania fragmentów plików HTML przez
tzw. moduły (cos w rodzaju plug-inów, tylko ze po stronie serwera). Dzieki modułom mozemy
w stronach HTML umieszczac komendy do wykonania przez serwer (np. dostep do bazy
danych) i uzyskiwac dynamicznie generowane strony WWW. Istnieja moduły implementujace
całe jezyki programowania ( eperl, php3) dzieki którym mozna organizowac w elegancki
sposób interfejs WWW do wielu usług. Plik srm.conf definiuje jak przetwarzane sa rózne
zadania obsługi, m.in. główny katalog serwera, przypisanie ikon do róznych typów plików. Z
kolei access.conf, jak sama nazwa wskazuje, kontroluje kto i do jakich czesci wystawionej
informacji ma dostep.
5.6 Sieciowy system plików – NFS
NFS (Network File System) to cos posredniego miedzy lokalnym systemem plików a
usługa FTP. Instalacja i konfiguracja klienta i serwera NFS jest bardzo dobrze opisana w
NFS-HOWTO. Klientem NFS jest obecnie po prostu jadro systemu z wkompilowana lub załadowana
jako moduł obsługa NFS. Aby zamontowac pewien katalog (/usr/local/dosapp) wystawiony
przez serwer NFS (minibo.iele.polsl.gliwice.pl) w katalogu lokalnym (/mnt/dosapp)
musimy wydac komende
mount -t nfs minibo.iele.polsl.gliwice.pl:/usr/local/dosapp /mnt/dosapp
Nastepujacy wpis w /etc/fstab
minibo.iele.polsl.gliwice.pl:/usr/local/dosapp /mnt/dosapp nfs hard,intr 0 0
pozwoli zamontowac to samo co poprzednio komenda
mount /mnt/dosapp
Konfiguracja serwera to nieco bardziej złozone zadanie. Po pierwsze NFS oparty jest na
standardzie RPC (Remote Procedure Call) przez co wymagane jest uruchomienie demona
mapowania portów portmap ze standardu UNIX-owego na standard RPC. Programy pracujace
zgodnie z RPC zgłaszaja zadania obsługi do portmap. Podobnie jak przy demonach
uruchamianych z inetd przyjeto konwencje nazewnicza polegajaca na poprzedzeniu nazw
programów korzystajacych z RPC nagłówkiem rpc.*. Serwis NFS jest zapewniany przez
dwa demony: rpc.mountd i rpc.nfsd. Pierwszy odpowiedzialny jest za obsługe montowania
i odmontowania, drugi za operacje na plikach. Wykaz zamontowanych systemów plików znajduje
sie /etc/rmtab. Oba demony okreslaja na podstawie pliku /etc/exports czy klient
ma autoryzacje dostepu do zadanego katalogu. Ogólnie w pliku tym znajduje sie tabela katalogów
które moga byc zamontowane poprzez siec. Z kazdym eksportowanym2 katalogiem
2stad nazwa pliku
zwiazana jest lista komputerów oraz praw z jakimi dane katalogi moga byc montowane. W
nazwach komputerów mozna uzywac tzw. wildcards aby jednym wpisem objac szersza liste
hostów. Kontynujac poprzedni przykład na serwerze minibo w /etc/exports powinien
zanjdowac sie wpis
/usr/local/dosapp *.iele.polsl.gliwice.pl(ro)
aby wszystkie komputery z domeny iele.polsl.gliwice.pl miały dostep read-only do
plików z exportowanego katalogu. Wiecej informacji nt. składni omawianego pliku mozna
uzyskac studiujac strone manuala exports(5)
Linux w sieciach LAN
Na rynku sieci lokalalnych licza sie obecnie dwaj producenci: Microsoft i Novell. Systemy
operacyjne MS Windows (WfW, 95, 98, NT) uzywaja protokołu SMB (ang. Session Message
Block) do współdzielenia plików i drukarek. W sieciach SMB dowolna stacja przyłaczona do
sieci moze pełnic zarówno role serwera jak i klienta. Linux równiez moze byc skonfigurowany
jako klient i/lub serwer SMB.
Sieciowy system operacyjny Novell NetWare wykorzystuje protokoły IPX/SPX1. W sieciach
Novell istnieje wyrazny rozdział na serwer pracujacy pod kontrola systemu NetWare
i stacje kliencka, która pracuje pod kontrola innego systemu operacyjnego (DOS, Windows,
OS2) i jest wyposazona w oprogramowanie pozwalajace na korzystanie z zasobów serwera.
Podobnie jak w przypadku sieci SMB, Linux moze pełnic role klienta sieci Novell i/lub serwera
NetWare. Co prawda najwyzsza wersja NetWare emulowana pod Linuksem to 3.11, ale
nie zmienia to faktu, ze wykorzystanie Linuksa jako serwer NetWare to najlepszy sposób na
zaoszczedzenie pieniedzy. Emulator serwera NetWare jest dostepny publicznie bez zadnych
opłat licencyjnych.
6.1 Współpraca z sieciami SMB
Protokół SMB jest równiez nazywany NetBIOS lub LAN Manager. SMB moze pracowac
wykorzystujac NetBEUI, IPX/SPX lub TCP/IP. Serwery i klienci Linuksowi korzystaja
z TCP/IP. Jezeli z serwera SMB na Linuxie korzystaja klienci MS to najlepiej nie instalowac
na nich (lub wyinstalowac) protokoły IPX/SPX2 oraz NetBEUI. W SMB usługi identyfikowane
sa poprzez nazwe oraz typ usługi. Serwer zgłasza udostepniane usługi do WINS3
(ang. Windows Internet Name Service).
Do poprawnego działania sieci SMB potrzebne sa 3 składniki: serwer nazw, serwer usług
i klienci. Linux moze wystepowac we wszystkich wymienionych rolach.
1do wersji 4 włacznie. Pozniejsze jako protokół standardowy wykorzystuja TCP/IP.
2Chyba, ze mamy równiez siec Novell
3Odpowiednik DNS z TCP/IP
6.1.1 Serwer SMB – samba
W pakiecie samba znajduja sie demony obsługujace siec SMB. Za obsługe zapytan do
WINS odpowiada demon nmbd. Z kolei zadania udostepniania zasobów obsługiwane sa przez
smbd.
Oba demony moga byc uruchomione jako samodzielne demony lub poprzez demon inetd.
W tym drugim przypadku wpisy inetd.conf wygladaja nastepujaco
netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd
netbios-ns dgram udp wait root /usr/sbin/tcpd /usr/sbin/nmbd -a
Plik konfiguracyjny serwera to /etc/smb.conf. Prawie zawsze po instalacji i wstepnej
konfiguracji musimy ten plik poddac edycji aby dopasowac system do naszych potrzeb. Instalowana
wersja smb.conf obejmuje wiele opcji które sa dobrze opisane. Szczegółowy opis
składni mozna znalezc na stronie manuala smb.conf(5). Plik konfiguracyjny podzielony jest
na sekcje (nazwa sekcji to tekst w nawiasach kwadratowych). Istnieja trzy sekcje specjalne
globals definiujaca ogólne własnosci serwera,
printers okreslajaca ogólne parametry udostepniania drukarek,
homes podajaca sposób udostepnienia katalogów domowych uzytkowników systemu.
oraz sekcje o dowolnych nazwach ustalanych przez administratora. Nazwa sekcji jest w tym
przypadku nazwa usługi. W kazdej sekcji ustala sie parametry/własciwosci danej usługi.
Kazdy dostepny parametr ma swoja nazwe i typ. Typy wartosci to ciag znaków (bez cudzysłowów)
oraz typ logiczny ustawiany jako 0/1 lub yes/no lub true/false. Istnieja dwa typy
usług: plikowe i drukarkowe. Standardowo sekcja jest typu plikowego, jednak ustawienie
printable=yes zmienia jej typ na usługe/sekcje drukarkowa. Ustawienie tej opcji zezwala
na zapis plików do druku w katalogu usługi.
Sekcja global
Typowe ustawienia w sekcji global sa nastepujace
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root
; "security = user" is always a good idea. This will require a Unix account
; in this server for every user accessing the server.
security = user
; Change this for the workgroup your Samba server will part of
workgroup = WORKGROUP
server string = %h server (Samba %v)
; This socket options really speed up Samba under Linux, according to my
; own tests. SO_SNDBUF and SO_RCVBUF added by suggestion from
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
; Passwords are encrypted by default. This way the latest Windows 95 and NT
; clients can connect to the Samba server with no problems.
encrypt passwords = yes
; It’s always a good idea to use a WINS server. If you want this server
; to be the WINS server for your network change the following parameter
; to "yes". Otherwise leave it as "no" and specify your WINS server
; below (note: only one Samba server can be the WINS server).
; Read BROWSING.txt for more details.
wins support = no
; If this server is not the WINS server then specify who is it and uncomment
; next line.
; wins server = 172.16.0.10
; Please read BROWSING.txt and set the next four parameters according
; to your network setup. There is no valid default so they are commented
; out.
; os level = 0 ; Wfg - 0 Win95 - 1; NT - 32
; domain master = no
; local master = no
; preferred master = no
; This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
; Name mangling options
preserve case = yes
short preserve case = yes
Sekcja printers
W tej sekcji udostepniamy uzytkownikom drukraki dostepne w systemie. Jezeli drukraka
nie jest postscriptowa to dobrze jest ja udostepnic na dwa sposoby
raw printer tzn. komenda lpr drukuje kopiuje plik na drukarke bez zadnego przetwarzania,
postscript – plik do drukowania (postscriptowy) przepuszczany jest przez ghostscript.
W pierwszym przypadku na stacji klienta musi byc zainstalowany sterownik do drukarki
przyłaczonej do serwera, w drugim – sterownik do w zasadzie dowolnej drukarki postscriptowej
ewentualnie sterownik do „czystego” postscriptu. Druga konfiguracja jest bardziej uniwersalna
– wymiana drukarki na serwerze nie wymaga rekonfiguracji klientów. Niestety jest
tez bardziej wymagajaca gdy idzie o zasoby serwera, bowiem intensywna praca ghostscripta
moze zajac sporo czasu procesora.
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
Sekcja homes
Sekcja homes pozwala na udostepnienie katalogów domowych uzytkowników. Jezeli klient
zada udostepnienia usługi i nie jest ona jawnie zadeklarowana (w pliku smb.conf) i jest
zadeklarowana sekcja homes to serwer przyjmuje, ze zadana usługa jest nazwa katalogu
domowego uzytkownika.
[homes]
comment = Home Directories
browseable = no
; By default, the home directories are exported read only. Change next
; parameter to "no" if you want to be able to write to them.
read only = yes
; File creation mask is set to 0700 for security reasons. If you want to
; create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
; Directory creation mask is set to 0700 for security reasons. If you want to
; create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
Sekcja CDROM
Przy uzyciu samby mozna udostepniac równiez dowolne katalogi. Typowym przykładem
jest publiczne udostepnienie zawartosci napedu CD. Dzieki opcjom preexec i postexec
montowanie nastepuje automatycznie przy próbie odczytu. Gdy serwer nie korzysta z napedu
katalog cdrom zostaje odmontowany.
[cdrom]
comment = Samba server’s CD-ROM
writable = no
locking = no
path = /cdrom
public = yes
;
; The next two parameters show how to auto-mount a CD-ROM when the
; cdrom share is accesed. For this to work /etc/fstab must contain
; an entry like this:
;
; /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0
;
; The CD-ROM gets unmounted automatically after the connection to the
;
; If you don’t want to use auto-mounting/unmounting make sure the CD
; is mounted on /cdrom
;
preexec = /bin/mount /cdrom
postexec = /bin/umount /cdrom
Minitorowanie pracy serwera
Informacje o stanie serwera uzyskamy wydajac komende smbstatus. Wiele o jego pracy
mozna dowiedziec sie z logów w /var/samba/ oraz /var/log/smb, /var/log/nmb.
6.1.2 Klientci SMB
Klient uzyskuje dostep do usługi podajac nazwe serwera i usługi na serwerze w nastepujacym
formacie \\\ (np. \\MINIBO\CDROM) Nazwa serwera
(MINIBO) jest poprzedzona dwoma znakami \. Nazwa usługi oddzielona jest jednym znakiem
\.
Klienci samby
W pakiecie samba-client znajduja sie klienci SMB usługi plikowej (smbclient) oraz
usługi drukrakowej smbprint4) Klient usługi plikowej smbclient to program a’la ftp do
transmisji plików miedzy serwerem a klientem. Zadaniem smbprint jest umozliwienie korzystania
w Linuxie z drukarek udostepnionych przez komputery MS-Win.
Korzystajac z obu programów nalezy im oczywiscie jako parametr z linii komend podac
nazwe usługi. I tu nalezy pamietac, ze znak \ jest znakiem zastrzezonym w shellu i pracuje
jako tzw. escape char. Tak wiec aby przekazac jeden \ musimy uzyc sekwencji \\. Ostatecznie,
aby zazadac dostepu do \\MINIBO\CDROM musimy wydac komende
smbclient \\\\MINIBO\\CDROM
Inna metoda korzystania z usług plikowych serwerów SMB jest wykorzystanie komend
smbmount i smbumount. Dzieki nim pliki udostepniane przez serwery SMB moga byc montowane
do dowolnych katalogów i uzywane dalej jak lokalny system plików.
6.2 Integracja z siecia Novell
Oczywiscie aby Linux współdziałał z NetWare jadro systemu musi wspierac protokół
IPX/SPX i musi on byc poprawnie skonfigurowany komenda ipx configure. Komenda ta
(i kilka innych) znajduje sie w pakiecie ipxutils dystrybucji RedHat. Współprace z sieciami
IPX mozna skonfigurowac np. przy uzyciu linuxconf. Jezeli wysztko jest poprawnie
skonfigurowane to w katalogu /proc/net/ znajduja sie pliki ipx interface, ipx route, ipx
zawierajace informacje o biezacym stanie sieci IPX.
6.2.1 Klient ncpfs
Pakiet ncpfs zapewnia komendy do korzystania z usług serwera NetWare. Zapewniony
mamy dostep miedzy innymi do plików (ncpmount i ncpumount) i drukarek (nprint) obsługiwanych
przez serwer. Liste dostepnych serwerów w sieci lokalnej mozemy ustalic komenda
slist a stan kolejek do drukowania – pserwer. Lista dostepnych komend jest długa. Informacje
o tym jakie komendy sa w pakiecie uzyskamy komenda rpm -ql ncpfs | less. Interesujace
nas komendy znajduja sie /usr/bin/. Wszystkie z nich maja swoja strone manuala.
Poniewaz dostep do wszystkich usług NetWare wymaga podania hasła to przy korzystaniu z
uzytków ncpfs musimy je dosc czesto wprowadzac. Aby ułatwic sobie zycie mozna w swoim
katalogu domowym utworzyc plik .nwclient zawierajacy m.in. nazwe serwera, nazwe uzytkownika
i hasło. Poniewaz hasło musi byc podane tekstem jawnym, to plik powinien byc
tylko do odczytu i zapisu przez własciciela (600)5. Do montowania systemu plików z serwera
NetWare moze byc przydatny nastepujacy skrypt
4Niestety nie jest on dostepny we wszystkich binarnych dystrubucjach samby.
5To i tak nie zabezpiecza nas przed root-em. Jezeli nie ufamy administratorowi systemu to nie mozemy
umieszczac hasła w tym pliku
\#!/bin/sh
# Montuje w podkatalogu o nazwie $1 katalogu domowego uzytkownika
# serwer NetWare o nazwie $1. Logowanie na serwerze NetWare
# jako $2. $2 przyjmowane jest domyslnie jako $USER
# Poprawna linia komend
if [ $# -lt 1 -o $# -gt 2 ] ; then
echo "Usage: ‘basename $0‘ [ ] "
exit
fi
# Poprawne argumenty wejsciowe
SERVER=$1
LOGNAME=$USER
if [ ! -d $HOME/$SERVER ] ; then
echo "Bład! Katalog $HOME/$SERVER nie istnieje."
echo "Utwórz katalog (np. komenda mkdir) i ponownie uruchom ‘basename $0‘"
sleep 10
exit
fi
if [ $# -eq 2 ] ; then
LOGNAME=$2
fi
# Montowanie
if ( cat /etc/mtab | grep $HOME/$SERVER &> /dev/null ) ; then
echo "juz zamontowane, sprawdz w katalogu $HOME/$SERVER!" ;
sleep 10
else
if ( ncpmount -S $SERVER -U $LOGNAME $HOME/$SERVER 2> /dev/null ) ; then
echo "zamontowane"
else
echo "Bład podczas logowania na serwerze $SERVER jako $LOGNAME"
sleep 10
fi
fi
Skrypt do odmontowania systemu plików z serwera NetWare wyglada nastepujaco
#!/bin/sh
SERVER=$1
if ( cat /etc/mtab | grep $HOME/boss &> /dev/null ) ; then
echo "Odmontowuje serwer $SERVER z katalogu $HOME/$SERVER!" ;
ncpumount $HOME/$SERVER
sleep 10
else
echo "Serwer $SERVER nie jest podmontowany"
sleep 10
fi
6.2.2 Serwer mars-nwe
Pakiet mars-nwe zapewnia, ze stacja na której go uruchomiono jest z funckjonalnego
punktu widzenia równowazna serwerowi Novell NetWare 3.11. Usługi zgodne z usługami
serwera NetWare zapewniaja 3 demony: nwserv, nwbind, ncpserv. Odpowiednie pliki konfiguracyjne
to
/etc/nwserv.conf
/etc/nwserv.stations
Przykładowe pliki konfiguracyjne zamieszczone w dystrybucji RedHat sa bogato komentowane
i zawieraja szczegółowy opis dostepnych opcji. Ponizej opisane zostana tylko najwazniejsze
z nich.
Plik nwserv.conf podzielony jest na sekcje definiujace poszczególne elementy serwera.
Sekcja pierwsza definiuje odwzorowanie katalogów linuksa na nazwy volumenów widzianych
przez stacje klienckie. Sekcja ta jest obowiazkowa i co najmniej volumen SYS powinien byc
zdefiniowany.
# Section 1: volumes (required)
# Linux-directory mars_nwe-volume map.exe DOS-Drive
# /var/mars-nwe/sys -------> SYS -------------> W:
# Syntax:
# 1 VOLUMENAME DIRECTORY OPTIONS
1 SYS /var/mars_nwe/sys rk
1 CDROM /mnt/cdrom kmr
1 HOME ~ k
Sekcja nr 3 definiuje adres sieci IPX która bedzie obsługiwał emulator. Jezeli w sieci
lokalnej pracuje inny serwer / emulator NetWare, to musza one miec rózne adresy sieci.
W przeciwnym razie siec NetWare bedzie zachowywac sie niestabilnie. Adresy sieciowe serwerów
mozna sprawdzic wydajac polecenie slist. Wpis auto oznacza, ze za adres