LINUX lépésrõl lépésre | |||||||||||
Föoldal |
Humor |
Aloe vera |
Károli Biblia |
The Sims 2 |
Képes oldal |
Vendégkönyv |
Társalgó |
LINUX lépésről lépésre
(Bővített
kiadás)
Tartalomjegyzék_______________________________________________ 2
Előszó_______________________________________________________ 9
Köszönet____________________________________________________ 11
Járjuk körül__________________________________________________ 12
A démonok
konfigurálása____________________________________ 12
A démonok
indítása________________________________________ 13
Port szám________________________________________________ 14
A
parancsértelmező_________________________________________
15
Process-ek,
job-ok________________________________________ 17
További
hasznos parancsok__________________________________ 20
Memória
kezelés_____________________________________________ 28
Lemezek, fájlrendszerek, fájlok__________________________________ 30
A
háttértárak elérhetősége___________________________________
34
Partícionálás______________________________________________ 35
A
fájlrendszer létrehozása____________________________________
39
A
fájlrendszerek csatlakoztatása a rendszerünkbe: mountolás_________ 40
A lemezek
ellenőrzése_______________________________________ 43
Fájlok
hozzáférése__________________________________________ 44
A fájlok
mentése a tar programmal______________________________ 47
Az ln
parancs______________________________________________ 49
A rendszer indítása_____________________________________________ 50
Az indulás_________________________________________________ 50
Futási
szintek______________________________________________ 50
Leállítás__________________________________________________ 58
Felhasználók bejelentkezése, karbantartása__
______________________
60
Bejelentkezés
helyi terminálról________________________________ 60
Bejelentkezés
hálózaton keresztül_____________________________ 61
A
hosts.allow és a hosts.deny fájlok____________________________
63
Ha már
bejelentkeztünk_____________________________________ 64
A felhasználói környezet____________________________________
66
Karbantartó programok____________________________________
76
Időzített parancsvégrehajtás, a crond____________________________ 79
A crontab
fájl beállítása______________________________________ 79
TCP/IP alapok______________________________________________
81
Interfészek
és IP címek______________________________________ 81
Cím
osztályok______________________________________________ 82
Alhálózatok________________________________________________ 84
Útválasztás________________________________________________ 85
Hálózati
interfészek konfigurálása (ifconfig, route)_________________
87
IP aliasing_________________________________________________ 90
Névkiszolgálás_______________________________________________
92
A /etc/hosts fájl_____________________________________________
92
A NIS____________________________________________________
93
A DNS____________________________________________________
93
Levelezés__________________________________________________
109
A levél__________________________________________________ 109
A levél
kézbesítése__________________________________________ 113
Levelezési útválasztás az Interneten____________________________________ 113
Egy példa________________________________________________
114
Az EXIM beállítása és
indítása_______________________________ 115
Indítás__________________________________________________________
115
Az EXIM konfigurációs
lehetőségei____________________________________ 118
Egy másik példa___________________________________________
131
Az álnevek használata______________________________________ 133
A SAMBA fájlszerver________________________________________ 138
SMB____________________________________________________
138
Indítás___________________________________________________
139
Installálás:_______________________________________________
141
A szerver, mint démon______________________________________ 142
A szerver futtatása kérésre__________________________________ 142
Az smb.conf konfigurációs
fájl________________________________ 143
Egy tipikus smb.conf fájl_____________________________________________ 147
További hasznos paraméterek_________________________________________ 148
Felhasználási ötletek_______________________________________ 151
FAX szerver________________________________________________
153
Az Apache web szerver_______________________________________ 168
A konfigurációs fájlok______________________________________ 168
A httpd.conf fájl___________________________________________________ 168
Az access.conf fájl_________________________________________________ 174
Az srm.conf fál____________________________________________________
177
SQUID proxy cache_________________________________________ 185
Rövid ismertetés__________________________________________ 185
Az ajánlott hardver_________________________________________ 186
Indítás___________________________________________________
187
A kliensek konfigurálása____________________________________ 189
A squid.conf fájl lehetőségei_________________________________ 192
Hozzáférés szabályozása_____________________________________________ 192
További lehetőségek_______________________________________________ 196
Kapcsolat PPP-n keresztül____________________________________ 199
Előkészítés_______________________________________________
199
A pppd beállítása__________________________________________ 200
Az options fájl____________________________________________________
201
A pap-secrets és
chap-secrets fájlok (PAP hitelesítés CHAP hitelesítés)_________
208
Kapcsolatok konfigurálása___________________________________________ 211
A pppconfig program_______________________________________________ 215
Automatikus kapcsolat az új
pppd démonnal______________________________ 223
Automatikus
kapcsolatfelvétel – diald___________________________________
224
PPP szerver______________________________________________________
232
A bootp használata__________________________________________ 235
A bootptab konfigurációs fájl_________________________________ 236
Indítás___________________________________________________
237
A Network File System
használata_____________________________ 239
A démon indítása__________________________________________ 239
A legfontosabb használható
opciók____________________________________ 240
Az exports konfigurációs fájl_________________________________ 241
Az NFS kötetek mountolása_________________________________ 242
Röviden az installálásról
(I. függelék)___________________________ 245
Hol szerezzünk Linuxot_____________________________________ 245
Bootolás_________________________________________________
245
Első lépések______________________________________________
246
Partícionálás______________________________________________
246
Partíciók aktiválása________________________________________ 247
Alap beállítások___________________________________________ 247
Csomagkezelés___________________________________________
248
Kernel fordítás (II.
függelék)__________________________________ 249
Honnan vegyünk új kernelt és
milyet használjunk________________ 250
Kernel forrás telepítése_____________________________________ 250
A .config fájl elkészítése____________________________________ 251
Modulok________________________________________________________
252
A lehetőségek____________________________________________________
253
Fordítás_________________________________________________________
282
A lilo.conf beállítása________________________________________________ 284
Az új kernel indítása________________________________________________ 287
A kernel paraméterei (III.
függelék)____________________________ 288
Meghajtók a kernelben_____________________________________ 288
A paraméterek____________________________________________
289
A modprobe paraméterek___________________________________ 307
Az X Window System
konfigurálása (IV. függelék)________________ 308
Az X szerver és az X kliens__________________________________ 308
Az X szerver konfigurálása
(az XF86Config fájl)__________________ 309
Finom beállítás____________________________________________________
319
Indítás az xdm (kdm) démonnal_______________________________ 323
Lehetőségek_____________________________________________
323
X terminál________________________________________________________
323
Programok nem saját képernyőn_______________________________________ 324
Az ablakkezelők___________________________________________
324
A KDE grafikus keretrendszer
(V. függelék)______________________ 326
Munka a KDE-vel_________________________________________
328
A KFM fájlkezelő__________________________________________ 329
A KDE beállító központ_____________________________________ 332
Multimédia Linux Alatt (VI.
függelék)__________________________ 349
Röviden az Mpeg3 formátumról______________________________ 349
MP3 Lejátszók Linux alatt___________________________________ 350
mpg123_________________________________________________________
351
X11Amp_________________________________________________________
351
freeamp_________________________________________________________
352
Grafikai programok Linux
alatt_______________________________ 353
Elvárások________________________________________________________
353
G I M P__________________________________________________________
353
X V____________________________________________________________
355
Alsa telepítési útmutató
(VII. függelék)_________________________ 357
1. Bevezetés______________________________________________
357
1.1 Köszönet_____________________________________________________
357
1.2 A dokumentum változásai_________________________________________ 357
1.3 A dokumentum új verziói__________________________________________ 357
1.4 Visszajelzés____________________________________________________ 357
1.5 Terjesztési irányelv______________________________________________ 358
2. Gyors Installálási
útmutató________________________________ 358
2.1 Installálás_____________________________________________________
358
Hang
lejátszás,
és felvétel__________________________________________
359
3. Mielőtt elkezdenénk_____________________________________ 359
3.1 Bevezetés_____________________________________________________
359
3.2 Általános információk az
ALSA driverekről____________________________ 360
3.3 Támogatott hardware____________________________________________ 360
3.4 Egyéb leírások__________________________________________________ 361
4. Hogyan installáljuk az
ALSA hang drivereket?________________ 362
4.1 Amire szükségünk van.___________________________________________ 362
4.2 ALSA driverek letöltése__________________________________________ 363
4.4 Kitömörítés____________________________________________________
363
4.5 Fordítás______________________________________________________
364
4.6 Az eszközök előkészítése__________________________________________ 364
5. A driver betöltése_______________________________________ 365
5.1 Beillesztés a
modprobe-val________________________________________ 365
5.2 Melyik modult melyik
kártyához?____________________________________ 365
5.3 Driverek autoprobe nélkül_________________________________________ 367
5.4 A kerneld beállítás_______________________________________________ 370
5.5 Visszafele kompatibilitás__________________________________________ 372
6. Tesztelés, és használat____________________________________ 372
6.1 A /proc filerendszer______________________________________________ 372
6.2 A mixer_______________________________________________________
375
6.4 További információk_____________________________________________ 380
7. Tippek, és probléma
megoldás_____________________________ 381
7.1 Linux kernel forrása______________________________________________ 381
7.2 Driver betöltés_________________________________________________ 381
Hangkártya
kompatibilitás__________________________________________
381
"Device
busy" vagy "unresolved symbols"_____________________________
381
Ellenőrizzük
a
PnP beállítást_______________________________________
382
Biztos,
hogy jók
a paraméterek?____________________________________
382
7.3 Driver betöltve, de
nincs hang______________________________________ 383
7.5 Hiba jelentés___________________________________________________ 384
7.6 Tipp: CD lejátszás_______________________________________________ 385
7.8 Tipp: új kernel? Új
modulok!_______________________________________ 385
7.9 Tipp: KDE és ALSA
driverek_______________________________________ 385
7.10 Tipp: az ALSA eszközök
használata_________________________________ 386
7.11 Tipp: az összes modul
eltávolítása__________________________________ 386
Irodalomjegyzék____________________________________________
387
Amikor a Linux operációs rendszerrel
elkezdtem foglalkozni, úgy
éreztem, nincs könnyű dolgom. Egy volt tanítványom ismertetett meg vele
és
bizony az első installálások után is sokszor kellett segítségül hívnom,
mire
kezdtem ráérezni az új rendszer adta lehetőségek ízére. Az egyszer sem
fordult
meg a fejemben, hogy otthagyjam és ne foglalkozzam vele tovább, mert
úgy
éreztem, hogy az addig ismert rendszerekhez képest sokkal több
lehetőséget rejt
magában, amit meg kell ismerni. Nem szabad kihagyni az alkalmat, hogy a
"nagy, misztikus és elérhetetlen UNIX világhoz" közelebb kerüljek.
Szóval próbáltam összeszedni a tudást onnan, ahonnan csak tudtam. Volt
tanítványok, egyetemi rendszergazdák, egyetemisták, levelező listák és
a
Linuxhoz elérhető HOWTO-k, kérdés gyűjtemények és a rendszerhez adott
dokumentációk. Később elkezdtek megjelenni magyar nyelvű kiadványok is
A
Rendszerről. Tehát volt anyag bőven, de egy-egy feladat megoldása így
is nagyon
sok munkával és utánjárással járt. Munkahelyeimmel szerencsém volt (és
van),
mert pusztán a feladatot fogalmazták meg, de az nagyrész rám volt
bízva, hogy
milyen úton tudom megvalósítani a legjobban és persze lehetőleg a
legköltségkímélőbben. Egy-egy ilyen munkánál a lehetőségeket figyelembe
véve
legtöbbször a Linuxnál kötöttem ki. Tudtam, hogy van rá mód megoldani,
csak az
a kérdés, hogyan. Ez a rendszer borzasztó sok lehetőséget rejt a
szerver
operációs rendszerek piacán és egyre inkább felhasználóbarát,
felkészülve az
otthoni, irodai terjedésre is. Aki ismeri, az megszereti.
Nekem egyedül az hiányzott vele
kapcsolatban, hogy nem találtam
egy olyan leírást, amit egy feladat megfogalmazása után elég csak
fellapozni és
megmutatja az oda vezető utat. (De legalábbis egy oda vezető utat
mutat.) Nem
állítom, hogy ez a könyv olyan. Azt állítom, hogy ha ez a könyv ott
lett volna
velem, amikor megkapok egy feladatot, akkor valószínűleg a feladatra
fordított
idő nagyságrendekkel kevesebb lett volna.
Igen, most már csak az a kérdés, hogy
miről szól ez a könyv és
kinek szól ez a könyv.
A könyv a Linux azon lehetőségeiről szól,
amit én az utóbbi 5
évben használtam és úgy-ahogy megismertem. Amire egy olyan
rendszergazdának
szüksége lehet, aki Magyarország második legnagyobb vegyi gyárának
informatikai
életét terelgeti egy olyan világban, ahol sokan próbálnak megélni
többé-kevésbé
működő rendszerek eladásából. Próbálnak rávezetni gyanútlan vezetőket
egy olyan
útra, amiről csak nagyon nagy anyagi ráfordítás ellenében lehetne
visszakozni,
ha rájönnek a rendszer korlátaira és buktatóira.
És kinek szól? Leginkább sorstársaimnak,
akiknek hasonló
problémákkal kell szembenézni nap mint nap és szorgalmasan, nagy
lelkesedéssel
keresik a megoldást. Azoknak, akik az informatika területén otthonosan
mozognak, van tapasztalatuk más rendszerekkel kapcsolatban és úgy
gondolják,
hogy érdemes belefogni annak a rendszernek a megismerésébe, ami mellé
az utóbbi
időben a világ vezető informatikai cégei is felsorakoztak, látva annak
elképesztő méretű terjedését.
Az informatikai világ manapság már nem az
ablakok és az ajtók
közötti különbségek ecsetelésétől zeng, hanem a GNU GPL mozgalom és a
szabadon
terjeszthető Linux operációs rendszer elképesztő méretű terjedéséről.
Egy két
éve olvastam valahol egy cikket (Elnézést kérek az írójától, hogy nem
jegyeztem
meg a nevét), amiben a mamut cégek hasonló célra szánt rendszereiről
írt és azt
a végkövetkeztetést vonta le, hogy amíg a "nagy cégek" egymás
torkának esnek és bizonygatják a saját igazukat, addig a háttérből
szépen
csendben jön a Linux és kiteszi az indexet. Ma már bizton állíthatjuk,
hogy ez
igaz, és lehet, hogy már nincs szükség az indexre, hiszen senki nincs
útban.
Köszönöm mindazoknak, akik segítettek
nekem abban, hogy ez a
könyv megjelenjen.
Köszönöm volt tanítványomnak Bérci
Norbertnek, hogy
megismertetett a Linux-szal és segített, amikor semmit nem értettem
belőle.
Köszönöm volt tanítványomnak Cserna
Zsoltnak
(zsolt@kib4.pluto.vein.hu), hogy a multimédia fejezet megírásával
hozzájárult a
munkához és hogy lefordította Valentijn Sessinknek
(valentyn@alsa-project.org)
"Alsa-sound-mini-HOWTO" munkáját és ezzel is segített a könyv
színvonalának emelésében. Ezúton neki is szeretném megköszönni a
hozzájárulását
a kiadáshoz.
Köszönöm Egresi Péternek
(egresip@schwabo.hu), hogy a Linux FAX
Szerver fejezetben leírhattam a tőle kapott nagyon hasznos alkalmazást.
Köszönöm Beke Olivérnek
(oliver@almos.vein.hu), Bíró Zsoltnak
(biro_zs@sop3.sop.matav.hu) és Sas Tibornak (tsas@balatontourist.hu)
hogy
segítettek az egyes fejezetek hibáinak felfedésében és a szerkesztési
munkához hasznos
tanácsokat adtak.
Köszönöm mindazoknak, akik a levelező
listákon segítettek nekem,
amikor nem boldogultam valamivel.
Köszönöm munkahelyemnek a Nitrogénművek
Rt.-nek, hogy
lehetőségem van alkalmazni ipari körülmények között a rendszer adta
lehetőségeket.
Ezen kívül szeretném megköszönni
feleségemnek, hogy elnézi
nekem, ha néha otthon is le kell ülnöm a számítógép elé, és szüleimnek,
akik
megvették nekem első PC-met, megpecsételve ezzel sorsomat.
Szabó Bálint
Ez a fejezet arról fog szólni, hogy
megtudjuk, milyen főbb
szolgáltatásokat nyújt a Linux rendszer. A szolgáltatások általában
hogyan
érhetők el, mi a beállítás módja. Hogyan kell elindulni, mik azok a
nélkülözhetetlen parancsok, utasítások, segédprogramok, amik nélkül
nehéz az élet.
A Linux legfőbb szolgáltatása az init. Ez indul el elsőként, miután a kernel betöltődött.
Ez
határozza meg, hogy mely programok fognak lefutni, milyen további
szolgáltatásokat végző programok, démonok fognak elindulni.
A démon egy közönséges
program, ami valamilyen szolgáltatásért felelős. Onnantól kezdve, hogy
elindítottuk egészen a leállításáig a memóriában marad, de általában
inaktív
állapotban van és csak akkor aktív, ha éppen a neki szóló feladatot
hajtja
végre.
Pl.:
WEB
szervert
szolgáltat az apache, vagy httpd
démon.
Levelezést szolgál ki a sendmail, smail, vagy exim
program.
Nyomtatásért felelős az lpd démon.
Az
SMB-n keresztüli fájlmegosztást a SAMBA (smbd)
biztosítja. (Így érhetjük el Linux szerverünket, mint fájl
szervert win'xx gépekről is.)
Névkiszolgálást (name server)
biztosít named (bind) program.
Stb.
Minden ilyen programnak van egy, vagy több
konfigurációs állománya, amiben a szükséges
beállításokat el kell
végezni. Ezek a konfigurációs állományok a /etc, vagy annak valamely -a
szolgáltató programra jellemző nevű- alkönyvtárában vannak.
Ezek a fájlok általában egyszerű szöveges
állományok, amiket egy
egyszerű szövegszerkesztővel módosíthatunk. Vannak benne ’#’ jellel
kezdődő
sorok, amik "komment sorok" és röviden megmagyarázzák az utána
következő opció jelentését.
Ezek a fájlok általában már akkor
elkészülnek, amikor
felinstalláljuk a programcsomagot. A szolgáltatások egy része már ezzel
az alap
konfigurációs állománnyal használható, de azért nem árt a
finomhangolásokat
elvégezni.
A beállításokat elvégezhetjük egy
szövegszerkesztő segítségével,
de az esetek nagytöbbségében van egy konfiguráló segédprogramja minden
szolgáltatást végző programnak. Ez lehet egy egyszerű párbeszédes
program, de
lehet X Window felületen futó grafikus alkalmazás is. Célszerű először
ilyennel
próbálkozni, majd megnézni az elkészített konfigurációs szkriptet és
szükség
esetén még kézzel elvégezni a további módosításokat.
A szolgáltató programok, démonok indítása
több féleképpen
elvégezhető.
Indíthatjuk kézzel egy megfelelően
felparaméterezett parancs
kiadásával.
Indíthatjuk kézzel a megfelelő init
szkript futtatásával (start,
stop, reload paraméterekkel). Ezek a szkriptek a /etc/rc.d/init.d
vagy a
/etc/init.d könyvtárban vannak disztribúciótól függően. Kézzel történő
indításhoz inkább ez a módszer ajánlott, ha van rá mód.
Automatikus indítást tesznek lehetővé az
egyes futási szintekhez
tartozó "rc könyvtárak". Az ezekben talált futtatható állományokat az
init fogja elindítani az indítási
folyamat közben.
Ezekről az indítási módokról az egyes
szolgáltatások
tárgyalásakor részletesen lesz szó.
Egy másik indítási mód az inetd metadémonon keresztüli indítás. Van
olyan szolgáltatás, amire nincsen mindig szükség. Az ilyeneket
felesleges lenne
állandóan futtatni. Ezek kezelésére az inetd
démon fut. Ez mindig a memóriában van és ha egy olyan igény lép fel,
ami
további szolgáltatás indítását igényli, akkor az inetd
elindítja azt.
Az inetd program
konfigurációs állománya a /etc/inetd.conf fájl. Ha itt megtalálható egy
szolgáltatás, akkor az használható lesz, ha igény érkezik rá. Ha nem
akarunk
bizonyos szolgáltatásokat elérhetővé tenni, akkor csak tegyünk egy ’#’
jelet az
őt indító sor elé és vagy adjuk ki a
kill -HUP szám
parancsot,
ahol a szám az inetd processz
azonosítója, amiről az alábbiakban még szó lesz ebben a fejezetben,
vagy
indítsuk újra a gépet, hogy újra elolvassa az inetd.conf állományt.
Az
initd processz azonosítóját megkapjuk, ha kiadjuk a
ps ax|grep inetd
parancsot.
Láthatjuk,
hogy még ilyen alapvető szolgáltatásokat végző program
újrakonfigurálása miatt
sem kell újraindítani a gépet.
Az egyes szolgáltatásokhoz egy jól
meghatározott úgynevezett
port szám tartozik. Ezeken a portokon keresztül lehet megszólítani a
szolgáltatásokat. Ezt általában a felhasználó elől rejtett formában
teszik a
kommunikációt végző programok. (és a hackerek...)
A szolgáltatás-port szám összerendelés a
/etc/services fájlban
található:
.
.
.
ftp
21/tcp
www
80/tcp
pop3
110/udp
.
.
.
A példából látható, hogy pl. a web
szolgáltatást használó programok
a 80-as porton fognak kommunikálni a szerverünkkel.
Nagyon fontos program a felhasználó és
a gép közötti kommunikáció szemszögéből a parancsértelmező, a shell.
A felhasználónak valahogy „szóba kell
állnia” az operációs
rendszerrel. Erre szolgál minden operációs rendszeren a
parancsértelmező. A
DOS-ra épülő rendszerekben a COMMAND.COM program végzi ezt a szerepet.
A Linux
rendszereken számos parancsértelmező (shell) áll rendelkezésre. A
legelterjedtebb és alapbeállításként is ez használható, a bash shell
(parancsértelmező). Használható shellek még többek között az ash, csh,
sh, es,
ksh, tcsh. (A rendszer által engedélyezett listát a /etc/shells fájl
tartalmazza. Ezt bővíthetjük és szűkíthetjük igény szerint.)
Hogyan
jutunk egy parancsértelmezőhöz?
Ha belépünk a rendszerünkbe karakteres
felületen, akkor a
bejelentkezési procedúra végén egyből egy ilyen shell-be jutunk. (Tehát
megjelenik a prompt és a rendszer várja a parancsainkat.) Ha a
karakteres
felületen megnyomjuk az Alt+Fn billentyűt (Fn=F1,F2,F3,F4,F5,F6 funkció
billentyű), akkor egy másik karakteres „virtuális terminál” fogad
bennünket,
ahol ugyancsak bejelentkezhetünk a rendszerbe és az előzőtől teljesen
függetlenül dolgozhatunk.
Grafikus rendszert használva nyitni kell
egy szöveges
„terminál” ablakot a grafikus képernyőn (hasonlóan, mint a windows-os
rendszerekben) és oda gépelhetjük be utasításainkat. Tehát bármely
ablakkezelőt
is választottuk, shell, terminal, console, vagy valami ehhez hasonló
ikont
keressünk a munkaasztalon.
(Parancsértelmező
X Window System alatt)
Nagyon kellemes és hasznos szolgáltatása a
bash shellnek,
hogy képes kiegészíteni megkezdett parancsunkat, vagy a begépelt
állománynevet.
Ha elkezdünk beírni egy parancsot, akkor nem kell azt végig gépelni,
hanem
közben megnyomva a Tabulator billentyűt az kiegészíti a megkezdett
parancsot.
Ha nem egyértelmű a befejezés (több ilyen kezdetű parancs is van),
akkor
hangjelzést kapunk. Ha ilyenkor kétszer gyorsan egymás után megnyomjuk
a
Tabulator-t, akkor kiadja az összes ilyen kezdetű parancsot és ennek
megfelelően egy-két további karakter leütésével haladhatunk tovább.
Ugyanez
igaz a fájlnevek esetén is. Ez hasznos lehet, ha nem emlékszünk
pontosan a
parancsnévre, vagy állománynévre és a gépelést is megkönnyíti és
pontosabbá
teszi. A másik kellemes szolgáltatás a már kiadott parancsaink
tárolása. A fel
és lefelé mozgató kurzormozgatókkal eddig begépelt parancsaink között
választhatunk és tetszés szerint újraszerkeszthetjük és újra
futtathatjuk őket.
(A gép leállítása előtti parancsainkat is megjegyzi.)
Minden éppen futó program egy-egy processzt határoz meg. Ez a legkisebb, párhuzamos
feldolgozásra
alkalmas egység. A processznek van egy azonosító száma, amivel lehet rá
hivatkozni. Az éppen futó processzek listáját a
ps ax
parancs kiadásával kapjuk meg.
Ha a lista hosszú, akkor a more
program ebben a rendszerben is a segítségünkre siet.
samson:~ # ps ax|more
PID TTY STAT TIME COMMAND
1 ? S 0:04 init
2 ? SW 0:00 (kflushd)
3 ? SW 0:00 (kpiod)
4 ? SW 0:00 (kswapd)
9 ? S 0:00 /sbin/kerneld
13 ? S 0:00 update (bdflush)
66 ? S 0:00 /usr/sbin/rpc.ugidd
72 ? S 0:00 /usr/sbin/syslogd
76 ? S 0:00 /usr/sbin/klogd -c 1
102 ? S 0:00 /usr/sbin/inetd
123 ? S 0:00 /usr/sbin/lpd
124 ? S 0:00 /usr/sbin/lpd
136 ? S 0:00 /usr/sbin/cron
137 ? S 0:00 sendmail: accepting connections on port 25
140 ? S 0:00 /opt/applix/axdata/axnet
143 ? S 0:00 /usr/sbin/squid -sYD
150 ? S 0:00 pppd persist demand idle 60 call datanet
152 1 S 0:00 /sbin/mingetty --noclear tty1
153 2 S 0:00 /sbin/mingetty tty2
154 3 S 0:00 /sbin/mingetty tty3
155 4 S 0:00 /sbin/mingetty tty4
--More--
Ha csak bizonyos karaktersorozatot
tartalmazó processzlistát
kérünk, akkor a grep programmal kell
kombinálni a parancssorunkat:
samson:~ # ps ax|grep tty
152 1 S 0:00 /sbin/mingetty --noclear tty1
153 2 S 0:00 /sbin/mingetty tty2
154 3 S 0:00 /sbin/mingetty tty3
155 4 S 0:00 /sbin/mingetty tty4
156 5 S 0:00 /sbin/mingetty tty5
samson:~ #
Ha egy processzt le akarunk állítani,
akkor azt megtehetjük a
megfelelő init szkript stop
paraméterrel való futtatásával, ha van ilyen:
samson:~ # /etc/rc.d/init.d/apache stop
Shutting down service httpd done
samson:~ #
Ha nincsen, akkor használhatjuk a kill parancsot a processzazonosítóra:
kill -9 2031
Ezzel utasítottuk a 2031-es azonosítóval
rendelkező processzt,
hogy feltétel nélkül (-9), azonnal lépjen ki.
Használhatjuk a
killall processznév
formát is.
Ha egy shellben dolgozunk és egy éppen
futó programot akarunk
"félreállítani" úgy, hogy ne szakadjon meg a futása, akkor Ctrl+Shift+z
megnyomásával
felfüggeszthetjük a működését.
[1]+ Stopped szamol
samson:~#
Ha azt akarjuk, hogy a háttérben folytassa
a munkát, mert olyan
természetű dolgot végez, amihez nem szükséges emberi beavatkozás, akkor
adjuk
ki a
bg
parancsot.
Ha kíváncsiak vagyunk, hogy milyen
munkáink futnak a háttérben,
akkor adjuk ki a
jobs
parancsot.
samson:~ # jobs
[1]+ Stopped vi
Ha újra előtérbe akarjuk hozni
valamelyiket, akkor az
fg szám
paranccsal tehetjük meg, ahol a szám a
munka száma. A vi program esetében éppen az 1 volt.)
Az ilyen fajta job
kezelésre nem túl gyakran van szükség, hiszen van elég virtuális
terminál és
ablak a munka elvégzésére (ezekről később lesz szó), de azért tudjunk
róla,
hogy létezik.
Ha rendszerünk foglaltságáról szeretnénk
információt kérni,
akkor a
top
program kiváló lehetőséget ad erre.
Megmondja az átlagos
leterheltséget, mennyi processz fut, milyen mértékben használják ezek a
rendszer erőforrásait.
2:23am up 3:30, 4 users, load average: 1.02, 1.01, 0.96
52 processes: 48 sleeping, 4 running, 0 zombie, 0 stopped
CPU states: 82.8% user, 17.1% system, 0.0% nice, 0.3% idle
Mem: 128132K av, 72940K used, 55192K free, 32308K shrd, 5356K buff
Swap: 72288K av, 0K used, 72288K free 48100K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
480 root 14 0 892 892 748 R 0 73.4 0.6 81:26 xosview.bin
478 root 3 0 1844 1844 1408 R 0 23.9 1.4 0:02 xterm
446 root 0 0 12040 11M 1784 R 0 1.9 9.3 0:19 X
646 root 1 0 760 760 596 R 0 0.5 0.5 0:00 top
1 root 0 0 164 164 140 S 0 0.0 0.1 0:04 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd
3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd
9 root 0 0 360 360 312 S 0 0.0 0.2 0:00 kerneld
13 root 0 0 244 244 204 S 0 0.0 0.1 0:00 update
62 bin 0 0 360 360 288 S 0 0.0 0.2 0:00 portmap
66 root 0 0 416 416 340 S 0 0.0 0.3 0:00 rpc.ugidd
72 root 0 0 540 540 440 S 0 0.0 0.4 0:00 syslogd
76 root 0 0 400 400 340 S 0 0.0 0.3 0:00 klogd
98 at 0 0 444 444 364 S 0 0.0 0.3 0:00 atd
102 root 0 0 448 448 376 S 0 0.0 0.3 0:00 inetd
123 root 0 0 504 504 440 S 0 0.0 0.3 0:00 lpd
.
.
A free program a memóriánk foglaltságát mutatja.
samson:~ # free
total used free shared buffers cached
Mem: 128132 72864 55268 31960 5372 48116
-/+ buffers/cache: 19376 108756
Swap: 72288 0 72288
samson:~ #
A df program a
winchesterekről ad hasonló információt.
samson:~ # df
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda3 2974550 2038498 782230 72% /
/dev/hda4 1100288 980320 119968 89% /dos
/dev/hda1 2044240 1260316 783924 62% /win98
/dev/hdb2 1022112 968620 53492 95% /mnt/disk
samson:~ #
Szükségünk lehet a környezeti változók
beállítására, vagy
lekérdezésére is. Az aktuális állapotról képet kapunk a set
parancs kiadásával.
bash-2.02# set
.
.
.
POVRAYOPT=-l/usr/lib/povray/include
PPID=907
PRINTER=lp
PS1='\s-\v\$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:histexpand:monitor:history:ignoreeof:interactive-comments:emacs
SHLVL=2
TERM=xterm
TEXINPUTS=':~/.TeX:/usr/doc/.TeX:/usr/doc/.TeX:'
UID=0
USER=root
WINDOWMANAGER=/usr/X11R6/bin/kde
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
XNLSPATH=/usr/X11R6/lib/X11/nls
XSESSION_IS_UP=yes
.
.
.
Ha nem akarjuk az összeset látni, hanem
konkrétan egy adott
változó aktuális értékére vagyunk kíváncsiak, akkor az
echo $változónév
parancs kiadásával megtudjuk annak értékét.
bash-2.02# echo $PATH
/sbin:/usr/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/openwin/bin:/var/lib/dosemu:/usr/games/bin:/usr/games:/opt/gnome/bin:/opt/kde/bin
bash-2.02#
bash-2.02# echo $TERM
xterm
A változót beállítani például az
export
programmal lehet.
bash-2.02# export TERM=vt100
bash-2.02# echo $TERM
vt100
bash-2.02#
Könyvtárak tartalmának listázására az
ls
parancsot használjuk.
bash-2.02# ls
vizsga.arj
bash-2.02#
Az ’l’ kapcsoló több információt ad az
adott fájlról.
bash-2.02# ls -l vizsga.arj
-rwxr-xr-x 1 kalman root 168391 Jul 7 10:30 vizsga.arj
bash-2.02#
Az ’a’ kapcsoló a ’.’-tal kezdődő fájlokat
is mutatja. Együtt
használva az ’l’ kapcsolóval egy igen részletes listát kapunk a
fájlokról. (Ha
hosszú a lista, akkor kombinálható a more
programmal.)
bash-2.02# ls -al|more
total 278
drwxr-xr-x 6 kalman users 1024 Jun 26 20:14 .
drwxr-xr-x 27 root root 1024 Sep 16 06:29 ..
-rw-r--r-- 1 kalman users 5742 Dec 8 1998 .Xdefaults
-rw-r--r-- 1 kalman users 46 May 7 1996 .Xmodmap
lrwxrwxrwx 1 kalman users 10 Jun 26 19:56 .Xresources -> .Xdefaults
-rw------- 1 kalman users 0 May 18 1996 .bash_history
-rw-r--r-- 1 kalman users 1296 Jul 24 1997 .bashrc
-rw-r--r-- 1 kalman users 0 Nov 20 1995 .dayplan
-rw------- 1 kalman users 0 May 8 1996 .dayplan.priv
-rw-r--r-- 1 kalman users 208 Nov 17 1995 .dvipsrc
-rw-r--r-- 1 kalman users 4022 Jul 13 1998 .emacs
-rw-r--r-- 1 kalman users 1168 Feb 3 1998 .exrc
-rw-r--r-- 1 kalman users 5376 Aug 28 1996 .gimprc
drwx------ 2 kalman users 1024 May 8 23:12 .grok
drwxr-xr-x 2 kalman users 1024 May 8 23:12 .hotjava
-rw-r--r-- 1 kalman users 7924 Oct 7 1997 .jazz
-rw-r--r-- 1 kalman users 164 Nov 17 1995 .kermrc
-rw-r--r-- 1 kalman users 10376 Sep 1 1996 .lyxrc
-rw-r--r-- 1 kalman users 2070 Nov 17 1995 .nc_keys
--More--
A cp programmal
tudunk másolni fájlokat és könyvtárakat.
bash-2.02# cp lemez.txt /home/szabob/
bash-2.02# cp -ar private /home/szabob/
Az ’a’ paraméterrel való másoláskor a
másolatok is megtartják az
összes eredeti attribútumot. Az ’r’ paraméter azt jelenti, hogy
könyvtár
másolásakor annak alkönyvtárait is másolja.
A cd és az mkdir
programok hasonló működésűek,
mint a DOS rendszerben.
Az rm programmal
lehet fájlokat és könyvtárakat is törölni.
rm fájlnév
rm -rf könyvtárnév
A * és ?
karakterek hasonló működésűek, mint a
DOS rendszerben.
Használhatunk úgynevezett álneveket
(alias neveket) a programok
indítására, ha például nem akarunk állandóan hosszú paraméterlistát
használni
azok indítására.
alias ls='ls --color'
Ennek hatására, ha kiadjuk az ls
parancsot, akkor valójában az ls –color hajtódik végre.
Az alias neveinket
célszerű a felhasználói .profile-ban rögzíteni a felhasználó saját
könyvtárában. (/home/usernév/.profile, vagy a /home/usernév/.bashrc
személyre
szabott bash konfigurációs fájlban.)
Egy fájl tartalmát megnézhetjük a
cat fájlnév
parancs kiadásával.
Komfortosabb a
less fájlnév
használata. (Ebben lehet fel-le közlekedni
és van lehetőség a
sztring keresésre is, ha egy ’/’ jel után beütjük a keresett sztringet.)
Egyszerű fájl szerkesztésre ad lehetőséget
a
joe
szerkesztő program.
Indítani a joe
parancs kiadásával lehet. Ha joe fájlnév
alakban indítjuk, akkor a paraméternek kapott fájlt fogja behúzni
szerkesztésre, ha ilyen nincs, akkor most létrehozza.
Néhány hasznos vezérlő parancs:
Mozogni, törölni, gépelni a szokásos
módon lehet.
Ctrl+k+h A
help hívása
Ctrl+k+d A
szöveg mentése
Ctrl+k+x Mentés
és kilépés
Ctrl+c
Kilépés mentés nélkül
Ctrl+k+u Ugrás
a szöveg elejére
Ctrl+k+v Ugrás
a szöveg végére
Ctrl+k+b Blokk
elejének meghatározása
Ctrl+k+k Blokk
végének meghatározása
Ctrl+k+c Blokk
másolása
Ctrl+k+m Blokk
mozgatása
Ctrl+k+f Sztring
keresése
Az egeret is nagyon hatékonyan
használhatjuk akár karakteres
felületen is a gpm program indulása
után.
A bal egérgombot nyomva tartva
kijelölhetünk vele. Három gombos
egér esetén a középső megnyomásával, kettő gombos esetén a bal+jobb
egyidejű
lenyomásával a kurzorhoz tesszük le a kijelölt képernyő tartományt.
Az egyik legfontosabb program a
man
Ezzel szinte az összes fontos fájlról,
programról és parancsról
részletes leírást kapunk. Olvasása nagyon hasznos lehet.
Pl:
man ls
A fent említett programok úgy érzem
nélkülözhetetlenek Linux
használata során, ezért írtam le rögtön a könyv elején a használatukat.
Ez
messze nem részletes leírása volt ezen programoknak, csak a minimális
használathoz
elég. Aki részletesebben kíváncsi az összes lehetőségre annak tényleg a
man oldalak olvasását javaslom.
Ezt a könyvet vehetjük egy nagyon szűkre
szabott leírásnak a
rendszerről. A kezdeti lépésektől a szolgáltatásokat biztosító szerver
programokig. Akinek ez nem ad elegendő információt, mert részletesen el
szeretne mélyedni a rendszer lehetőségeinek megismerésében, annak
javaslom a
Kezdők kézikönyvét, az Installációs kézikönyvet, a
Rendszeradminisztrátorok
kézikönyvét, a Hálózati adminisztrátorok kézikönyvét és a többi ezer és
ezer
oldalas dokumentációt.
(Mert a Linux egy jól dokumentált
rendszer...)
A Linuxban szerencsére
nincs meg az
a memória felosztás, ami sajnos az egyik legelterjedtebb operációs
rendszernek
még mindig része. A Linux teljesen egyben képes kezelni a
rendelkezésére álló
fizikai memóriát. És azt nagyon intenzíven ki is használja. Ha egy
lemezművelet
során a memóriába töltődött egy fájl, akkor a fizikai memória egy része
lemez
cache-ként fog viselkedni. Az ezzel a fájllal végez minden művelet a
memóriában
fog lezajlani, nem kell a jóval lassabb lemezhez nyúlni. A cache-ből
törlődni fog
a fájl, ha már elég régen nem használtuk és kell a hely esetleg egy
másik
fájlnak. Ez a lemez cache funkció.
Veszélyes is lehet olyan szempontból, hogyha a rendszer leáll valami
oknál
fogva (pl. áramszünet esetén, vagy valaki lekapcsolja a gépet), akkor a
memória
tartalma nem kerül vissza a lemezre, tehát a nyitott fájl sérülni fog.
A sync parancs hatására minden cache
terület kiürül a lemezre.
Alaptörvény, hogy a fizikai memóriából
soha nincs elég. Ha
megtelik és a rendszerünknek még mindig szüksége van további memóriára,
akkor
képes a lemez egy részét úgy kezelni, mintha az fizikai memória lenne.
Ezt úgy
kell érteni, hogy a futó programoknak egy részét egy meghatározott
lemezterületre fogja kirakni a rendszer és ha szükség van rá, akkor
onnan tölti
be. Ezt a technikát lapozásnak
nevezzük. Az a terület a lemezen, amit a memória kiegészítéseként
használ a
rendszer, a swap (csere) terület. Ez
lehet egy egyszerű fájl, de érdemesebb külön partíciót létrehozni erre
a célra.
Az ideális eset az, ha egy külön winchestert használunk swappelésre,
ami jó
gyors legyen. A különálló partíció egy egyszerű, fájlrendszer nélküli
partíció
legyen, amit célszerű külön erre a célra kitalált 82 (Linux swap)
típusúra
létrehozni az fdisk programmal. Ha
csak egy egyszerű fájlt akarunk swap területként használni, akkor
lehetőleg
egybefüggő területet nevezzünk ki erre a célra.
Ezt megtehetjük pl a dd
programmal.
dd if=/dev/zero of=/sw1 bs=1024 count=65536
Ezzel elkészítettünk egy 64 MB nagyságú
swap fájlt sw1 néven
a gyökér könyvtárban.
Mivel a Linux 4KB-os méretű memória
lapokat használ, ezért
célszerű ennek egész számú többszörösét használni.
Ez után az mkswap
paranccsal be kell állítani a fájt, vagy partíciót, hogy a rendszer
használhassa swap területként.
mkswap /sw1 65536
Ez után tudtára adhatjuk a rendszernek,
hogy használhatja a
swap területet.
swapon /sw1
(Lekapcsolni egy swap területet a swapoff paranccsal lehet hasonló módon.)
Általában telepítéskor a rendszer szépen
rákérdez, milyen
területeket akarunk swap területnek használni és ezeket berakja a
/etc/fstab
fájlba. Az init folyamat során az itt található swap területek
automatikusan
használatba kerülnek.
swapon -a
Ha kiadjuk a swapoff
-a parancsot, akkor az ugyan itt található swap területek
használaton kívül
lesznek, a kézzel hozzáadottak megmaradnak.
Egy swap terület maximum kb. 128MB lehet
és összesen 16 db
lehet belőle. (Ez kb 2GB területet jelent.)
A teljes swap terület méretének megválasztása fontos feladat. Nagyon általános esetben azt szokták mondani, hogy legyen a fizikai memória kétszerese, de ne legyen több 64 MB-nál. Tulajdonképpen mindenki becsülje meg, körülbelül mennyi program fog futni a rendszerén egy időben és ezek memória igényének ismeretében válassza meg a swap méretét.
A linuxban van egy elfogadott fájlrendszer
felépítés, amit
minden disztribúciónak illik követni:
A gyökér (root) fájlrendszer
Ez géptől függő, egyedi fájlrendszer.
Minden bootoláshoz
szükséges dolgot tartalmaznia kell.
Az itt található fontosabb könyvtárak:
/bin
A boot folyamat során szükséges programok,
amiket a felhasználók
is használhatnak.
/sbin
Ezek is kellhetnek a bootoláskor, de
ezeket nem használják a
felhasználók.
/etc
Gépspecifikus, rendszerspecifikus
konfigurációs fájlok.
/root
A root home könyvtára.
/lib
Osztott könyvtárak a gyökér fájlrendszer
programjaihoz.
/dev
Eszközfájlok könyvtára. Minden eszközhöz
található egy
eszközfájl, amin keresztül el lehet érni azt.
/boot
A LILO által használt fájlok. itt
tárolhatjuk a kernel image
fájlokat is.
/mnt
Ha ideiglenesen fel akarunk csatolni egy
fájlrendszert a
rendszerünkbe, azt itt illik megtenni. Pl.: /mnt/floppy, /mnt/cdrom,
/mnt/disk
/proc, /usr, /var, /home
A többi fájlrendszer csatlakozási pontjai.
Az /usr fájlrendszerben
parancsok, programok és nem változó adatok
vannak. Nem
gépspecifikus, tehát akár több gép is használhatja az itt található
adatokat.
Mivel normális esetben az itt található adatok nem változnak, a
fájlsérülések
elkerülése érdekében (esetleges rendszerösszeomlásnál, véletlen
törlésnél)
célszerű csak olvasható módon felcsatolni.
A fontosabb könyvtárak:
/usr/X11R6
Az X Window rendszer fájljai. Minden, az
X-hez tartozó fájl itt
van.
/usr/bin
A felhasználói parancsok nagy része itt
van.
/usr/sbin
A rendszeradminisztrációhoz szükséges
programok nagy része.
/usr/include
Fejléc (header) fájlok a C programozási
nyelvhez.
/usr/lib
Programok és alrendszerek nem változó
adatfájljai.
/usr/local
Ha olyan programokat installálunk, amik
nem szerves részei a
disztribúciónak, akkor azokat ide szokás tenni.
A /var
fájlrendszerben a normál működés során
változó fájlok mint pl.
naplófájlok, levelezéshez, nyomtatáshoz szükséges fájlok találhatók.
A lényegesebb könyvtárak:
/var/lock
Néhány program az indulásakor speciális
fájlokat hoz létre, ami
közli a többi programmal, hogy ő most éppen milyen fájlokat, vagy
eszközfájlokat használ.
/var/log
Naplófájlok.
var/run
Az éppen futó rendszerről adnak
információt. Pl. processz
azonosítók, bejelentkezett felhasználók.
/var/spool
Várakozási sorok pl. a levelezéshez és a
nyomtatáshoz.
/var/tmp
Ideiglenes fájlok helye.
A /home
fájlrendszerben a felhasználók személyes
fájljai találhatók.
A /proc fájlrendszerben az éppen futó
rendszerünkről kapunk különböző
információkat. A kernel hozza létre a memóriában.
bash-2.02# ls /proc/
1 161 3325 65 ide partitions
103 182 3328 71 interrupts pci
106 2 3331 75 ioports scsi
120 222 3335 9 kcore self
13 224 3337 apm kmsg slabinfo
131 225 3338 bus loadavg stat
151 226 3411 cmdline locks swaps
153 227 3440 cpuinfo meminfo sys
156 3 3441 devices misc tty
157 3083 3525 dma mounts uptime
158 3084 4 fb mtrr version
159 3304 4578 filesystems net
160 3319 61 fs parport
bash-2.02#
A
processzor információit a /proc/cpuinfo fájl tárolja:
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 8
model name : AMD-K6(tm) 3D processor
stepping : 12
cpu MHz : 350.799006
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mmx 3dnow
bogomips : 699.60
/proc/cpuinfo line 1/19 (END)
A
memóriáról a /proc/meminfo fájl ad információt:
total: used: free: shared: buffers: cached:
Mem: 131207168 126058496 5148672 46493696 26972160 65396736
Swap: 74022912 3104768 70918144
MemTotal: 128132 kB
MemFree: 5028 kB
MemShared: 45404 kB
Buffers: 26340 kB
Cached: 63864 kB
SwapTotal: 72288 kB
SwapFree: 69256 kB
/proc/meminfo line 1/10 (END)
A fájlrendszereket tartalmazó
háttértárakat a /dev könyvtár
eszközfájljain keresztül érjük el.
Nézzük a
legelterjedtebb háttértárak helyét:
floppy lemez:
/dev/fd0 (DOS-ban A:)
floppy lemez:
/dev/fd1 (DOS-ban B:)
IDE winchesterek
és CD meghajtók:
1. csatorna
master: /dev/hda
1. csatorna slave:
/dev/hdb
2. csatorna
master: /dev/hdc
2. csatorna slave:
/dev/hdd
A winchesterek egyes partícióira is
ehhez hasonlóan hivatkozhatunk: /dev/hda1 az 1. csatorna master
lemezének 1.
partíciója, /dev/hdd3 a 2. csatorna slave lemezének 3. partíciója, stb.
SCSI winchesterek:
/dev/sda,
/dev/sdb, /dev/sdc, stb.
A partíciók
hasonlóan, mint az IDE winchestereknél.
SCSI CD meghajtók:
/dev/scd0,
/dev/scd1, stb.
/dev/ttyS0,
/dev/ttyS1 A dos alatti COM1 és COM2 soros portok.
/dev/lpt0 a DOS
alatti LPT1 párhuzamos port.
/dev/psaux a PS/2 port. (Ezen érhető
el a legtöbb laptop gép beépített egérhelyettesítő szerkezete is.)
Amikor a winchesterünket használatba
vesszük, első lépésként
partícionálni kell. Egy PC-s winchesteren maximum 4 darab elsődleges
partíció
lehet. A winchester első lemezének első rekordja a Master
Boot Record. A BIOS a boot folyamatban ehhez a szektorhoz
nyúl és az itt talált programnak adja át a vezérlést. Az itt talált
betöltő
program beolvassa a partíciós táblát és keres egy bootolható
partíciót. A
bootolható partíció boot szektorára ugrik, ahol egy másik program
elkezdi
betölteni az operációs rendszert. Tehát boot szektora van a lemeznek és
minden
elsődleges partíciónak. Ha nem elég a 4 partíció, akkor kiterjesztett
partíciót kell alkalmazni egy elsődleges helyett,
amin logikai partíciókat hozhatunk
létre. (Ez ugyan olyan gyors, csak a létrehozása más. A "PC szabvány"
elterjedése miatt volt rá szükség.)
Amikor partícionálunk, akkor a fentieken
kívül meg kell gondolni
azt is, hogy milyen típusa legyen a partíciónak.
A Linux által
ismert partíció típusok a következők:
0 Empty b Win95 FAT32 63 GNU HURD a5 BSD/386
1 DOS 12-bit FAT c Win95 FAT32 (LBA) 64 Novell Netware a6 OpenBSD
2 XENIX root e Win95 FAT16 (LBA) 65 Novell Netware a7 NEXTSTEP
3 XENIX usr f Win95 Extended 75 PC/IX b7 BSDI fs
4 DOS 16-bit <32 11 Hidden DOS FAT16 80 Old MINIX b8 BSDI swap
5 Extended 14 Hidden DOS FAT16 81 Linux/MINIX c7 Syrinx
6 DOS 16-bit >=32M 16 Hidden DOS FAT16 82 Linux swap db CP/M
7 OS/2 HPFS 17 Hidden OS/2 HPFS 83 Linux native e1 DOS access
8 AIX 40 Venix 80286 85 Linux extended e3 DOS R/O
9 AIX bootable 51 Novell? 93 Amoeba f2 DOS secondary
a OS/2 Boot Man 52 Microport 94 Amoeba BBT ff BBT
Partícionálni az fdsik
programmal tudunk legkönnyebben, bár rendszerinstalláláskor
disztribúciótól
függően használhatunk más partícionáló programot is.
Ha pl az 1. IDE
csatorna elsődleges lemezét partícionáljuk, akkor adjuk ki az
fdisk /dev/hda parancsot.
bash-2.02# fdisk /dev/hda
Command (m for help):
Ennek hatására a
fenti nem túl barátságos prompt fogad bennünket.
Nézzük a
leglényegesebb parancsokat.
p
Aktuális állapot megmutatása.
q
kilépés
w
változtatások elmentése, kiírása a
lemezre.
d
partíció törlés
n
partíció létrehozás
t
partíció típusának megváltoztatása.
Egy winchester
tartalom az fdisk szemszögéből:
bash-2.02# fdisk /dev/hda
Command (m for help): p
Disk /dev/hdb: 128 heads, 63 sectors, 782 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 204 822496+ 6 DOS 16-bit >=32M
/dev/hdb2 205 458 1024128 b Win95 FAT32
/dev/hdb3 459 475 68544 82 Linux swap
/dev/hdb4 * 476 782 1237824 83 Linux native
Command (m for help):
Nézzük végig a
fenti állapot elérésének lépéseit:
fdisk
/dev/hda
(belépünk a programba és a kívánt
winchestert partícionáljuk.)
Command (m for help): p (megnézzük az
aktuális állapotot és látjuk, hogy a winchester nem tartalmaz partíciót)
Disk /dev/hdb: 128 heads, 63 sectors, 782 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
(újat hozunk létre)
Command action
e extended
p primary partition (1-4)
p
(elsődlegeset)
Partition number (1-4): 1
(a száma 1 lesz)
First cylinder (1-782): 1
(Az első
cilindertől kezdődik)
Last cylinder or
+size or +sizeM or +sizeK ([1]-782): 204
(A 204.cilinderig
tart, de ide írhatnám azt is, hogy +800M és ezzel megmondanám neki a
méretét)
Command (m for help): t
(típust váltok)
Partition number (1-4): 1
(Az első
partícióét)
Hex code (type L to
list codes): 6
(6 típusú, tehát DOS legyen. ’L’
megnyomására listát ad a használható típusokról)
Changed system type of partition 1 to 6 (DOS 16-bit >=32)
Készen vagyunk,
jöhet a következő:
Command (m for help): n
(újat hozunk létre)
Command action
e extended
p primary partition (1-4)
p
(elsődlegeset)
Partition number (1-4): 2
(2. lesz)
First cylinder (205-782): 205 (itt
kezdődik, mert a
másikat itt hagytuk abba)
Last cylinder or +size or +sizeM
or +sizeK
([205]-782): 458 (Itt a
vége)
Command (m for help): t
(típust váltunk)
Partition number (1-4): 2
(a 2.-ét)
Hex code (type L to list codes): c
(c legyen)
Changed system type of partition 2 to c (Win95 FAT32 (LBA))
Command (m for help):
Készen vagyunk,
jöhet a következő. És így tovább minden partícióra.
A végén a p paranccsal
nézzük meg, hogy tényleg a
kívánt hatást értük e el,
majd adjuk ki a w
parancsot, hogy véglegesítsük
beállításainkat és q
paranccsal lépjünk
ki.
Ha kész vagyunk a partícionálással, akkor
általában létre kell
hozni a partíción a használni kívánt fájlrendszert.
Ezt az mkfs programmal
tehetjük meg.
Használata elég
egyszerű:
Például, ha az 1. IDE első lemezének 2.
partícióján ext2
fájlrendszert akarunk kialakítani miközben a hibás blokkokat is ki
akarjuk
szűrni, akkor a
mkfs -t ext2 -c /dev/hda2
parancsot adjuk
ki.
A „-t” után megadhatjuk a fájlrendszer
típusát. A ’c’ kapcsoló
utasítja rossz szektorok kiszűrésére, majd a végén megmondjuk neki,
hogy melyik
partícióval tegye mindezt.
Ha DOS, vagy más gyártó fájlrendszerét
akarjuk létrehozni, akkor
inkább mindig az adott rendszer erre
szolgáló format parancsát
használjuk. Az mkfs programot a linuxos
partíciókra használjuk. A
partícionálást végezhetjük a Linux fdisk-ével,
de persze az adott rendszerét is használhatjuk.
Ha egy floppy lemezen akarunk létrehozni
linuxos fájlrendszert,
akkor az inkább minix legyen, ne ext2.
A Linux most a
következő fájlrendszereket ismeri:
ADFS filesystem
Amiga FFS filesystem
Apple Macintosh filesystem
DOS FAT fs
MSDOS fs support
UMSDOS: Unix-like filesystem on top of standard MSDOS filesystem
VFAT (Windows-95) fs support
ISO 9660 CDROM filesystem support
Microsoft Joliet CDROM extensions
Minix fs support
NTFS filesystem support (read only) (Windows NT)
OS/2 HPFS filesystem support (read only) (OS/2)
/proc filesystem support
/dev/pts filesystem for Unix98 PTYs
QNX filesystem support
ROM filesystem support
Second extended fs support (ext2)
System V and Coherent filesystem support
UFS filesystem support
Network File Systems
Coda filesystem support (advanced network fs)
NFS filesystem support
NFS server support
Emulate SUN NFS server (NEW)
SMB filesystem support (to mount WfW shares etc.)
SMB Win95 bug work-around (NEW)
NCP filesystem support (to mount NetWare volumes)
Ezeket a fájlrendszereket képes látni,
olvasni és egy-két
kivételtől eltekintve írni is. Amire nekünk szükségünk van egy Linux
felállításánál az az ext2 és floppy esetén a minix fájlrendszer.
Az ext2 a ma használatos Linux
fájlrendszer. Ez biztosítja a
legtöbb szolgáltatást és elég gyors és megbízható. A minix a legrégibb
és
legmegbízhatóbb rendszer, de nagyon korlátos.
A linuxban -mint minden unix rendszerben-
a fájlok egyetlen fa szerkezetben foglalnak
helyet. Tehát egy kicsit másképp kell gondolkodni, mint a hagyományos
rendszerekben, ahol ha a floppy lemezre kattintunk, akkor annak a
fájlrendszerét látjuk, ha a CD-re akkor az övét, ha a "D
winchesterre", akkor azt a fájlrendszert látjuk.
Mielőtt egy fájlrendszert (floppy, CD rom,
másik winchester
partíciói) használni akarunk, először be
kell csatolni azt a Linux rendszer fájlrendszerébe. Ez nagyon
egyszerű.
Kinevezünk egy könyvtárat (lehetőleg ÜRES legyen) a Linux
fájlrendszerében,
ahova felcsatoljuk az új adathordozót és innentől kezdve már be is van
integrálva a Linux fájlrendszere alá. Ha hozzá akarunk férni, akkor
ebben a
könyvtárban kell keresni.
A csatolást a mount
programmal kell elvégezni.
Példaként vegyünk
egy CD romot:
Az ideiglenesen felcsatolt fájlrendszerek
becsatlakozási helye a
/mnt könyvtár szokott lenni. (/mnt/cdrom, /mnt/floppy, /mnt/disk)
Tehát adjuk ki a
következő parancsot:
mount /dev/hdc /mnt/cdrom
Ezzel utasítottuk a linuxot, hogy a 2. IDE
csatorna master
egységén található CD-t csatolja be a /mnt/cdrom könyvtárba.
Készen vagyunk. Ha hozzá akarunk férni a
CD fájljaihoz, akkor a
/mnt/cdrom könyvtárban keressük őket.
Az adathordozó fájlrendszerével nem kell
sokat törődni, mert a
Linux fel fogja ismerni automatikusan. (A fenti lista gondolom elég
meggyőző.)
Ha mégis probléma van a fájlrendszer
típusával, akkor a ’t’
kapcsolóval típus kiegészítést használjunk.
mount -t iso9660 /dev/hdc /mnt/cdrom
Ha már nem használjuk a fájlrendszert,
akkor az umount paranccsal lecsatolható. Arra
figyelnünk kell, hogy pl a CD romot ki sem tudjuk venni a CD
meghajtóból, amíg
az „fel van mountolva”. (Logikus, hiszen nem engedheti meg a Linux,
hogy a
fájlrendszerének egy részét csak úgy ki be rángassák.) Lecsatolni csak
úgy
lehet, hogyha azt senki nem használja, azaz nincs nyitott fájl rajta és
a
könyvtárban sem tartózkodik senki.
umount /mnt/cdrom
NE VEGYÜK KI a floppy lemezt anélkül, hogy
umountolnánk. A
lemezcachelés miatt ugyanis a memóriában lehet még lemezre vissza nem
írt adat!
Nézzünk meg pár
érdekességet a mountolással kapcsolatban.
Mountolni (kevés
kivételtől eltekintve) csak root joggal
lehet.
A ’-r’ kapcsoló
használatával csak olvashatóan veszünk fel egy fájlrendszert.
Az ’-o loop’
kapcsolóval egy image fájlt becsatolhatunk, mint fájlrendszert. (pl CD
tartalom)
Ha NFS-en (Network File System) keresztül
csatolunk fel egy
másik gép kiexportált könyvtárát, akkor a
mount 192.168.1.10/home /home
paranccsal tehetjük meg, ami azt jelenti,
hogy a 192.168.1.10
gépen található /home könyvtárat becsatoljuk a gépünk /home könyvtárába.
Amikor a rendszer
bootol, akkor a /etc/fstab fájlban megadottak szerint csatol be
fájlrendszereket.
/dev/hda3 / ext2 defaults 1 1
/dev/hda2 swap swap defaults 0 0
/dev/hda4 /dos msdos defaults 0 0
/dev/hda1 /win98 vfat defaults 0 0
/dev/hdc /mnt/cdrom iso9660 ro,noauto,user 0 0
/dev/fd0 /mnt/floppy auto noauto,user 0 0
proc /proc proc defaults 0 0
# End of YaST-generated fstab lines
A fenti lista
kézzel is módosítható.
Az egyes sorok
jelentései:
Az 1. IDE csatorna master lemezének 3.
partícióját fogja
mountolni a gyökér fájlrendszernek, mely ext2 típusú. A mountolás
automatikus.
(defaults) Ugyanezen a winchesteren a 2. partíciót swap területként
használja
ugyancsak automatikusan.
Ugyanezen winchester 4. partíciója a /dos
könyvtárba fog
becsatolódni msdos típussal automatikusan.
Az 1. partíció
pedig a /win98 könyvtárba vfat típussal ugyancsak automatikusan.
A 2. IDE csatorna master egységén ülő CD
meghajtó az /mnt/cdrom
könyvtárba csatolható ISO9660 típussal csak olvasható módon, de nem
automatikusan és bármilyen felhasználó csatolhatja root jogosultság
nélkül.
A (DOS rendszerben A:-tal jelölt) floppy
lemez /mnt/floppy
könyvtárba csatolható automatikus fájlrendszer felismeréssel, de nem
automatikusan csatolódik és bármely felhasználó csatolhatja root jogok
nélkül.
A proc
fájlrendszer a /proc könyvtárba csatolódik automatikusan.
Ha egy felhasználó
a CD-t akarja csatlakoztatni, akkor csak ennyit kell tennie:
mount /dev/hdc
A többit elvégzi a Linux. (Mivel az
fstab-ban szerepel és
megadtuk a user paramétert, ezért tudni fogja a típusát és hogy hova
kell
csatolnia.)
A fájlrendszerben előfordulhatnak hibák.
Ezek a hibák általában
csak hibás fájllezáráskor, helytelen rendszerleálláskor keletkeznek,
mivel a
Linux ext2 fájlrendszere nagyon stabil. A hibák felderítésére és
kijavítására
az fsck program használható.
Használata elég
egyszerű:
fsck fájlrendszer
pl.:
fsck /dev/hda3
Fontos tudni, hogy csak olvashatóan
felmountolt, vagy nem
felmountolt fájlrendszeren szabad az ellenőrzést elvégezni. Például a
root
fájlrendszert először ro (readonly) módban mountolja be a rendszer,
hogy el
tudja rajta végezni az ellenőrzést és csak ez után mountolja be újra
már
írhatóként. Erre azért van szükség, mert az fsck
program a lemezblokkokkal dolgozik az operációs rendszer tudta
nélkül és az ilyen írások biztosan hibákat okoznának a fájlrendszeren.
A
javításokat már az oprendszer tudtával írja vissza, addig a memóriában
vannak.
Az fsck automatikusan
elindul, ha nem jól lett leállítva a rendszer. Egy bizonyos számú
újraindítás
után akkor is elindul, ha jól lett leállítva. A más rendszereken
előforduló
töredezettség mentesítésre nincs szükség a Linuxon.
A fájlokhoz való hozzáférés a unix
szabványnak megfelelően
történik. Minden fájlnak van egy gazdája egy csoportja és vannak a
többiek,
akik egyikbe sem tartoznak bele.
bash-2.02# ls -l /etc/passwd
-rw-r--r-- 1 root root 2444 Sep 17 12:48 /etc/passwd
bash-2.02#
bash-2.02# ls -l /home/kriszti/vizsga.arj
-rwxr-x--- 1 kriszti baratok 168391 Jul 7 10:31
/home/kriszti/vizsga.arj bash-2.02#
Az első példában láthatjuk, hogy a
/etc/passwd fájl gazdája a
root és csoportja a root csoport. (A gazda az első, a csoport a második
root
felirat) A lista elején látható -rw-r--r-- sorozat a következőt jelenti.
Az első ’-’ karakter utáni karakter hármas
a fájl gazdájának
jogait mutatja. A következő karakterhármas a fájl csoportjába tartozó
felhasználók jogait mutatja, az utolsó karakterhármas pedig a többi
felhasználó
jogait adja meg.
A jogok a
következők lehetnek:
r
(4)olvashatja
w
(2)írhatja
(módosítás, törlés)
x
(1)végrehajthatja
(futtathatja)
Az első karakter jelzi például, hogy
könyvtárról van e szó (d),
vagy egy szimbolikus linkről (l).
Tehát az első példában jelzett fájlt a
root felhasználó írhatja
és olvashatja, a root csoportba tartozó felhasználók olvashatják és a
többi
felhasználó is olvashatja.
A második példában mutatott fájl gazdája a
kriszti felhasználó,
aki írhatja, olvashatja és futtathatja a fájlt. A baratok csoportba
tartozó
felhasználók olvashatják és futtathatják a fájlt, de nem módosíthatják,
a
többiek pedig semmit nem csinálhatnak vele.
A jogokat
módosítani lehet a chmod paranccsal.
Használata nagyon
egyszerű:
chmod xyz fájlnév
Ahol x, y, z egy-egy szám. Az a szám, amit
a jogok leírásánál
zárójelek között látott számok összegéből alakítunk ki. ’x’ jelenti a
gazda
jogait, ’y’ a csoport jogait, ’z’ jelenti a többiek jogait.
Tehát, ha a második
példában adott fájl hozzáférését így módosítjuk:
chmod 100 vizsga.arj
akkor a kapott eredmény: Csak a fájl
gazdája futtathatja a fájlt.
bash-2.02# ls -al vizsga.arj
---x------ 1 kriszti baratok 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
Ha:
chmod 140 vizsga.arj
akkor a gazda
futtathatja a fájlt, a csoport nézheti.
bash-2.02# ls -al vizsga.arj
---xr----- 1 root root 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
Ha
chmod 300 vizsga.arj
Akkor a gazda
olvashatja és futtathatja. (1+2)
bash-2.02# ls -al vizsga.arj
--wx------ 1 root root 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
Ha
chmod 754 vizsga.arj
Akkor a gazda bármit csinálhat vele
(1+2+4), a csoport nézheti
és futtathatja (4+1), a többiek pedig csak olvashatják (4)
bash-2.02# ls -al vizsga.arj
-rwxr-xr-- 1 root root 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
A fájlok gazda és
csoport tulajdonjogát a gazdája és a root tudja módosítani.
A tulajdonos
váltás:
chown újtulajnév fájlnév
paranccsal
történik.
pl.:
bash-2.02# chown szabob vizsga.arj
bash-2.02# ls -al vizsga.arj
-rwxr-xr-- 1 szabob baratok 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
A csoport váltás a
chgrp újcsoportnév fájlnév
paranccsal
történik.
pl.:
bash-2.02# chgrp users vizsga.arj
bash-2.02# ls -al vizsga.arj
-rwxr-xr-- 1 szabob users 168391 Jul 7 10:24 vizsga.arj
bash-2.02#
Ha bármely parancsnál alkalmazzuk az ’R’
kapcsolót és egy
alkönyvtárra adtuk ki a parancsot, akkor az egész alkönyvtár tartalmára
rekurzívan vonatkozik.
chgrp -R users vizsga.arj
Beszélhetünk teljes
mentésről, ami annyit jelent, hogy egy fájlrendszerről, vagy annak
egy
részéről minden fájlról készítünk archív másolatot. A növekményes
mentés esetén az utolsó teljes mentés óta megváltozott
fájlokról készítünk másolatot.
Például teljes
mentést végezve a /home könyvtárról egy szalagos egységre:
tar -cf /dev/ftape /home
A ’c’ kapcsoló utasítja a tar programot,
hogy készítsen
másolatot ’f’ kapcsoló pedig az archív állomány helyét jelöli meg.
(/dev/ftape
eszköz)
Ha nem biztos, hogy kifér a teljes anyag
egy szalagra, akkor
használjuk az ’M’ kapcsolót is (multi volume).
Ha tömöríteni is akarunk, miközben
archiválunk, akkor használjuk
még a ’z’ kapcsolót is.
tar -cz -N '10 Sep 1999' -f /dev/ftape /home
A fenti parancs csak az 1999 szept. 10.
után módosult fájlokat
fogja kimenteni a szalagra tömörített formát használva (z kapcsoló).
A fájlokat visszaálítani a következő
paranccsal lehet:
tar -xzpf /dev/ftape
Az ’x’ kapcsoló a kibontásra utasít.
A ’p’ kapcsoló jelzi, hogy az eredeti
jogosultságokkal együtt
kell visszaállítani.
A ’z’ kapcsoló csak akkor kell, ha az
állomány tömörített
formában lett archiválva.
Álljon itt
példaként egy ügyes szkript, amit egy tipikus mentési eljárásként lehet
alkalmazni akár időzített indítással éjszakánként:
#! /bin/bash
mount /dev/hdc1
/root/mentes/
MENTES=save`date
+%m_%d`
mkdir
/root/mentes/$MENTES
cp -aR /home
/root/mentes/$MENTES/
tar czf
/root/mentes/$MENTES.tgz /root/mentes/$MENTES/
rm -rf
/root/mentes/$MENTES
umount
/root/mentes/
Az első sor
jelzi, hogy a parancsok a shellnek szólnak.
A második sor
felcsatol egy merevlemez partíciót a /root/mentes könyvtárba.
A harmadikban beállítunk egy MENTES nevű környezeti változót. Ennek értéke ’save’ és az aktuális dátum hónap és nap része. (pl.: saveapr_15 )
Létrehozunk egy könyvtárat
a /root/mentes/ könyvtárban,
melynek neve a MENTES változó tartalma.
Bemásoljuk a /home teljes
tartalmát a most létrehozott
könyvtárba az eredeti jogosultságokat megtartva.
Létrehozunk egy archív,
tömörített állományt a MENTES
változó nevével és tgz kiterjesztéssel, mely tartalmazza a mentendő
anyagokat.
Kitöröljük a most
létrehozott könyvtárat, mert már nincs rá
szükség.
Lecsatoljuk a
fájlrendszerről a most felcsatolt partíciót.
Az adatain így védve vannak
mind a felhasználók hibáitól,
mind a rendszer diszkek hardveres hibáitól. (Egyedül akkor van
probléma, ha a
mentést tartalmazó diszk „száll el” ...)
A fenti szkript nagyon
helypazarló és a műveleteket össze
lehetne vonni, de így talán jobban látszik az egyes műveletek hatása.
További fájlokkal kapcsolatos parancs még
az ln is, ami egy úgynevezett link
(kapcsolat) létrehozása. Ezzel az eljárással más helyeken és más néven
is
hivatkozhatunk egy fájlra, vagy könyvtárra. Ez például kompatibilitási
okok
miatt fontos lehet és helytakarékos is.
ln –s /dev/ttyS1 /dev/modem
A /dev/ttsS1 eszközfájlhoz létrehoztunk
egy kapcsolatot a
/dev/modem néven.
ln –s
/usr/local/public /home/szabob
A /usr/local/public könyvtárat becsatoltuk
a szabob nevű
felhasználó home könyvtárába. Így azt a hatást érjük el, mintha a
public az ő
könyvtárában létezne.
Miután tisztáztunk pár
alapfogalmat
a memória és lemez használatról, nézzük meg, hogy mi történik egy
rendszer
indításakor.
Az önteszt lefutása után
szintén a
PC BIOS-ában található betöltő rekord kereső program végignézi a
lemezeket,
hogy melyiknek a boot rekordjában van betöltő
program (boot loader). A winchesterek első lemezének első blokkja a
Master Boot Record. Ezen kívül minden
partíciónak is van egy boot rekordja (Super
Boot Record). A betöltő rekord kereső
először az MBR-t nézi meg, majd az ott talált betöltő
program a partíciós tábla alapján annak a partíciónak a
SBR-jére ugrik, ami bootolható. Az itt található program fogja indítani
az
adott operációs rendszert. A kernel összeállítása és fordítása kapcsán
beszélni
fogunk majd a lilo (Linux loader)
szerepéről. Miután lefordítottuk a kernelt, a lilo
program segítségével tudjuk azt betölthetővé tenni. A lilo
használhatja a merevlemez MBR-jét
(Master Boot Record), vagy a Linux partíció boot rekord-ját. Ha nincs
más boot
manager-ünk és a lilo segítségével
akarjuk bootolni az összes rendszerünket, akkor használjuk a master
boot
recordot. Ha már telepítve van egy másik boot manager, akkor a lilo-t célszerű a Linux partícióra
tenni. (Ilyenkor is kell a lilo a
Linux bootolásához és ilyenkor is képes a többi rendszert is
bootolhatóvá
tenni.)
Amikor a lilo
behúzza a kernelünket, az inicializálja a hardvert, betölti a szükséges
eszközvezérlőket és elindul az init
folyamat. Az init processz az első
processz, ami lefut induláskor. Ennek feladata többek között a
bejelentkezések
lehetővé tétele (getty futtatás), fájlrendszerek ellenőrzése, démonok
indítása.
Az init lehetővé
tesz egy, vagy több felhasználós működést, és különböző futási
szinteken tudja
indítani a rendszert. A futási szintek abban különböznek egymástól,
hogy milyen
programokat (szolgáltatásokat végző démonokat) indítunk.
Azt, hogy milyen futási szinten induljon a
rendszer, megadhatjuk
már a rendszer indulásakor is a következő formában a lilo
promptnál:
lilo: otthon 1
A fenti sor esetén a lilo
prompthoz az indítani kívánt rendszer címkéjének neve után meg kell
adni a
kívánt futási szintet.
A rendszer működése közben is válthatunk
futási szintet egy
terminálon root-ként kiadva az init
futási szint utasítást:
init 3
A fenti sor utasítja a rendszert, hogy
térjen át a 3. futási
szintre arról, ahol éppen fut.
A futási szinteket 0-tól 6-ig különbözteti
meg a Linux.
A 0 futási szint a rendszer leállítására
való. Ilyenkor az
init leállítja a többi processzt, lecsatolja a fájlrendszereket, stb.
Az 1 futási szint az úgynevezett egy
felhasználós mód,
amiben a rendszer csak a root felhasználót engedi bejelentkezni egy
konzolról,
a többi felhasználó nem jelentkezhet be. Ezt a szintet szerviz
üzemmódnak is
szokás hívni.
2-5 futási szintek a normál működési
szintek. A
különbségeket a rendszer adminisztrátora határozhatja meg azzal, hogy
az egyes
szinteken milyen programok induljanak. Ennek módjáról az alábbiakban
még lesz
szó.
A 6 futási szintet az újraindításra szokás
használni.
A kernel behúzása után tehát az init processz fog indulni. Ez elindít „néhány” szkriptet.
A
/etc/inittab fájlt kell először megnézni ahhoz, hogy lássuk, mik
indulnak el.
Ez a fájl az init konfigurációs
állománya.
A fájl felépítése a szokásos: néhány ’#’
jellel induló
„komment” sor megmagyarázza, hogy az alatta lévő sor mit tesz, mi a
funkciója.
Az egyes sorok 4 mezőre vannak
kettőspontokkal felosztva. Az
első mező egy címke, sok jelentősége nincsen, de egyedinek kell lenni.
(A getty indításoknál ez mondja meg, hogy
hányadik terminálon fut a getty.)
A második részben fel vannak sorolva a
futási szintek, ahol
futnia kell a negyedik részben megadott programnak. (Pl: 2345 azt
jelenti, hogy
az adott program fusson a 2, 3, 4, 5 futási szinteken is.)
A harmadik részben megmondjuk, hogy hogyan
fusson a negyedik
részben megadott program. (respawn –induljon újra ha kilépett; once –
csak
egyszer fusson; wait – csak egyszer fusson és várjon amíg befejeződik;
powerwait; powerfailnow; powerokwait; stb.)
Pl:
1:2345:respawn:/sbin/getty 38400 tty1
A 2-3-4-5 futási szinteken induljon a
getty program és ha
kilép, akkor induljon újra (hogy további felhasználók is
bejelentkezhessenek
ezen a terminálon).
Ebben a fájlban van egy sor, amit külön
szeretnék még a
részletesebb tárgyalás előtt kihangsúlyozni:
si::sysinit:/etc/init.d/rcS
A sysinit
utasítja a rendszert, hogy még mielőtt bármi mást elindítana nézze meg
a
/etc/init.d/rcS fájlt és hajtsa végre annak utasításait. Ha ezekkel
végzett,
akkor mehet tovább a fájl többi részére. (Ilyenkor szokás például
ellenőrizni a
fájlrendszert is.)
Egy tipikus /etc/inittab fájl így néz ki:
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.8 1998/05/10 10:37:50 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem
#-- isdnutils begin
# Change the lines below for your local setup and uncomment them.
# Use "init q" to reread inittab.
# look at the vboxgetty / mgetty manpage for more information (mgetty isn't
# standard!)
#
#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -
#-- isdnutils end
Az alábbiakban nézzük meg néhány fontos
részletét a fájlnak.
id:2:initdefault:
A sor megadja, hogy a 2 futási szint
induljon el normál
működés esetén.
si::sysinit:/etc/init.d/rcS
A sor megadja, hogy a /etc/init.d/rcS
szkript fusson le
először minden indításkor (kivéve szerviz üzemmódban).
~~:S:wait:/sbin/sulogin
A sor megadja, hogy szerviz üzemmódot
indítva várjon a root
jelszóra. Nagyon fontos dolog ez, mert valami oknál fogva nem minden
disztribúció tartalmazza és ha valaki a rendszert szerviz módban
indítja, akkor
e nélkül a sor nélkül nem szükséges a root jelszó ismerete a root jogú
bejutáshoz!
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
A fenti sorok megadják, hogy az egyes
futási szinteken a
/etc/rc.d/ könyvtárban lévő rcx (x=0,1,2,3,4,5,6) könyvtárakban lévő
szkriptek
induljanak el automatikusan.
Ha megnézünk egy ilyen könyvtárat, akkor S
és K kezdetű
sorokat látunk és a kezdő betűk után számok vannak. Az S kezdetűek a
szint
indulásakor futnak le a számok növekvő sorrendjében, a K kezdetűek a
szint
leállításakor. (A megoldás disztribúciófüggő.) Ide mi is felvehetünk és
letörölhetünk az igényeinknek megfelelő programokat.
A futási
szinteken induló programok meghatározására létezik több X alatti
program, pl a
SuSE disztribúcióban a SysV Init
szerkesztő, melynek segítségével könnyen határozhatjuk meg az egyes
induló
programok listáját:
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
A sor megadja, hogy mi történjen a
Ctrl+Alt+Del gombok
megnyomásakor az 1, 2, 3, 4, 5 futási szinteken.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
A fenti sorok az UPS jelzéseire reagálnak,
ha az tud
kommunikálni a rendszerünkkel.
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
A fenti sorok getty
programot indítanak különböző futási szinteken összesen 6 db virtuális
terminált biztosítva a bejelentkezéshez. (Adhatunk még többet, vagy
csökkenthetjük a virtuális terminálok számát.)
T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem
Ha modemen keresztül akarunk bejelentkezni
a gépre, akkor
szükség van a mgetty programra, mely
a paraméterben megadott soros vonalon tesz lehetővé bejelentkezést.
(Használhatjuk FAX-ok fogadására is. Ha azt akarjuk hogy csak FAX-ok
hívására
válaszoljon, akkor a –F kapcsolót is használnunk kell. Erről bővebben a
FAX-ról
szóló fejezetben fogunk beszélni.)
Ha valamilyen változtatásra van szükség az
inittab-ban,
akkor a fájl újra olvastatásához adjuk ki a
init q
parancsot, vagy a
kill -HUP 1
parancsot.
Egy rendszerüzenet a kernel indulásakor:
Memory: sized by int13 088h
Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
pcibios_init : BIOS32 Service Directory structure at 0x000fda60
pcibios_init : BIOS32 Service Directory entry at 0xf6a83
pcibios_init : PCI BIOS revision 2.10 entry at 0xf6c40
Probing PCI hardware.
Calibrating delay loop.. ok - 199.48 BogoMIPS
Memory: 30720k/32768k available (852k kernel code, 384k reserved, 812k data)
Swansea University Computer Society NET3.035 for Linux 2.0
NET3: Unix domain sockets 0.13 for Linux NET3.035.
Swansea University Computer Society TCP/IP for NET3.034
IP Protocols: IGMP, ICMP, UDP, TCP
VFS: Diskquotas version dquot_5.6.0 initialized
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Linux version 2.0.36 (root@goliat) (gcc version 2.7.2.3) #3 Tue Jul 13 09:35:38 CEST 1999
Starting kswapd v 1.4.2.2
Serial driver version 4.13 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16550A
tty01 at 0x02f8 (irq = 3) is a 16550A
lp1 at 0x0378, (polling)
PS/2 auxiliary pointing device detected -- driver installed.
APM BIOS not found.
loop: registered device at major 7
ide: i82371 PIIX (Triton) on PCI bus 0 function 33
ide0: BM-DMA at 0x0500-0x0507
ide1: BM-DMA at 0x0508-0x050f
hdc: MATSHITA CR-587, ATAPI CDROM drive
ide1 at 0x170-0x177,0x376 on irq 15
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
(scsi0) <Adaptec AIC-7850 SCSI host adapter> found at PCI 7/0
(scsi0) Narrow Channel, SCSI ID=7, 3/255 SCBs
(scsi0) Downloading sequencer code... 412 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.11/3.2.4
<Adaptec AIC-7850 SCSI host adapter>
scsi : 1 host.
Vendor: HP Model: 2.13GB A 50-300U Rev: VCOD
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
(scsi0:0:0:0) Synchronous at 10.0 Mbyte/sec, offset 15.
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4165272 [2033 MB] [2.0 GB]
PPP: version 2.2.0 (dynamic channel allocation)
TCP compression code copyright 1989 Regents of the University of California
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
eepro100.c:v0.99B 4/7/98 Donald Becker Linux-eepro100@cesdis.gsfc.nasa.gov
eth0: OEM i82557/i82558 10/100 Ethernet at 0xf8e0, 00:60:B0:67:6D:80, IRQ 9.
Board assembly 673610-001, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x49caa8d6).
Receiver lock-up workaround activated.
eepro100.c:v0.99B 4/7/98 Donald Becker Linux-eepro100@cesdis.gsfc.nasa.gov
Partition check:
sda: sda1 sda2
VFS: Mounted root (ext2 filesystem) readonly.
Adding Swap: 64224k swap-space (priority -1)
Miután a kernel elindult és az init
folyamat lefutott, a gép
készen áll a működésre, akár be is lehet jelentkezni.
A rendszer leállítása is szigorú szabályok
szerint történik. A
leállítási folyamatot a shutdown
program végzi. Először is minden processznek tudni kell róla, hogy most
rendszerzárás következik, tehát zárjon le minden nyitott fájlt, mielőtt
kilép.
Ez nagyon fontos, mert ha nyitott fájlok maradnak, akkor azok
sérülhetnek a
leállás során. A Linux nem ír mindent azonnal a lemezre, az adatok jó
része a
memóriában van és ha ezek nincsenek visszaírva a lemezre, akkor
elvesztek. Mi
is utasíthatjuk a Linuxot, hogy írja ki a lemezre a memória tartalmát
(szinkronizálás) a sync parancs
kiadásával. Miután minden fájl le van zárva, a rendszer leállítja a
futó
processzeket és végül küld egy üzenetet a konzolra hogy le lehet
kapcsolni a
számítógépet.
A shutdown program
használata nagyon egyszerű.
shutdown -h +10 'Mindenki lépjen ki, a rendszer 10 perc múlva leáll!'
Ez egy üzenetet küld minden bejelentkezett
felhasználónak és 10
perc múlva leállítja a gépet. Az üzenet többször megismétlődik
automatikusan a
lezárás előtt egyre gyakrabban.
Ugyanez a ’h’ helyett ’r’ kapcsolóval azt
jelenti, hogy a
rendszer leáll és újra indul.
A shutdown -h now
rögtön elkezdi leállítani a rendszert.
Használhatjuk a halt
parancsot a leállításhoz és a reboot
parancsot az újraindításhoz. Alapesetben a Ctrl+Alt+Del kombináció is
újraindít. (lásd inittab fájl)
Ha nem helyesen állítjuk le a
rendszerünket, akkor a fájlok
sérülhetnek!
Mint minden több felhasználós rendszerben,
a Linuxban is meg kellett
oldani a felhasználók egymástól való elszeparálását, a felhasználói
jogosultságok kezelését. Az init folyamat ismertetésénél ott hagytuk
abba, hogy
a rendszerünk készen áll a felhasználók fogadására.
Az init ismertetésénél már volt szó a getty programról. Ez a program a felelős azért, hogy a felhasználók be tudjanak jelentkezni a virtuális terminálokon. A program nem csinál mást, csak figyel és vár a felhasználó nevének begépelésére. Ha ez megtörténik, akkor elindítja a login programot, ami kéri a felhasználót, hogy azonosítsa magát, ha az elő van írva számára (és persze ez erősen ajánlott). (A login program a /etc/passwd és –ha létezik- /etc/shadow fájlokat használja. Ezekről később lesz szó.) Ha az azonosítás sikeres, akkor elindítja a felhasználónak szánt shellt a login, ami a /etc/passwd fájlban van megadva számára.
Ha a /etc/nologin fájl létezik, akkor nem lehetséges semmilyen bejelentkezés. (Ezt a fájlt a rendszer automatikusan létrehozza pl egy leállítási procedúra kezdetén, de mi is létrehozhatjuk.) Bejelentkezés előtt a terminálon a /etc/issue fájl tartalma fog kiíródni. Sikeres bejelentkezés esetén a /etc/motd tartalma íródik ki és az új levelek ellenőrzése jön a /var/spool/mail könyvtárban. (Ha létezik a felhasználó könyvtárában a .huslogin fájl, akkor ez felülbírálja a fentieket.)
Fontos fájlok még a /var/run/utmp és a
/var/log/wtmp. Az
előbbi tárolja az éppen bejelentkezett felhasználók információit, az
utóbbi
pedig minden sikeres bejelentkezést rögzít. (Célszerű törölni néha.)
Ha a felhasználó befejezi a munkát és
kilép, akkor a getty program is kilép, de mivel az
inittab fálban úgy állítottuk be, hogy azonnal induljon újra, amint
kilépett,
máris újra képes felhasználókat fogadni.
Az inittab tárgyalásánál láttuk, hogy
alapesetben 6 db
virtuális terminál indul. Ennek száma természetesen módosítható. Az
egyes
virtuális terminálok között az Alt+Funkció billentyűkkel tudunk váltani.
A soros vonalon keresztüli terminálon való
bejelentkezéseket
is a getty program kezeli.
A modemen keresztüli bejelentkezéseket a mgetty program kezeli. Természetesen
mindegyik típusú bejelentkezési formát az inittab fájlban állítsuk be a
RENDSZER INDÍTÁSA című fejezetben ismertetett módon.
A hálózaton keresztüli bejelentkezés
kicsit másképp működik.
Itt egy fizikai vonalat használ mindenki, ezért nem a fent ismertetett
eljárást
kell követni. A kapcsolat úgy jöhet létre, hogy a két gép valamilyen
programja
akar kommunikálni egymással. A kommunikáció több fajta protokollon
keresztül
mehet. Az éppen szükséges „hátteret” egy mindig futó program (démon),
az inetd fogja megteremteni. Ő fogadja az
igényeket és indítja a szükséges szolgáltatást. Azt, hogy milyen
szolgáltatást
vagyunk hajlandók biztosítani, a /etc/inetd.conf fájlban határozhatjuk
meg.
Egy tipikus /etc/inetd.conf fájl:
# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet server configuration database
#
#
# Lines starting with "#:LABEL:" or "#<off>#" should not
# be changed unless you know what you are doing!
#
# If you want to disable an entry so it isn't touched during
# package updates just comment it out with a single '#' character.
#
# Packages should modify this file by using update-inetd(8)
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
discard stream tcp nowait root internal
discard dgram udp wait root internal
daytime stream tcp nowait root internal
daytime dgram udp wait root internal
time stream tcp nowait root internal
time dgram udp wait root internal
#: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
#:BSD: Shell, login, exec and talk are BSD protocols.
shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd
login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind
exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd
#talk dgram udp wait nobody.tty /usr/sbin/tcpd /usr/sbin/in.talkd
#ntalk dgram udp wait nobody.tty /usr/sbin/tcpd /usr/sbin/in.ntalkd
#:MAIL: Mail, news and uucp services.
smtp stream tcp nowait mail /usr/sbin/exim exim -bs
pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.qpopper
#:INFO: Info services
#finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd
ident stream tcp nowait nobody /usr/sbin/identd identd -i
#:BOOT: Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot
#bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
#:RPC: RPC based services
#mountd/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.mountd
#rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rstatd
#rusersd/2-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rusersd
#walld/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rwalld
#:HAM-RADIO: amateur-radio services
#:OTHER: Other services
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
afbackup stream tcp nowait root /usr/sbin/afserver server /etc/afbackup/server.conf
amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexd
amidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped
vboxd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vboxd
amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad
A rendszer alapértelmezés szerint
valószínűleg több
szolgáltatást engedélyez, mint amire nekünk szükségünk van, tehát jól
nézzük át
ezt a fájlt, mielőtt "közkézre" bocsátjuk a szerverünket.
A szolgáltatások elérését a
/etc/hosts.allow és /etc/hosts.deny
fájlokkal tudjuk szabályozni.
Ha nem léteznek,
akkor nem veszi figyelembe a rendszer, de ha léteznek, akkor csak a
tartalmuk
szerinti hozzáférés biztosított a szerverünkhöz.
hosts.deny
Ebben a fájlban
azt adjuk meg, hogy melyek azok a gépek, amik nem férhetnek hozzá az
itt
megadott INET szolgáltatáshoz. Legjobb, ha mindent megtiltunk
mindenkinek, majd
a hosts.allow fájlban szabályozottan engedélyezzük a hozzáférést.
A hosts.deny fájl
tipikus tartalma:
ALL: ALL
hosts.allow
Ebben a fájlban
megadhatjuk, hogy mely gépekről férhetnek hozzá szerverünk valamely
INET
szolgáltatásához. (telnet, finger, ftp,
exec, rsh, rlogin, tftp, talk)
ipop3d: 192.168.1.0/255.255.255.0
Elérik a pop3
szolgáltatást a belső 192.168.1.0 hálózatunkról.
in.telnetd: 192.168.1.0/255.255.255.0
EXCEPT UNKNOWN PARANOID
Lehet telnetelni a
belső hálóról, de csak azokról a gépekről, ahol a
névkiszolgálónkban
megadott név-IP hozzárendelés megfelelő.
in.ftpd: 192.168.1.0/255.255.255.0
Lehet ftp
szolgáltatást használni a belső hálózatról.
A szolgáltatásokat
a /etc/inetd.conf fájlban találjuk.
Nagyon fontos tényező, hogy ha a gépen fut
az xdm (vagy kdm) grafikus
bejelentkezést lehetővé tevő program, akkor arra NEM
hat a fent tárgyalt korlátozás! Ezért jól gondoljuk meg, hogy
szükséges-e egy
szerverként használt gépen ennek használata. (A grafikus felületet
kézzel
bármikor elindíthatjuk.)
Amikor a bejelentkezés megtörténik, akkor
a bejelentkező nevet
megkapja a login program. Ezek után
az bekéri a felhasználó jelszavát és ellenőrzi. Az ellenőrzést a
/etc/passwd
fájl alapján tudja elvégezni, mert ez a fájl tartalmazza a felhasználó
nevét és
jelszavát. Mint látni fogjuk, a passwd fájl további információkat
tartalmaz a
felhasználóról, amiknek hozzáférhetőknek kell lenni mindenki számára.
Tehát a
jelszavak is olvashatóak mindenki számára. Ezért a jelszavak kódolva
vannak.
Mivel a kódolás megfejtése pusztán idő kérdése, ezért használja a
legtöbb Linux
rendszer a /etc/shadow fájlt a jelszavak tárolására. Ebben a fájlban a
felhasználók neve és jelszava van szintén kódolt formában, ezen kívül
még
bejegyzés található itt a jelszó érvényességi idejéről, a módosítás
szükségességéről és csak a root tudja olvasni és azok a programok,
amiknek erre
szüksége van. Az egyes mezőket kettőspont választja el egymástól.
Mindenképpen
ajánlott az "árnyék jelszavak" használata biztonsági okok miatt.
Egy részlet a
/etc/shadow fájlból:
root:0ai4kkRxLcvlo:10768:0:10000::::
bin:*:8902:0:10000::::
daemon:*:8902:0:10000::::
lp:*:9473:0:10000::::
firewall:*:8902:0:10000::::
named:*:8902:0:10000::::
nobody:*:0:0:10000::::
szabob:1WAq46svzKJFI:10771:0:10000::::
andi:OaaKbBTvjQ4nU:10719:0:10000::::
Egy részlet a /etc/passwd fájlból:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash
firewall:x:41:31:firewall account:/tmp:/bin/false
informix:x:43:34:Informix Database Admin:/usr/lib/informix:/bin/bash
named:x:44:44:Nameserver Daemon:/var/named:/bin/bash
szabob:x:500:100:Példa felhasználó SuSE Linux 6.1:/home/szabob:/bin/bash
andi:x:501:100:Szabó F Andrea:/home/andi:/usr/bin/passwd
Az első mező a felhasználó login nevét
(bejelentkező nevét)
tartalmazza.
A második mezőben csak egy x-et látunk. Ez
jelzi nekünk, hogy
árnyék jelszavakat használunk. Egyébként itt lenne a jelszó kódolt
formában.
A harmadik mező a felhasználó azonosító
számát tartalmazza (User
ID)
A negyedik mezőben van a felhasználó
csoportjának azonosító
száma (Group ID)
Ezeket a számokat a rendszer használja az
azonosításra a
karaktersorozatok helyett.
Az ötödik mező tartalmazza a felhasználó
teljes nevét.
A hatodik mező megadja a felhasználó
könyvtárát.
A hetedik mező a felhasználó belépésekor
futtatandó programot
adja meg. Ez általában egy shell szokott lenni, de bármi lehet.
Pl. ha nem akarjuk megengedni egy
felhasználónak, hogy a
szerveren bármit csináljon egy shell programban, de a felhasználó
elérheti a
szervert mint fájl szerver, web szerver, levelező szerver, akkor ide
írhatjuk a
/usr/bin/passwd programot. Ezzel
elérjük a kívánt hatást, sőt ha a felhasználó be akar jelentkezni a
szerverre,
akkor megteheti, de csak a jelszavát tudja megváltoztatni és már ki is
léptettük. Ha egyáltalán semmilyen módon nem akarjuk, hogy bejelentkező
„shellje„ legyen, akkor ide írjuk a /dev/null fájlt.
Ha a felhasználó sikeresen azonosította
magát és belépett a
rendszerbe, akkor következik a shell indítása, környezetének a
beállítása. Ezt
rendszertől függően több fájl végzi. Mi most az általánosan
elterjedteket
fogjuk megmutatni.
A /etc/profile fájl tartalmazza azokat a
beállításokat, amik
miden felhasználóra vonatkoznak. (PATH, alias nevek, különböző
környezeti
változók, amik mindenki számára érvényesek.)
Példa egy /etc/profile fájlra:
# /etc/profile
PROFILEREAD=true
umask 022
# adjust some limits (see bash(1))
#ulimit -c 20000 # only core-files less than 20 MB are written
#ulimit -d 15000 # max data size of a program is 15 MB
#ulimit -s 15000 # max stack size of a program is 15 MB
#ulimit -m 30000 # max resident set size is 30 MB
ulimit -c 0 # don't create core files
ulimit -d unlimited
if [ -z "$KSH_VERSION" ]; then
# ksh does not support this command.
ulimit -s unlimited
fi
ulimit -m unlimited
#
# make path more comfortable
#
MACHINE=`test -x /bin/uname && /bin/uname --machine`
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin
for DIR in ~/bin/$MACHINE ~/bin ; do
test -d $DIR && PATH=$DIR:$PATH
done
test "$UID" = 0 && PATH=/sbin:/usr/sbin:$PATH
for DIR in /usr/openwin/bin \
/usr/lib/java/bin \
/var/lib/dosemu \
/usr/games/bin \
/usr/games \
/opt/gnome/bin \
/opt/kde/bin ; do
test -d $DIR && PATH=$PATH:$DIR
done
test "$UID" = 0 || PATH="$PATH:."
export PATH
#
# set some environment variables
#
POVRAYOPT=-l/usr/lib/povray/include
export POVRAYOPT
if test -n "$TEXINPUTS" ; then
TEXINPUTS=":$TEXINPUTS:~/.TeX:/usr/doc/.TeX"
else
TEXINPUTS=":~/.TeX:/usr/doc/.TeX"
fi
export TEXINPUTS
PRINTER='lp'
export PRINTER
LC_CTYPE=de_DE
export LC_CTYPE
LESSCHARSET=latin1
export LESSCHARSET
LESS=-M
export LESS
LESSKEY=/etc/lesskey.bin
export LESSKEY
LESSOPEN="|lesspipe.sh %s"
export LESSOPEN
MINICOM="-c on"
export MINICOM
MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man
for DIR in /usr/openwin/man \
/usr/man/allman \
/usr/man/de \
/usr/man/es \
/usr/man/fr \
/usr/man/it \
; do
test -d $DIR && MANPATH=$MANPATH:$DIR
done
export MANPATH
#
# some applications do not handle the XAPPLRESDIR environment correctly,
# when it contains more than one directory. More than one directory only
# makes sense, when you have a client with a nfs mounted /usr and want
# to configure applications machine dependend. Uncomment if you want this.
#
#XAPPLRESDIR="$XAPPLRESDIR:/var/X11R6/app-defaults:/usr/X11R6/lib/X11/app-defaults"
#export XAPPLRESDIR
#
# set INFOPATH to tell xemacs where he can find the info files
#
INFODIR=/usr/local/info:/usr/info
INFOPATH=$INFODIR
export INFODIR INFOPATH
#
# this stuff is recommended for old motif apps.
#
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
export XKEYSYMDB
XNLSPATH=/usr/X11R6/lib/X11/nls
export XNLSPATH
#HOSTNAME="`hostname`"
#export HOSTNAME
NNTPSERVER=`cat /etc/nntpserver 2> /dev/null`
export NNTPSERVER
# time until a complete key sequence must have arrived
# ESCDELAY=2000
# export ESCDELAY
if [ -d /usr/openwin/lib ] ; then
OPENWINHOME=/usr/openwin
export OPENWINHOME
fi
if [ -x /usr/bin/dircolors ] ; then
#
# set up the color-ls environment variables:
#
if test -f ~/.dir_colors ; then
eval `dircolors -b ~/.dir_colors`
elif test -f /etc/DIR_COLORS ; then
eval `dircolors -b /etc/DIR_COLORS`
fi
fi
# do not save dupes in the bash history file
HISTCONTROL=ignoredups
export HISTCONTROL
#
# make sure that teTeX is found.
#
if [ -f /usr/lib/teTeX/texmf.cnf ] ; then
TETEXDIR=/usr/lib/teTeX
PATH=$PATH:/usr/bin/TeX
export TETEXDIR PATH
fi
# Further options for the 'ls' command are in /etc/DIR_COLORS.
unalias ls 2>/dev/null
if test "$UID" = 0 ; then
LS_OPTIONS='-a -N --color=tty -T 0';
else
LS_OPTIONS='-N --color=tty -T 0';
fi
export LS_OPTIONS
if test -n "$ZSH_VERSION" ; then
alias ls='eval /bin/ls $LS_OPTIONS'
else
alias ls='ls $LS_OPTIONS'
fi
alias dir='ls -l'
alias ll='ls -l'
alias la='ls -la'
alias l='ls -alF'
alias ls-l='ls -l'
# Handle emacs
if test "$EMACS" = "t" ; then
LS_OPTIONS='-N --color=none -T 0';
tset -I -Q
stty cooked pass8 dec nl -echo
fi
alias o='less'
alias ..='cd ..'
alias ...='cd ../..'
alias +='pushd .'
if [ -z "$KSH_VERSION" ]; then
alias -- -='popd'
fi
alias rd=rmdir
alias md='mkdir -p'
alias unix2dos='recode lat1:ibmpc'
alias dos2unix='recode ibmpc:lat1'
alias unzip='unzip -L'
alias which='type -p'
function startx { /usr/X11R6/bin/startx $* 2>&1 | tee ~/.X.err ; }
#
# Midnight Commander needs this to run in color mode
#
COLORTERM=1
export COLORTERM
# for rcs
# export VERSION_CONTROL=numbered
PAGER=less
export PAGER
if test -z "$EMACS" ; then
if [ -n "$ZSH_VERSION" ]; then
precmd ()
{
if test "$UID" = 0; then
PS1="%m:`pwd -r` # "
else
PS1="%n@%m:`pwd -r` > "
fi
}
fi
fi
# I had problems using 'eval tset' instead of 'TERM=', but you might want to
# try it anyway. I think with the right /etc/termcap it would work great.
# eval `SHELL=/bin/sh; tset -sQ "$TERM"`
if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then
TERM=Linux
fi
if test -f /etc/organization ; then
ORGANIZATION="`cat /etc/organization`"
export ORGANIZATION
fi
#
# nearly no known program needs $TERMCAP - 'Slang'-programs get confused
# with a set $TERMCAP -> unset it.
# unset TERMCAP
#
# set prompt
#
#PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/usr/bin/pdksh" -o "$SHELL" = "/usr/bin/ksh" -o "$SHELL" = "/bin/ksh" ]; then
PS1="! $ "
elif [ -n "$ZSH_VERSION" ]; then
PS1="%m:%~%# "
elif [ "$SHELL" = "/usr/bin/ash" -o "$SHELL" = "/bin/ash" ]; then
PS1="$ "
elif [ -n "$BASH_VERSION" ] ; then
# set -P
set -p
if test "$UID" = 0 ; then
PS1="\h:\w # "
else
PS1="\u@\h:\w > "
fi
# PROMPT_COMMAND='PS1=`if test "$UID" = 0 ; then \
# echo "\h:\`pwd -P\` # " ; \
# else \
# echo "\u@\h:\`pwd -P\` > " ; \
# fi `'
# export PROMPT_COMMAND
else
PS1='\h:\w \$ '
#PS1='\u \w \$ '
fi
PS2='> '
ignoreeof=0
export PS1 PS2 ignoreeof
if [ -n "$KSH_VERSION" ]; then
if [ -r /etc/ksh.kshrc ]; then
. /etc/ksh.kshrc
fi
if [ -r $HOME/.kshrc ]; then
. $HOME/.kshrc
fi
fi
#
# now source the stuff, generated by SuSEconfig
#
test -e /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
#
# now source profile extensions for special packages
#
test -d /etc/profile.d && \
{
for s in /etc/profile.d/*.sh ; do
test -r $s && . $s
done
}
#
# and now let's look if there is a local profile (for stuff not done in
# SuSE Linux).
#
test -e /etc/profile.local && . /etc/profile.local
Ha a felhasználó saját könyvtárában van
egy .profile fájl, akkor
a felhasználó itt a saját ízlése alapján kialakíthat magának egy
belépési
környezetet, felül is bírálhatja a /etc/profile fájlt.
Példa egy .profile fájlra:
# .profile is read for all login shells
# all other interactive shells will read .bashrc
# So read .bashrc also from .profile and make all changes to .bashrc.
# Then you should always have your correct setup.
test -z "$PROFILEREAD" && . /etc/profile
if test -f ~/.bashrc; then
. ~/.bashrc
fi
#
# some people don't like fortune. If you have humor, please enable it by
# uncommenting the following lines.
#
#if [ -x /usr/bin/fortune ] ; then
# echo
# /usr/bin/fortune
# echo
#fi
A Linux rendszerben az általánosan
elterjedt shell program
(parancsértelmező program) a bash.
Ha ez indul, akkor ez is megnéz több init
fájlt a felhasználó home könyvtárában. A .bash_profile fájl további
környezeti beállításokat tesz lehetővé a felhasználónak. Láthatjuk,
hogy rögtön
az elején megnézi, létezik-e a .bashrc és ha igen, akkor végrehajtja az
ott
található további utasításokat.
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
ENV=$HOME/.bashrc
USERNAME=""
export USERNAME ENV PATH
Egy .bashrc fájl tartalma:
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
A .bash_history fájlban az eddig kiadott
shell parancsaink
találhatóak. Néha nem árt törölni a tartalmát…
Ha egy felhasználót létrehozunk, akkor a
/etc/skel könyvtár
tartalma automatikusan bemásolódik a könyvtárába. Tehát ezzel a
módszerrel
automatizálhatjuk a kezdeti környezetek beállítását.
ls -al /etc/skel/
total 114
drwxr-xr-x 6 root root 1024 May 8 23:12 .
drwxr-xr-x 25 root root 3072 Sep 18 02:39 ..
-rw-r--r-- 1 root root 5742 Dec 8 1998 .Xdefaults
-rw-r--r-- 1 root root 46 May 7 1996 .Xmodmap
lrwxrwxrwx 1 root root 10 May 8 23:12 .Xresources -> .Xdefaults
-rw------- 1 root root 0 May 18 1996 .bash_history
-rw-r--r-- 1 root root 1296 Jul 24 1997 .bashrc
-rw-r--r-- 1 root root 0 Nov 20 1995 .dayplan
-rw------- 1 root root 0 May 8 1996 .dayplan.priv
-rw-r--r-- 1 root root 208 Nov 17 1995 .dvipsrc
-rw-r--r-- 1 root root 4022 Jul 13 1998 .emacs
-rw-r--r-- 1 root root 1168 Feb 3 1998 .exrc
-rw-r--r-- 1 root root 5376 Aug 28 1996 .gimprc
drwx------ 2 root root 1024 May 8 23:12 .grok
drwxr-xr-x 2 root root 1024 May 8 23:12 .hotjava
-rw-r--r-- 1 root root 7924 Oct 7 1997 .jazz
-rw-r--r-- 1 root root 164 Nov 17 1995 .kermrc
-rw-r--r-- 1 root root 10376 Sep 1 1996 .lyxrc
-rw-r--r-- 1 root root 2070 Nov 17 1995 .nc_keys
-rw-r--r-- 1 root root 492 Aug 8 1997 .profile
drwx------ 2 root root 1024 May 8 23:12 .seyon
-rw-r--r-- 1 root root 42 Apr 25 1996 .stonxrc
-rw-r--r-- 1 root root 99 May 16 1997 .susephone
-rw-r--r-- 1 root root 8 Nov 17 1995 .tex
-rw-r--r-- 1 root root 10972 Nov 17 1995 .uitrc.console
-rw-r--r-- 1 root root 9394 Nov 17 1995 .uitrc.vt100
-rw-r--r-- 1 root root 9394 Nov 17 1995 .uitrc.vt102
-rw-r--r-- 1 root root 10687 Nov 17 1995 .uitrc.xterm
-rw-r--r-- 1 root root 7913 Nov 30 1995 .xcoralrc
drwxr-xr-x 2 root root 1024 May 8 23:12 .xfm
-rwxr-xr-x 1 root root 1870 Dec 10 1998 .xinitrc
-rw-r--r-- 1 root root 795 Sep 7 1998 .xserverrc.secure
-rwxr-xr-x 1 root root 1714 Dec 10 1998 .xsession
-rw-r--r-- 1 root root 119 Oct 28 1997 .xtalkrc
-rw-r--r-- 1 root root 10 Nov 17 1995 .zsh
A felhasználók karbantartására több
program is elterjedt. Az adduser programmal könnyen
létrehozhatunk egy új felhasználót.
Használata:
adduser usernév
Néhány rendszerben ez után pár kérdésre
kell felelni, mint pl a
felhasználó teljes neve, telefonszáma, irodaszáma, stb, de nem minden
rendszerben igaz ez.
A jelszó beállítására a passwd
program szolgál.
Ha paraméter nélkül adjuk ki, akkor az
aktuális felhasználó
jelszavát módosítjuk, ha passwd usernév
alakban adja ki pl a root felhasználó, akkor a usernév által
meghatározott
felhasználó jelszava állítható be.
A passwd és az adduser programok paraméterezése
általában minden disztribúcióban más és más, de maguk a programok
léteznek.
Természetesen mindezek beállítására, a felhasználói accountok (számlák) karbantartására minden
disztribúcióban van X felületen működő grafikus segédprogram is.
A felhasználók csoportokba szedhetők. Egy
felhasználó
természetesen több csoportba is tartozhat. Ennek a fájlok
hozzáférésének
szabályozásában van szerepe. A csoportok összeállítását a /etc/group
fájl
tartalmazza.
Részlet
egy /etc/group fájlból:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
users:x:100:andi,zsolt,moni,adel,szabob
Az első mező a
csoport nevét tartalmazza.
A második mező a
csoport jelszavát (ha van)
A harmadik mező a
csoport azonosító száma (Group ID)
A negyedik mező a
csoportba tartozó felhasználók nevei vesszővel elválasztva.
X alatti
karbantartásra is sok program létezik.
A KDE User Manager-e
A unix rendszerekben van lehetőség az időzített parancs végrehajtásra. Minden felhasználó készíthet ilyen időzítést, mi itt a rendszer által használt időzítőt nézzük meg, amit a root felhasználó kezel. A működési mechanizmus követi a megszokott Linux konvenciókat. Van egy démon, ami a feladatot végrehajtja és ennek van egy konfigurációs állománya, amiből a végrehajtandó feladatokat és azok körülményeit megtudja. A futtatandó parancsok a /etc/crontab fájlban vannak, a megvalósításért a crond démon felel. Ezt egyszerűen csak el kell indítani a szokásos módok valamelyikén.
Kézzel kiadva a /etc/init.d/cron start parancsot, vagy –ez a logikusabb indítási mód- a futási szintnek megfelelő rcx fájlból indíthatjuk).
A többi a crontab fájl beállításán múlik.
Ha valamit
módosítunk, ne felejtsük el újraindítani a cron-t.
Ennek felépítése nem túl bonyolult.
Beállíthatunk a crond számára bizonyos környezeti
változókat. Pl. milyen shellt használjon, milyen könyvtár elérési
utakat
használjon, melyik felhasználónak küldjön levelet a végrehajtott
parancsok
kimenetéről.
Ezek után következhetnek a végrehajtandó
utasítások sorai. A
sorok szintaktikája a következő:
5 darab idő-dátum mező után jön a
parancsot futtató
felhasználó neve (a felhasználói név csak a rendszer crontab-ban), majd
ezt
követi a futtatandó parancs.
A dátum-idő mezők jelentése balról jobbra:
perc; óra; hónap hányadik napja; hónap; a
hét hányadik napja
Ha szám van a megfelelő helyen, akkor
ebben az időben
hajtódik végre, ha *, akkor ezen minta szerint nincs szűrés.
A példában látható első sor jelentése:
Minden nap 6óra 15 perckor kiadja a root
felhasználó a diald.init start parancsot.
A három csillag jelentése: mindegy, hogy a
hónap hányadik
napja van, mindegy, hogy hányadik hónap van, mindegy, hogy a hétnek
hányadik
napja van.
A harmadik sor jelentése:
Minden hét pénteken 17 órakor leáll a
szerver.
A két csillag jelentése:
Mindegy, hogy hányadika van, mindegy, hogy
milyen hónap van.
A negyedik sor jelentése:
Minden hónap első napján 3 óra 2 perckor a
root elindítja a mentes szkriptet.
A csillagok jelentése:
Mindegy, milyen hónap van, mindegy, hogy a
hétnek hányadik
napja van.
Az utolsó négy sort a rendszer előre
elkészíti, ebben
találhatóak azok a feladatok, amiket a rendszer automatikusan végrehajt
óránként, naponként, hetente és havonta. Ez természetesen megint csak
disztribúciófüggő és a rendszergazda által módosítható.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
15 6 * * * root /etc/rc.d/init.d/diald.init start
00 17 * * * root /etc/rc.d/init.d/diald.init stop
00 17 * * 5 root halt
02 3 1 * * root /root/mentes
02 * * * * root date >> /var/log/squid/access.log
01 * * * * root run-parts /etc/cron.hourly
03 1 * * * root run-parts /etc/cron.daily
02 2 * * 0 root run-parts /etc/cron.weekly
02 3 1 * * root run-parts /etc/cron.monthly
A linuxban, mint minden
unix
rendszerben a hálózati eszközöket egy-egy interfészen keresztül érjük
el.
Ezeket ismerni kell a kernelnek. Például az ethernet hálózati kártyák
nevei
eth0, eth1, eth2, stb. A ppp eszközök (modemek) ppp0, ppp1. A ppp
elődje a slip
eszközök eszközfájljai a sl0, sl1, stb.
Minden TCP/IP kommunikációban részt vevő eszközhöz tartozik egy IP cím. Ez a cím 4 darab 8 bites részből áll pontokkal elválasztva egymástól. (0-tól 255-ig lehetnek itt számok.) Ennek a címnek semmi köze a hardverhez, teljesen független tőle. Bármikor módosítható. A lényeg az, hogy egyedi legyen a hálózaton belül. Ha a hálózatunk el van zárva a külvilágtól, akkor teljesen mindegy, milyen tartományból választunk gépcímeket, ha viszont az Interneten vagyunk, akkor az ott elfogadott szabályokhoz kell tartani magunkat. Az IP címeket –pontosabban a címtartományokat- a NIC (Network Information Center) tartja karban. Minden IP tartományt igénylő szervezetnek ő oszt ki még szabad tartományokat. Ez persze nem azt jelenti, hogy nekünk egyenesen hozzájuk kell fordulnunk, hiszen mi „végfelhasználónak” számítunk. Ha fel akarunk építeni egy hálózatot, akkor szükségünk van egy ilyen IP cím tartományra. Ezt nekünk majd az Internet szolgáltatónk adja abból a szeletből, amit ő kapott az ő szolgáltatójától és így tovább a NIC-ig. (Ha csak egy gépünk van, akkor nem kell tartomány, elég egy IP cím is.) Így soha semmilyen cím nem keveredhet össze, hiszen felülről lefelé szépen mindenki tudja, hogy mi a hatásköre, milyen tartomány felett gazdálkodhat közvetlenül. A szabályokat pedig nem érdemes megszegni, hiszen akkor biztosan mi húzzuk a rövidebbet, mert nem illeszkedünk a jól felépített rendszerbe és kimaradunk a szolgáltatásaiból –automatikusan kizárjuk magunkat.
Tehát egy IP cím 4 darab 8 bites szám
ponttal elválasztva
egymástól.
Pl.: 193.6.21.241
Egy ilyen számnégyes két részre bontható.
Hálózatra
vonatkozó rész és a gépre vonatkozó rész. A fenti példában a 193.6.21.
lehet a
hálózati rész, ami azt jelenti, hogy az ezen a hálózaton lévő minden
gépnek
ugyanez a hálózati címe. A 241 egy gépet azonosít ezen a hálózaton.
Ekkor a hálózat címének mondjuk a 193.6.21.0
címet, a gép címe pedig 241.
A hálózati rész nagysága alapján hálózati osztályokról beszélhetünk.
A osztály:
1.0.0.0
tól 127.0.0.0-ig Az
utolsó 3 szám a gép azonosítója.
B osztály:
128.0.0.0-tól 191.255.0.0-ig
Az utolsó két szám a gép azonosítója.
C osztály:
192.0.0.0-tól 223.255.255.0-ig Az utolsó szám a gép
azonosítója.
D,E,F osztályokról is
beszélhetünk, de ezek nem hivatalosak.
224.0.0.0-tól 254.0.0.0-ig.
Ez a felosztás nekünk annyit jelent, hogy
ha kaptunk egy C
osztályú tartományt, akkor 254 gépnek adhatunk egyedi címet. (Csak az
utolsó
számot változtathatjuk szabadon a hálózatunkon, az első három kötött a
mi
számunkra.) Ha van egy B osztályú tartományunk, akkor 65024 darab gépet
üzemeltethetünk egyedi IP-vel. (Itt az utolsó két szám szabad a
gépeinknek, az
első kettő kötött.) Jogos lenne a kérdés, hogy miért nem 256-ot, vagy
miért nem
65536-ot? Mert vannak minden hálózatban speciális, ki nem osztható
címek:
Az egyik a hálózat
címe, ami úgy áll elő, hogy a gépcím rész csupa 0. (Minden bit 0)
A másik a broadcast
cím, ami – általában - úgy áll elő, hogy a gépcím rész csupa 255.
(Minden
bit 1) A broadcast (üzenetszórás) minden gépre vonatkozó cím.
Tehát például, ha üzemeltetünk egy C
osztályú hálózatot,
akkor a példánkhoz visszakanyarodva a hálózat címe: 193.6.21.0 A
hálózat
broadcast címe: 193.6.21.255. És persze a gépet egyedileg azonosítja a
241
szám.
Van még két speciális hálózati cím:
0.0.0.0
Az alapértelmezett
útvonal (default route). Az IP csomagok útvonal választásához van
rá
szükség. A későbbiekben visszatérünk rá.
127.0.0.0 A gépen belüli IP forgalom
számára van fenntartva.
Ez az úgynevezett visszahurkolási hálózat
(loopback). Ha nincsen hálózatba kötve a gépünk, akkor is kell egy
ilyen
hálózat néhány szoftver számára. Ehhez tartozik egy speciális hálózati
interfész, a loopback (visszahurkoló)
interfész. Ezt lo-val jelöljük és címe 127.0.0.1 .
Vannak speciális címtartományok, amik
nincsenek hivatalosan
kiosztva, tehát semmilyen szervezet számára nincsenek lefoglalva. Ez
azért jó
nekünk, mert ezeket a tartományokat szabadon felhasználhatjuk gépeink
számára
anélkül, hogy bármilyen más szervezet érdekeit sértenénk. A
későbbiekben látni
fogjuk, hogy az esetek nagy többségében bőven elég egy cégnek, vagy más
szervezetnek egyetlen hivatalosan bejegyzett IP cím, attól még jól
működő IP
hálózatot üzemeltethet sok géppel.
Ezek a tartományok:
A osztályú 10.0.0.0
B osztályú 172.16.0.0-172.31.0.0
C osztályú 192.168.0.0-192.168.255.0
(Pl.: 192.168.1.0 egy általánosan
elterjedt C osztályú
tartomány.)
Hálózatunkat bonthatjuk további alhálózatokra, ha az segíti az átláthatóságot. Például B
osztályú
tartományunkat tovább bonthatjuk 254 db C osztályúra. Ilyenkor a gép
címéből
nem derül ki, hogy az milyen értékek között mozoghat.
Ennek felismerésében segít a hálózati
maszk (netmaszk). A netmaszk ugyanolyan felépítésű, mint
az IP cím. Megadja az IP cím hálózati részének a bitmaszkját. (1
szerepel azon
a helyen, ami a hálózati címet takarja a 4x8 bit felírásában és 0 ott,
ahol a
módosítás megengedett a gép címének meghatározásában.)
Pl.:
B osztályú címtartomány:
131.0.0.0, vagy 142.12.0.0
11111111.11111111.00000000.00000000
Tehát a netmaszk
255.255.0.0, mert az első két részben semmit nem módosíthatok.
C osztályú címtartomány:
192.0.0.0, vagy 192.168.1.0
11111111.11111111.11111111.00000000
Tehát a netmaszk
255.255.255.0, mert az első három részben semmit nem módosíthatok.
Ha C osztályú tartományunkat bontjuk pl 4
darab alhálózatra,
akkor az alhálózatok így alakulnak:
Hálózat címe
gépcímek
lehetnek broadcast
cím netmaszk
I.
192.168.1.0
1-62
192.168.1.63
255.255.255.192
II.
192.168.1.64
65-126
192.168.1.127
255.255.255.192
III
192.168.1.128
129-190
192.168.1.191
255.255.255.192
IV
192.168.1.192
193-254
192.168.1.255
255.255.255.192
A netmaszk azért
így néz ki, mert az első három részben semmit nem módosíthatok és az
utolsó
részekben is csak 63 hozzáférhető cím van (az alhálózati címekkel
együtt).
Tehát
11111111.11111111.11111111.11000000
Azaz 255.255.255.192
Csak azok a gépek tudnak közvetlenül
kommunikálni egymással,
amelyek egy alhálózaton vannak. (Tehát melyeknek a hálózati címe
azonos.) Ha
azt akarjuk, hogy több alhálózat gépei is kommunikálhassanak egymással,
akkor
egy úgynevezett átjárót (egy gateway-t)
kell alkalmazni. Az átjáró lehet egy közönséges
számítógép
is, amiben annyi hálózati interfész van, ahány hálózathoz tartozik. A
fenti C
osztályú bontott hálózatot alapul véve az itt felállított átjáró
minimum 4
darab hálózati interfészt tartalmaz a 4 alhálózat kiszolgálására (routolására). Az ilyen forgalomirányító
számítógépeket routereknek nevezik.
Tehát a router hálózati interfészei a kliensek felől nézve a hozzájuk
kirendelt
gateway.
Ezek célszerűen lehetnek például az egyes
alhálózatok első
kiosztható címei.
Tehát
eth0
192.168.1.1
eth1
192.168.1.65
eth2
192.168.1.129
eth3
192.168.1.193
Tehát ha egy IP csomag elindul az I
hálózatról (pl.: a
192.168.1.5 gépről) és el kell jutnia a 192.168.1.131 címre (ami a III
hálózaton van), akkor a küldő gép látni fogja, hogy nincsen a címzett
az ő
hálózatán. Ha nem lenne a router gép, akkor nem tudná eljuttatni a
csomagot a
megfelelő címre. Ennek a küldő gépnek tudnia kell, hogyha egy olyan
címre küld
csomagot, ami nincsen az I hálózaton, akkor a 192.168.1.1 IP című gépre
kell
küldenie, mert ő fog vele boldogulni, tehát az I hálózat gépeinek a
192.168.1.1
a gateway. A II hálózat gépeinek a
192.168.1.65 gép a gateway, a III
hálózat gépeinek a 192.168.1.129 és a IV hálózat gépeinek a
192.168.1.193 az átjáró. (Ez természetesen mind
ugyanazon
a router gépen van, de az egyes
alhálózatok gépei csak egy-egy kártyát látnak a 4-ből.) Ha az így
felépített
rendszerünk kapcsolatban van a külvilággal, akkor a routerbe
célszerű még egy interfészt tenni, ami a külvilággal
tartja a kapcsolatot.
eth4
193.21.10.3
Ez a kártya a 193.21.10.0 C osztályú
hálózat része. Ezen keresztül
a mi hálózatunk összes gépe is elérheti ezt a hálózatot.
Célszerű a routernek
megadni egy alapértelmezett átjárót
az olyan címek kezelésére, amit ő nem ismer fel. (Nincsen egyik olyan
hálózaton
sem, ahova ő kapcsolódik.)
Például ez az alapértelmezett átjáró lehet
egy másik router, ami már más hálózatokat is lát
és persze az ő egyik interfésze és a mi routerünk
egyik interfésze ugyanazon a hálózaton van. Ő lesz a mi routerünk
számára az alapértelmezett
átjáró, a default gateway. (0.0.0.0 hálózat, lásd feljebb)
Egy hálózati interfész konfigurálását az ifconfig programmal végezhetjük el.
ifconfig
INTERFÉSZNÉV
IPCÍM netmask NETMASZK broadcast BROADCASTCÍM
Pl
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
Ezt a parancsot kiadva a rendszerünk tudni
fog a
bekonfigurált hálózati kártyáról.
Ezek után meg kell adni az útvonal
választási információkat
is számára, azaz melyik a default gateway
a külső kapcsolatok elérésére és mely hálózatot hogyan érhet el.
Ezt a route
paranccsal tehetjük meg.
Hogy tudjon kommunikálni a 192.168.1.0
hálózat gépeivel,
adjuk ki a
route add –net 192.168.1.0 eth0
parancsot. (Ha 2.2.xx kernelt használunk,
akkor ezt a
parancsot nem kell kiadni, de nem baj, ha kiadjuk.)
Ha a hálózat ezen szegmensének a
192.168.1.1 gép az
alapértelmezett gateway, akkor adjuk
ki a
route add default gw 192.168.1.1
Ha van egy hálózat, amit nem az
alapértelmezett átjárón
érünk el, akkor külön is megadhatjuk:
route add 10.0.0.0 gw 192.168.1.100
Itt utasítjuk a gépet, hogy ha a 10.0.0.0
hálózattal akar
kommunikálni, akkor azt a 192.168.1.100 címen teheti meg. (Ezt a
hálózati
kártyát tartalmazó gépben van egy másik, ami a 10.0.0.0 hálóhoz
tartozik és ez
fog routolni arra felé.
A loopback interfész konfigurálása
ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add –net 127.0.0.0
Tehát így néz ki egy tipikus linuxos gép
hálózati
konfigurációja.
A beállításokat el is menthetjük egy
fájlba, ami automatikusan
lefut minden indításnál. Ez megint csak disztribúciófüggő, Debian alatt
a
/etc/init.d/network fájl az.
A tipikus Win’xx gépeknél csak arra kell
figyelni, hogy az
IP cím be legyen állítva és a default gateway is be legyen állítva.
Az
átjáró telepítve legyen a TCP/IP lapon!
Ha a gépet routerként
használjuk, akkor a következő az eljárás.
Először is A /etc/lilo.conf fájlban fel
kell venni a
következő sort:
append=”ether=IRQ,IOADDR,eth0 ether=IRQ,IOADDR,eth1 stb…”
Ahol IRQ és IOADDR az egyes hálózati
kártyák által használt
IRQ és I/O címek. (Pl.: append=”ether=5,0x300,eth0 ether=9,0x220,eth1”
Majd természetesen adjuk ki a lilo
parancsot és indítsuk újra a szervert.
Ez egy /etc/init.d/network szkript
tartalma Debian alatt egy
router számára.
#! /bin/sh
ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add -net 127.0.0.0
(loopback interfész)
ifconfig eth0 193.1.1.100 netmask 255.255.255.0 broadcast 193.1.1.255
route add -net 193.1.1.0 eth0
(eth0 interfész és a 193.1.1.0 hálózat elérése)
(2.2.xx kernelnél nem fontos a route kezdetű sor)
ifconfig eth1 192.168.1.254 netmask 255.255.255.0 broadcast 192.168.1.255
route add -net 192.168.1.0 eth1
(eth1 interfész és a 192.168.1.0 hálózat elérése)
(2.2.xx kernelnél nem fontos a route kezdetű sor)
route add default gw 192.168.1.1 eth1
Az alapértelmezett átjáró a 192.168.1.1
gépen van és az et1
kártyán keresztül érhető el.
Azt hiszem ennyi információ elegendő egy routert is tartalmazó hálózat
összeállításához.
A linuxban van egy érdekes lehetőség. Az IP aliasing használata. Ezzel úgy
használhatunk EGY hálózati kártyát, mintha az TÖBB lenne. A kernel
fordítás
fejezetben utalunk rá, hogy a hálózati tulajdonságoknál csak be kell
fordítani
az IP aliasing-ot és máris használhatjuk.
Ha az eth0 interfészt két IP hálózatban is
használni
akarjuk, akkor fel kell venni rá egy eth0:0 virtuális interfészt.
Egyszerűen minden konfigurációs parancsban
ezzel kell rá
hivatkozni. A fenti példa így néz ki egy hálózati kártyával:
#! /bin/sh
ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add -net 127.0.0.0
(loopback interfész)
ifconfig eth0 193.1.1.100 netmask 255.255.255.0 broadcast 193.1.1.255
route add -net 193.1.1.0 eth0
(eth0 interfész és a 193.1.1.0 hálózat elérése)
ifconfig eth0:0 192.168.1.254 netmask 255.255.255.0 broadcast 192.168.1.255
route add -net 192.168.1.0 eth0:0
(eth0:0 virtuális interfész és a 192.168.1.0 hálózat elérése)
route add default gw 192.168.1.1 eth0:0
Az alapértelmezett átjáró a 192.168.1.1
gépen van és az
eth0:0 virtuális kártyán keresztül érhető el.
A virtuális interfészek így oszthatók ki:
eth0
eth0:0
eth0:1
eth0:2
stb.
eth1
eth1:0
eth1:1
eth1:2
stb
Mint arról már beszéltünk, az interneten a gépek egyedi azonosítóval vannak ellátva. Ez az azonosító az IP cím. Minden bejegyzett gépet megtalálunk az interneten az IP címe alapján. A könnyebb megjegyezhetőség kedvéért a gépekhez egy nevet is rendelhetünk. Ez nem kötelező, de általában minden hálózatban van neve a gépeknek. Mivel ezek a nevek is teljesen egyediek, ezért ezekkel is lehet azonosítani a gépeket. A kérdés csak az, hogy milyen módszerrel lehet a neveket az IP címekkel összerendelni, azaz az egyes alkalmazások a gépnevek alapján hogyan tudják megtalálni a keresett gépet. Több módszer is van a feladat megoldására.
Az egyik legegyszerűbb, hogy a gépek tartalmaznak egy fájlt, ami leírja, hogy az egyes gépnevekhez milyen IP cím társul. Ez a /etc/hosts fájl. Ennek hátránya, hogy MINDEN gépen létezni kell a fájlnak, egyébként ahol nem létezik, ott nem tudunk a nevekkel dolgozni. Természetesen ez csak nagyon kevés számú gépet tartalmazó hálózatban működtethető hatékonyan és egyszerűen. Egy lokális, a külvilágtól elzárt rendszerben alkalmazható, de manapság már nem az ilyen típusú hálózatok az elterjedtek.
$ less /etc/hosts
127.0.0.1 localhost
192.168.1.254 goliat goliat.nitro.hu
194.5.2.1 peti
192.168.1.1 mail mail.nitro.hu
Erre ad egy jobb megoldást a NIS (Network
Information
System, vagy Yellow Pages). Ebben a rendszerben a hosts fájlt egy
kitüntetett
gépen tárolják és az összes többi a hálózaton lévő gép ezt az egy
adatbázist használja.
Ezzel megoldották azt a problémát, hogy ne kelljen minden módosításnál
az
összes gépen elvégezni a változtatást, de még mindig csak a helyi gépek
neveit
tartalmazza és nagy hálózatok kezelésére nem igazán alkalmas ilyen
szempontból.
Mármint a hostnevek ilyen fajta tárolása. Ugyanis gondoljunk bele, hogy
mi
lenne, ha az interneten található összes gép nevét egyetlen
adatbázisban
tárolnák. Milyen nehéz lenne a karbantartása egy ilyen rendszernek.
Maga a NIS
kiválóan alkalmazható UNIX (tehát LINUX is) hálózatban a központi
adminisztrációra. De az IP – név összerendelésről más módszerrel
célszerű
gondoskodni –ami persze használható a NIS-sel együtt.
A ma általánosan elfogadott névmeghatározó
rendszer a DNS (Domain Name System). A DNS
a gépneveket körzetekbe –doménekbe-
szervezi. Az egy doménbe tartozó gépekről tudhatjuk, hogy valamilyen
szempont
szerint ugyanahhoz a szervezethez tartoznak. Ilyen szervezet lehet egy
ország,
egy város, egy ország egyetemei, egy egyetem tanszékei, egy vállalat
telephelyei,
egy telephelyen működő osztályok, stb. A példákból látható, hogy nem
csak
egymás melletti domének vannak, hanem
egy-egy doménen belül lehet kialakítani aldoméneket.
A nevek ilyenfajta hierarchiába szervezése roppant egyszerűvé teszi a
nevek
kezelését. A DNS rendszerben egy gép nevének csak a doménjén belül kell
egyedinek lenni. És ez abszolút átláthatóságot biztosít a rendszer
adminisztrációjában. A legfőbb doméneket, amik közvetlenül a domén fa
gyökeréből ágaznak, egy központi helyen tartják nyilván. NIC (Network
Information Center)
Itt megadják, hogy az
egyes
doménekhez milyen IP címtartomány tartozik. Ezt az egyes domének gazdái
tudomásul veszik és a nekik kiszabott IP cím-domén tartományban
alkothatnak új
aldoméneket a nekik megfelelő módon tovább bontva ezt. Az aldomének
gazdái is
tudomásul veszik a korlátaikat. Így megy ez tovább egészen az utolsó
kis
vállalat, iskola aldomén rendszeréig, amit már a helyi rendszergazda
teljesen
átlát és könnyedén karbantart. Az egyes doménekről tárolt adatbázis
úgynevezett
névkiszolgáló számítógépeken Domain
Name Server-eken van. Ezek a szerverek mindent tudnak a hozzájuk
tartozó domén
gépeiről.
A gép neve és a doménneve együtt adja a
gép teljesen minősített doménnevét, ami az
egész világon egyedileg azonosítja a gépet.
(Pl.: mail.nitro.hu teljesen minősített
domén név. Ebből a
mail a gép neve, a nitro.hu a domén neve.)
Ezt most már értjük. Fentről lefelé
teljesen világos lehet
számunkra, hogyan megy a domén hierarchiába rendezés. De hogyan lehet
ezt
használni. Hogyan képes megtalálni egy a gépünkön futó alkalmazás azt a
gépet a
neve alapján, amit keres. Hogy igazodik ki ebben az óriási méretű
fában, amikor
annak ágai szinte teljesen önállóan nőnek és ágaznak tovább, mindenféle
központi irányítás nélkül.
A megoldást a névkiszolgálók működésében
kell keresni. Ha
egy alkalmazásnak kell egy gép címe a neve alapján, akkor a nevet
elküldi a
helyi névkiszolgálónak. Az megnézi,
hogy a név az ő körzetében van-e. Ha igen, akkor visszaadja a címét. Ha
nem,
akkor továbbadja a nevet egy másik névkiszolgálónak, ami számára meg
van adva,
mint alapértelmezett kiszolgáló. (Minden olyan nevet, amit nem tud
értelmezni,
ennek az úgynevezett forwarders-nek
küldi tovább.) Ez is megnézi a nevet. Ha tudja értelmezni, akkor
visszaadja a
címét, ha nem, akkor ő is tovább küldi egy másik, számára megadott
alapértelmezett kiszolgálónak. Ha nincs megadva valahol forwarders,
akkor egy úgynevezett gyökér névkiszolgáló biztosan
tudni fogja, hogy melyik
névkiszolgáló „foglalkozik” az általunk kért címmel. A gyökér
kiszolgálók a
domén hierarchia csúcsán (azaz gyökerén) vannak és mindig megbízhatóan
működnek.
Ezek után ez a név-IP páros eltárolódik a
helyi
névkiszolgáló cache-ében a további gyors felhasználhatóság érdekében.
Azt, hogy
mennyi ideig tárolja a cache-ben az adatot, egy konfigurációs fájlban
adhatjuk
meg, amiről az alábbiakban még szó lesz.
Általában minden helyi rendszerben, ahol
működik önálló
névkiszolgáló, ott legalább kettő működik. Ezek közül az egyik a fő (master) kiszolgáló, a többi a másodlagos
kiszolgáló. Ezek időnként az
elsődlegesből átveszik a zónára vonatkozó adatokat. Ez a felépítés a
jobb
terhelés elosztás miatt van így, másrészt, ha az elsődleges kiszolgáló
nem
működik valami miatt, akkor a rendszerben megállna az élet a másodlagos
kiszolgálók nélkül.
Szükség van arra is, hogy az IP cím
alapján keressünk nevet.
(Fordított keresés) Ha csak egy /etc/hosts fájlt használunk, akkor
semmi
probléma, a dolog egyszerűen működik. Name server használata estén
ilyenkor egy
úgynevezett in-addr.arpa domént használunk, ami tartalmazza az összes
IP címet
fordított pontozott jelöléssel, és a név kiszolgálók az ilyen típusú
adatbázisban keresnek. Pl egy 192.168.1.12 című gép in-addr.arpa neve
12.1.168.192.in-addr.arpa. Ennél jobban ebbe nem kell belemélyedjünk.
A feloldó egy függvény gyűjtemény, amely
képes arra, hogy
egy alkalmazás számára kikeresse a kért gép címét a neve ismeretében és
fordítva. Ez a feloldó könyvtár megtalálható minden Linux
disztribúcióban külön
telepítést nem igényel.
A host.conf fájl.
Ez a fájl a feloldót vezérlő központi
fájl. Megadja, hogy a
feloldó milyen sorrendben próbálja használni a név-IP összerendelést
segítő
szolgáltatásokat.
Az opciók a Linux többi konfigurációs
állományában megszokott
módon külön sorban vannak.
A használható opciók:
order
Megadja, hogy milyen sorrendben használja
a feloldó a
szolgáltatásokat. Egymás után vesszővel elválasztva kell megadni a
kívánt
sorrendben a bind, a hosts és a nis lehetőségeket. A bind a name
serverre
vonatkozik, a hosts a helyi gép /etc/hosts fájljára és a nis a NIS
szerverre. A
példában a feloldót arra utasítjuk, hogy először nézze mmeg a helyi gép
/etc/hosts adatbázisát és ha ott nem talál utalást, akkor kérjen a name
servertől segítséget.
trim
Ebben az opcióban megadhatunk egy domén
nevet, amely a
keresés előtt el lesz távolítva a gépnévről. Ez hasznos a hosts
bejegyzésekhez,
ahol csak gazdagép neveket akarunk megadni helyi domén nélkül. Egy
hozzáfűzött
helyi domén névvel rendelkező gazdagép keresése ezt el fogja távolítani
és így
megtalálja a gépet a /etc/hosts fájlban.
multi
Értéke on és off lehet. Megadja, hogy egy
gépnévhez
tartozhat-e több IP cím a /etc/hosts fájlban. (Nem befolyásolja a DNS,
vagy NIS
kéréseket.)
nospoof
Értéke on és off lehet. Az úgynevezett
átejtési kísérletek
kiszűrésére használható. Ha on értékre állítjuk, akkor a feloldó
megpróbálja
megakadályozni a gépnév átejtéseket megnövelve ezzel az rlogin, rsh,
stb
programok biztonságos használatát. A feloldó ellenőrzi, hogy az IP cím
tényleg
ahhoz a gazdagéphez kapcsolódik-e. Ha nem, akkor a kérést elutasítja és
hibajelzést kapunk.
alert
Lehetséges értékei on és off. Ha on
állásba kapcsoljuk
(alapértéke off) és a nospoof opció is on állásban van, akkor átejtés
esetén a
syslogban bejegyzést naplóz a rendszergazdának az átejtési kísérletről.
order hosts,bind
multi on
nospoof on
alert on
pl. /etc/host.conf fájl
Ha a /etc/host.conf fájlban arra utasítjuk
a feloldót, hogy
a name servert használja, akkor meg kell neki mondani, hogy melyiket.
Ezt
tehetjük meg ebben a fájlban. Ha nincs, vagy üres, akkor a feloldó
feltételezi,
hogy a name server a helyi gépen van.
A leggyakrabban használt opciók a domain,
a search és a
nameserver.
A nameserver után megadhatjuk a
névkiszolgáló IP címét. Több
egymás utáni sorban használhatjuk a nameserver opciót, így több
névkiszolgálót
beállíthatunk ebben a keresési sorrendben.
A domain opciót akkor célszerű használni,
ha nem minősített
neveket akarunk használni egy-egy alkalmazásban. (pl telnet mail, nem
pedig
telnet mail.nitro.hu) Ekkor az itt megadott doménen keresni fogja a
gépnevet.
Itt csak egyet adhatunk meg. Ennél kicsit használhatóbb a search opció.
Ebben
egymás után szóközzel elválasztva több domén is megadható, amiken végig
fogja
keresni a nem minősített neveket.
search nitro.hu vein.hu
nameserver 192.168.1.1
pl.: /etc/resolv.conf fájl
A feloldó konfigurálása után most nézzük
meg a Linux
névkiszolgálójának konfigurálását.
Indítás
A Linux a named
programot használja névkiszolgálóként. Egyszerűen beírjuk root
jogosultsággal a
prompthoz, hogy named, és a program
elindul. A legtöbb Linux disztribúció – sok más programhoz hasonlóan –
tartalmaz egy indító szkriptet a named
számára is. Célszerű ezen
keresztül indítani a name servert. (Debianban ez a szkript a
/etc/init.d/bind,
Red Hat-ben a /etc/rc.d/init.d/named.) Természetesen automatizálhatjuk
az indulást
egy megfelelő rcX.d könyvtárt használva. Ide csak a szokásos
szimbolikus linket
kell elhelyezni a named programra.
goliat:~# ls -al /etc/rc3.d/S19bind
lrwxrwxrwx 1 root root 14 May 31 14:29 /etc/rc3.d/S19bind -> ../init.d/bind
goliat:~#
A
Debian indító szkriptje:
#!/bin/sh
#
# Start or stop named
#
# Robert Leslie <rob@mars.org>
test -x /usr/sbin/named || exit 0
case "$1" in
start)
echo -n "Starting domain name service: named"
start-stop-daemon --start --quiet --exec /usr/sbin/named
echo "."
;;
stop)
echo -n "Stopping domain name service: named"
start-stop-daemon --stop --quiet \
--pidfile /var/run/named.pid --exec /usr/sbin/named
echo "."
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reloading named configuration..."
start-stop-daemon --stop --signal 1 --quiet \
--pidfile /var/run/named.pid --exec /usr/sbin/named
echo "done."
;;
force-reload)
$0 restart
;;
*)
echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}>&2
exit 1
;;
esac
exit 0
Látható a szkriptben, hogy milyen
paramétereket adhatunk.
Ha indítani akarunk:
/etc/init.d/bind
start
Leállítás:
/etc/init.d/bind
stop
Újraindítás:
/etc/init.d/bind
restart
Konfigurációs fájlok újraolvastatása: /etc/init.d/bind
reload
Induláskor a named.boot fájlt olvassa el a
named program, ami alapértelmezés
szerint a /etc könyvtárban található.
A named.boot fájl
Ez a fájl a névkiszolgálónak szóló
információkat tartalmaz.
Amikor a named programot indítjuk, akkor ez az a fájl, ami tartalmazza
számára
a legszükségesebb kiinduló információkat, például mik azok a zóna
fájlok, amik
a különböző olyan zónákról tartalmaz információkat, amiket neki ki kell
szolgálni.
Itt látható egy névkiszolgáló named.boot
fájlja.
;
; Boot file for the DNS
;
directory /etc/named
; type domain source host/file backup file
cache . named.root
primary 0.0.127.IN-ADDR.ARPA 0.0.127.IN-ADDR.ARPA.zone
primary nitro.hu nitro.hu.zone
primary 1.168.192.IN-ADDR.ARPA 1.168.192.IN-ADDR.ARPA.zone
forwarders 194.149.0.157
limit datasize 1M
check-names primary fail
check-names response ignore
A pontosvesszővel kezdődő sorok
megjegyzések, magyarázatok.
A ’directory’ opció megadja azt a
könyvtárat, ahol a named program konfigurációs fájljai
találhatóak. Tehát esetünkben a named
program ezentúl minden szükséges fájlt a /etc/named könyvtárban fog
keresni.
A ’cache’ opcióval beindítjuk a named program cache funkcióját. Mindenképen indítsuk el,
mert
egyébként rossz teljesítménnyel fog menni a névkiszolgálónk.
Argumentuma egy
doménnév (a gyökér domén, tehát mindig egy . (pont) legyen) és egy fájl
(általában
named.root), ahol a megbízható, általában mindig működő gyökér
névkiszolgálók nevei találhatók. (Lásd fentebb.)
Egy tipikus /etc/named.root fájl, ami
minden Linux
disztribúcióban megtalálható és tulajdonképpen nem kell hozzá nyúlni:
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Jan 22, 1997
; related version of root zone: 1997012200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; temporarily housed at NSI (InterNIC)
:
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 198.41.0.11
; End of File
A ’primary’ opcióban adhatjuk meg
argumentumként azoknak a
doméneknek a neveit, amiknek ez a névkiszolgáló elsődleges
kiszolgálója. És
azokat a fájlokat, amikben ezeknek a doméneknek a leírása található.
Egy doménnek általában mindig primary
kiszolgálója a name
server, mégpedig a 127.0.0.0 (visszahurkoló)hálózat fordított keresései
számára.
A példában ez a névkiszolgáló elsődleges
kiszolgálója a
nitro.hu doménnek, melynek zónafájlja a /etc/named/nitro.hu.zone és
ennek a
doménnek a visszafelé kereséséhez tartozó 1.168.192.IN-ADDR.ARPA
doménnek,
melynek zónafájlja a /etc/named/1.168.192.IN-ADDR.ARPA.zone fájl.
A ’forvarders’ opció argumentumában
megadhatunk egy IP
címlistát, mely további névkiszolgálókhoz tartozik. Ha a mi
névkiszolgálónk nem
tud feloldani egy lekérdezést, akkor ezekhez fordulhat, amíg valaki meg
nem
mondja a választ.
Példánkban a 194.149.0.157 IP című géphez
fordul a mi name
serverünk, ha ő maga nem tudja feloldani a kérést.
További gyakran használt opciók a
’secondary’ és a ’slave’.
Ha írunk egy ’secondary’ sort, akkor a mi név kiszolgálónkat kineveztük
egy
adott domén számára másodlagos kiszolgálónak. Ennek argumentumai a
domén neve
(akinek ő lesz a másodlagos kiszolgálója), és legalább egy (a domén
számára)
elsődleges kiszolgáló IP címe, ugyanis innen fogja megadott
időközönként
letölteni a domén számára vonatkozó információkat. Ha egy lekérdezést
egyik
elsődleges kiszolgáló sem old fel, akkor a domén számára kijelölt
másodlagos
kiszolgáló fogja megtenni.
A ’slave’ opcióval olyan kiszolgálóvá
alakítjuk name
serverünket, ami soha nem fog feloldást végezni önállóan, hanem minden
kérést
továbbít egy forwardersnek.
Ezek után végül nézzük meg, hogyan épülnek
fel a
zónainformációkat tartalmazó törzsfájlok.
A törzsfájlok
A DNS adatbázis több fájlból áll. Minden
adatbázisnak van
egy osztály azonosítója, ami megmondja, hogy milyen típusú hálózathoz
tartozik
(pl.: IN az IP címek meghatározásához). Az egyes fájlok egy-egy (origin) domént írnak le. (Amiket a
named.boot fájlban a cache és a primary opciókkal adtunk meg.) Ha erre
az (origin) doménre akarunk hivatkozni a
fájlon belül, akkor a @ jelet használjuk. A fájlon belül gépneveket
adhatunk
meg és doménneveket ehhez a doménhez képest. Ha abszolút nevet
szeretnénk
megadni, akkor . (pontal) kell zárni a nevet, egyébként ehhez a
doménhez
viszonyítunk. A fájlokon belül különböző típusú úgynevezett
forrásrekordok
vannak. A rekordok általános felépítése:
gép, vagy doménnév
class type
rdata
A class egy címosztály. Ha TCP/IP
hálózatot adminisztrálunk,
akkor IN re kell állítani.
A type a rekord típusa.
Az rdata a leírt doménhez, vagy géphez
tartozó adatot tartalmazza.
A type lehetséges értékei:
SOA
Egy jogosultsági zónát ír le. Minden
primary utasítással
megadott törzsfájlnak kell tartalmaznia egy SOA rekordot. Azt jelzi,
hogy az
itt lévő rekordok hiteles információt tartalmaznak a domén számára.
Részei:
origin
A domén elsődleges névkiszolgálójának
kanonikus gépneve.
contact
A domén karbantartásáért felelős személy
e-mail címe, de a @
jel helyett is . (pont) van.
serial
A fájl verziószáma. Ha az adatok
megváltoznak, akkor ezt a
számot is növeljük meg. Szokás még esetleg a dátumra utaló számot írni
ide.
refresh
Azt az időt adja meg másodpercekben mérve,
amilyen
gyakorisággal a másodlagos kiszolgáló frissíti az adatokat. (maximum 8
jegyű
szám) Ez napos nagyságrendű legyen.
retry
Az itt megadott időközönként próbálkozik
(szintén
másodpercben mérve) a másodlagos kiszolgáló a kapcsolat felvétellel az
elsődleges kiszolgálóval, ha az nem sikerült. Ez órás nagyságrendű
legyen.
expire
Ha a kapcsolat ennyi idő múlva sem jött
létre az elsődleges
kiszolgálóval, akkor a másodlagos kiszolgáló már figyelmen kívül hagyja
az
adatokat. Ez lehet több hónapos is.
minimum
Az alapértelmezett érték az olyan
forrásrekordokra, aminek
nincs külön megszabva, hogy az egyes névkiszolgálók mennyi ideig
tartsák bent a
cache-ükben a rá vonatkozó adatokat. Ha a hálózatunk nem gyakran
változik,
akkor ez lehet több hét is értelemszerűen. Ez is másodpercben van
megadva.
A
Ebben a rekordban egy IP címet rendelünk
össze egy névvel.
Ez lesz a gép kanonikus neve, az összes többi neve csak egy erre
vonatkozó
álnév lehet, melyet a CNAME rekorddal adhatunk meg. Minden géphez csak
egy A
rekord tartozhat.
NS
A zóna elsődleges névkiszolgálóját
adhatjuk meg itt. A gép
neve szerepel adatként ebben a rekordban. Ebből következik, hogy
szükség lehet
egy A rekordra is ennek a névnek a feloldására.
CNAME
Egy gép álneveit adhatjuk meg CNAME
rekorddal.
MX
A domén számára működő levélkiszolgálót
adja meg a
preferenciájával együtt.
PTR
Ez a rekord az in-addr.arpa doménben a
fordított
lekérdezésekhez adja meg a fordított IP címekhez (az in-addr.arpa
nevekhez) tartozó
gépneveket.
HINFO
A gép hardveréről és szoftveréről ad
információt. Az
érvényes bejegyzéseket az Assigned Numbers RFC-ből illik kiválasztani.
Ezek után lássunk két példa fájl darabot a
fent leírtakra.
A /etc/named/nitro.hu.zone fájl részlete a
név – IP lekérdezésekhez:
@ IN SOA mail.nitro.hu. szabob.mail.nitro.hu. (
19990422 ; Serial
10800 ; Refresh 3 hours
3600 ; Retry 1 hour
3600000 ; Expire 1000 hours
604800 ) ; Minimum 1 week
IN NS mail
IN MX 10 mail
Mail IN A 192.168.1.1
IN HINFO 2x686 Linux
zombi IN CNAME mail
proxy IN CNAME mail
www IN CNAME mail
ftp IN CNAME mail
billygate IN A 192.168.1.9
IN HINFO laptop
feri IN A 192.168.1.10
IN HINFO i586 Win'95
A /etc/named/2.168.192.IN-ADDR.ARPA.zone
fájl
részlete a fordított lekérdezésekhez:
@ IN SOA mail.nitro.hu. szabob.mail.nitro.hu. (
19990422 ; Serial
10800 ; Refresh 3 hours
3600 ; Retry 1 hour
3600000 ; Expire 1000 hours
604800 ) ; Minimum 1 week
IN NS mail.nitro.hu.
; RFC 1101 stuff
0 IN PTR nitro.hu.
IN A 255.255.255.0
; real hosts on the root
1 IN PTR mail.nitro.hu.
9 IN PTR billygate.nitro.hu.
10 IN PTR feri.nitro.hu.
11 IN PTR pisti.nitro.hu.
12 IN PTR tamara.nitro.hu.
Ennyi ismeret valószínűleg elegendő, hogy
saját name servert
állítsunk fel vállalatunk számára. Ha ezt megtettük, akkor az nslookup programmal könnyen
ellenőrizhetjük munkánkat. Használata rendkívül egyszerű. Ha egy nevet
adunk
paraméternek, akkor a hozzá tartozó címet kapjuk vissza, ha a címet
írjuk be,
akkor az ahhoz tartozó nevet. Természetesen csak akkor, ha jól működik
a name
server. Ha paraméter nélkül hívjuk meg, akkor párbeszédes módban
használhatjuk
a programot. Ennek nagyon sok lehetősége van, többek között name
servert
válthatunk a ns utasítás és az új name server nevének megadásával.
$ nslookup goliat
Server: mail.nitro.hu
Address: 192.168.1.1
Non-authoritative answer:
Name: goliat.nitro.hu
Address: 192.168.1.254
$ nslookup 192.168.1.254
Server: mail.nitro.hu
Address: 192.168.1.1
Name: goliat.nitro.hu
Address: 192.168.1.254
A számítógépes hálózatok egyik legalapvetőbb szolgáltatása az elektronikus levelezés. Különböző levélváltási szabványokat találtak ki. Az Interneten az RFC822-ben lefektetett szabványhoz tartja magát mindenki, aki azt akarja, hogy biztosan eljussanak a levelek a címzetthez. Nagy figyelmet fordítottak a multimédiás levelekre is, amik képeket, hangokat is tartalmaznak (MIME).
A UNIX rendszerekhez elég sok levéltovábbító programot készítettek. Ezek közül talán a legismertebbek a SENDMAIL és a SMAIL. A SENDMAIL fejlesztése a Berkeley egyetemen indult. Eredeti szerzője Eric Allman volt. A legtöbb LINUX disztribúció tartalmazza. A Linuxal legáltalánosabban használt levél ügynök a SMAIL, melyet Curt Landon Noll és Ronald S Karr írt szerzői joggal. Fontos megemlíteni az EXIM-et, egy másik levél ügynököt, amit a Universiti of Cambridge-en fejlesztettek. Ennek stílusa teljesen hasonló a SMAIL-hez, de a GNU GPL alá tartozik, és biztonságosabb. Részletesebben ezt fogjuk tárgyalni egyszerűsége és jó használhatósága miatt.
A Sendmail-hez képest a
Smail
nagyon fiatal. Ha egy kisebb hely levelezését szeretnénk megoldani nem
túl
bonyolult útválasztással, akkor célszerű a Smail-t vagy még inkább az
EXIM-et
használni, de a Sendmail sokkal összetettebb és rugalmasabb
konfigurációs
sémával rendelkezik. Konfigurációja nem könnyű feladat. (A program
referenciakönyve 792 oldal)
Egy levél általában egy üzenettörzsből
és a címzetteket, átviteli közeget, stb. meghatározó különleges
adatokat
tartalmazó részből, a fejlécből áll.
A legtöbb Linuxos levéltovábbító az RFC822-ben meghatározott sémát
használja.
Eredetileg az ARPANET-en való használatra szánták, de mivel
környezettől
független, ezért könnyen adaptálható volt más hálózatokra is, ideértve
az
UUCP-t is. Ezen felül már vannak újabb szabványok is, amik jobban
megfelelnek a
kor követelményeinek. (adattitkosítás, nemzeti karakterkészletek
támogatása,
multimédiás kiterjesztések (MIME)).
Ezekben a szabványokban a fejléc több
sorból áll és egy üres
sor választja el a levél törzsétől.
Általában az összes szükséges fejlécfájlt
a használt
levelező program állítja elő (pine, Pegasus, stb…) egyes sorok szoftver
függőek, másokat a levéltovábbító vesz fel a fejlécbe.
Egy tipikus fejléc:
From szabob@mail.nitro.hu Fri Jul 16 12:41:02 1999
Return-Path: <szabob@mail.nitro.hu>
Received: from mail.nitro.hu (sami.nitro.hu [192.168.1.16])
by mail.nitro.hu (8.8.7/8.8.5) with ESMTP id MAA12378
for <szamtech@mail.nitro.hu>; Fri, 16 Jul 1999 12:41:02 +0200
Message-ID: <378F0B5B.C6A33977@mail.nitro.hu>
Date: Fri, 16 Jul 1998 12:37:15 +0200
From: SZABÓ Bálint= <szabob@mail.nitro.hu>
Organization: Nitrogénművek Rt.
X-Mailer: Mozilla 4.51 [en] (Win95; I)
X-Accept-Language: en
MIME-Version: 1.0
To: szamtech@mail.nitro.hu
Subject: van listánk
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
Üdv mindenkinek! (Ez már a levél törzse…)
Az általános fejlécfájlok mezőinek
jelentése:
From:
A küldő e-mail címét és
esetleg a
„valódi nevét” tartalmazza. Sokféle formátum használatos itt.
To:
A címzett e-mail címe.
Subject:
Néhány szóban leírja a levél tartalmát
Date:
A levél elküldésének dátuma.
Reply-To:
Megadja azt a címet, ahova a küldő várja a
választ.
Organization:
Az a szervezet, akié a gép, ahonnan a
levél származik.
Message-ID:
A származási rendszeren lévő
levéltovábbítás által
létrehozott karakterlánc. Ez egyedi azonosító.
Received:
Mindegyik hely, amelyik feldolgozza a
levelünket (beleértve
a küldő és a címzett gépét) egy ilyen mezőt szúr be a fejlécbe, megadva
a hely
nevét, az üzenet azonosítóját, az üzenet vételének idejét és dátumát,
hogy
melyik helyről van szó, és melyik átviteli szoftvert használták. Ez
azért van,
hogy nyomon lehessen követni, melyik útvonalat választotta az üzenet.
X-bármi:
A levelezés-vonzatú programoknak nem
szabad panaszkodniuk az
X- kezdetű sorokra a fejlécben. Olyan szolgáltatások megvalósítására
használatosak, amiket még nem alakítottak RFC-vé, ill. nem is fognak.
Egy naplófájl részlete – avagy, amit egy
levélről tudni
kell…:
220 mail.nitro.hu ESMTP Sendmail 8.8.7/8.8.5; Wed, 31 Mar 1999 10:
EHLO mrelay.datanet.hu
250-mail.nitro.hu Hello pultilla [193.159.0.147], pleased to mee
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP
MAIL From:<borvirag@rkk.hu> SIZE=1357
250 <borvirag@rkk.hu>... Sender ok
RCPT To:<torma@mail.nitro.hu>
250 <torma@mail.nitro.hu>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Received: from relay.datanet.hu (localhost.datanet.hu [127.0.0.1])
by mrelay.datanet.hu (8.9.1a/8.9.1) with ESMTP id PAA10939
for <torma@mail.nitro.hu>; Tue, 30 Mar 1999 15:34:59 +0200 (
Received: from rkk.hu (boss.rkk.hu [193.224.110.2])
by relay.datanet.hu (8.9.1a/8.9.1) with ESMTP id PAA10931
for <torma@mail.nitro.hu>; Tue, 30 Mar 1999 15:34:56 +0200 (
Received: from boss.rkk.hu (localhost [127.0.0.1])
by rkk.hu (8.9.0.Beta5/8.9.0.Beta5) with SMTP id PAA31518;
Tue, 30 Mar 1999 15:33:14 +0200 (MET DST)
Date: Tue, 30 Mar 1999 15:33:14 +0200 (MET DST)
Message-Id: <199903301319.OAA12756@mgate1.mkogy.hu>
Errors-To: szemgy@rkk.hu
Reply-To: borvirag@rkk.hu
Originator: borvirag@rkk.hu
Sender: borvirag@rkk.hu
Precedence: bulk
From: "Nagy Arpad" <f01dapra@mkogy.hu>
To: Multiple recipients of list <borvirag@rkk.hu>
Subject: Ekezet
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikon
X-Comment: Borvirag-Lista
MIME-Version: 1.0
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=ISO-8859-2
Content-Transfer-Encoding: QUOTED-PRINTABLE
Igen Tisztelt Listatagok…
Elektronikus levelezésnél
a cím a
személy postáját kezelő gép nevéből és a rendszer által felismerhető
felhasználói azonosítóból áll. Ez lehet a címzett bejelentkező neve, de
bármi
más is. Az Internet helyek az RFC822-es szabványnak megfelelő
felhasználó@gazdagép.domén
formát követik.
Általában a levelet egy
levelező
interfésszel állítjuk össze. (Kivéve persze akkor, ha „betelnetelünk” a
25-ös
portra és bájcsevelyt folytatunk a levéltovábbító programmal a napló
fájl
elején láthatóhoz hasonló módon.) Ilyen interfész lehet a mail, elm,
pine, vagy
valamilyen grafikus felületű levelező program: Pegasus mail, Netscape
Communicator, Outlook) Ezek a programok a levelezési felhasználói
ügynökök
(MUA). Ha küldünk egy üzenetet, akkor a MUA egy másik programnak, a
levelezési
szállító ügynöknek (MTA) adja át a levelet továbbításra.
A levél helyi kézbesítése természetesen
többet jelent, mint
csupán a bejövő üzenet hozzáfűzése a címzett postaládájához. A helyi
MTA
általában érti az álnevet, valamint a továbbítást. A nem kézbesíthető
leveleket
vissza kell küldeni a feladónak egy hibaüzenet kíséretében.
Távoli kézbesítésnél a használt szállítási
szoftver a
kapcsolat természetétől függ. Ha a levelet TCP/IP hálózaton kell
továbbítani,
akkor általában SMTP-t használunk. (Simple Mail Transfer Protocol)
Egy üzenetnek a címzett gazdagéphez való
irányítását
útválasztásnak nevezzük. A küldő oldaltól a rendeltetési helyig való
útvonal
megtalálásán kívül hibaellenőrzést is magában foglal. Az interneten az
adatoknak a címzett gazdagépére küldésének fő feladatát az IP
hálózatkezelő
réteg végzi.
Az interneten teljesen a rendeltetési hely
gazdagépétől
függ, hogy valamilyen útválasztás egyáltalán végrehajtásra kerül-e.
Alapértelmezés szerint minden üzenetnek közvetlenül a rendeltetési hely
gazdagépére kell kerülnie az utóbbi IP címét kikeresve és az adatok
tényleges
útválasztását az IP szállítási rétegre bízva.
A legtöbb hely általában az összes
becsomagolt levelet egy
olyan, jól elérhető levelezési kiszolgálóra akarja irányítani, amely
képes
helyileg kezelni mindezt a forgalmat és elosztani ezt a postát. Ennek a
szolgáltatásnak a megjelenítésére a hely bejelent egy ún. MX rekordot a
DNS
adatbázisban a domén számára. Az MX (Mail Exchanger) ezzel bejelenti,
hogy
hajlandó leveleket továbbítani a domén gépei számára. (Ez helyi, céges
intraneten is működik, nem kell hozzá Internet)
Az MX rekordoknak van egy preferenciájuk
is. Ez egy pozitív
egész szám. Ha több elérhető MX van, akkor az MTA megpróbálja átadni a
levelet
a legkisebb preferenciájúnak és ha ez nem sikerül, akkor fogja átadni
egy
magasabbnak.
Lássunk egy rövid, egyszerű, de nagyon
hasznos gyakorlati
példát ennek alkalmazására.
Kapcsolt vonali Internet
szolgáltatás helyi hálózat számára
A legtöbb Internet szolgáltatónál elérhető szolgáltatás a „Kapcsolt vonali Internet szolgáltatás helyi hálózat számára”. Ennek lényege az, hogy pl. felállítunk egy céges intranetet egy helyi Linux szerverrel, rajta egy DNS, és egy MTA. (A DNS adatbázisban van egy IN MX 10 gazdagépnév bejegyzés) A szerver modemen kapcsolódik az internetre valamilyen kitárcsázási mechanizmussal.
A lényeg az, hogy az intraneten levő gépek a linuxot használják levelező szervernek, függetlenül attól, hogy a modemes kapcsolat él, vagy sem. A helyi felhasználóknak, vagy listákra küldött levelek azonnal továbbítódnak, a nem helyi doménen levő címzetteknek szóló levelek a szerveren várakoznak a kapcsolat felépültéig. A linuxon levő MTA szépen tárolja a leveleket, amíg fel nem épül a valódi Internet kapcsolat és csak azután fogja elküldeni a leveleket az IP-n keresztül.
Visszafelé ez úgy működik, hogy a szolgáltató DNS-ében be van jegyezve a mi levélszerverünk egy MX rekorddal, aminek preferenciája kisebb a szolgáltatóénál. Ha van kapcsolat, akkor – a kisebb preferencia miatt- a mi levél szerverünkre jönnek közvetlenül a levelek. Ha nem elérhető a mienk (nincs kapcsolatunk), akkor tárolja a leveleinket az ő szervere a kapcsolat felépüléséig. (A felhasználók a kapcsolat meglétéből/nemlétéből semmit nem fognak észre venni, csak azt, hogy a leveleik rendben odaérnek és ők is megkapják a nekik címzetteket és akkor küldenek levelet, amikor csak akarnak…) Ez a fajta megoldás hasznos lehet olyankor, ha mi magunk akarjuk karban tartani a felhasználóinkat, hiszen így „teljesen függetlenek” vagyunk a szolgáltatótól ilyen téren. Az ő feladata „csak” annyi, hogy tároljon minden olyan levelet, ami a mi doménünkre jött. Majd ha a kapcsolat létrejött és azt biztonságosnak tartja (pl. küld két próbalevelet és azok rendben átjöttek a helyi szerverre) akkor átpasszolja az összes levelet a helyi MTA-nak és az osztja szét a helyi felhasználóknak. Így gyakorlatilag minden intranetes felhasználónknak tudunk biztosítani e-mail lehetőséget abszolút minimális költséggel a szolgáltató felé. Cégünknél közel 240 felhasználó levelezését végzi egy ilyen szisztémával felépített Linux szerver teljesen hibamentesen. Gyakorlatilag gondozásmentes a levelező rendszerünk.
A felhasználói ügynök programok (levelező kliensek) megkövetelnek maguknak bizonyos csatolásokat. Néhány ilyen csatolásra mindenképpen szükségünk van:
goliat:~# ls -al /usr/sbin/rsmtp lrwxrwxrwx 1 root root 4 May 6 11:32 /usr/sbin/rsmtp -> exim
goliat:~# ls -al /usr/sbin/sendmail lrwxrwxrwx 1 root root 4 May 6 11:32 /usr/sbin/sendmail -> exim
goliat:~# ls -al /usr/sbin/rmail lrwxrwxrwx 1 root root 4 May 6 11:32 /usr/sbin/rmail -> exim
Az EXIM program része a Debian LINUX 2.1-es kiadásának. Ha ezzel együtt telepítjük, akkor a működéshez szükséges beállításokat a rendszer elvégzi.
Az indításhoz először el kell dönteni, hogy démonként futtatjuk az EXIM-et, vagy az inetd indítja minden egyes SMTP kérésre. A levélkiszolgálón célszerű démonként futtatni, mert így nem terheli meg annyira a rendszert, mintha minden egyes kérésre külön indítaná.
exim -bd -q30m
A fenti sorban démonként
indítottuk
az EXIM-et (-bd) és utasítottuk, hogy 30 percenként dolgozza fel a
várósorában
lévő üzeneteket. Ezzel a módszerrel szokás szerint indítható kézzel,
vagy a
kívánt rcX.d fájlból.
A DEBIAN alapbeállítás szerint az inetd-ből indítja a programot, mert alapbeállítás szerint nem feltételezi, hogy minden Linux gép levelező szerver.
A /etc/inetd.conf fájlban megtalálható a következő bejegyzés:
smtp stream tcp nowait mail /usr/sbin/exim exim –bs
Bármelyik megoldást is választjuk, a /etc/services fájlban szerepelni kell a következő sornak:
smtp 25/tcp mail
Ez meghatározza azt a TCP portszámot, amit az EXIM-nek használnia kell az SMTP párbeszédekhez. A 25-ös port szabvány.
Ha a LINUX rendszerünket egy LAN számára használjuk, mint levelező szervert, akkor a mai állapotok szerint az „általános, hétköznapi” LAN-on megtalálható gépek operációs rendszere nem mindig LINUX, hanem más gyártótól származó rendszer. Az ezeken a gépeken lévő levelező kliens programoknak el kell érniük valahogy a központi LINUX-on levő postaládákat. Ezt könnyítik meg a POP3 (Post Office Protocol version 3) és az IMAP (Interactive Mail Access Protocol) protokollok. Ezek lehetővé teszik, hogy a felhasználók egyszerű TCP/IP kapcsolaton keresztül érjék el a postaládáikat. Az IMAP hasonló a POP3-hoz, de általánosabb.
Ehhez a /etc/services fájlban szerepelni kell a következő soroknak:
pop-3 110/tcp # POP version 3
pop-3 110/udp
A /etc/inetd.conf fájlban pedig a
pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.qpopper
sornak. (A qpopper általában a DEBIAN disztribúcióban használatos a POP kezelésére, ha Redhat, vagy SuSE rendszert használunk, akkor ott a
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
sorból látszik, hogy a POP-ot az ipop3d kezeli.
Az EXIM program napló fájljait a /var/log/exim alatt találjuk. A mainlog és paniclog fájlok hasznos információkat szolgáltatnak hibás működés esetén.
Most pedig nézzünk meg az EXIM program konfigurációs lehetőségei közül néhány tipikus beállítást, amik segítségével egy intranet-Internet hálózat kényelmesen üzemeltethető.
Az EXIM egy kellemes szolgáltatása, hogy a szükséges /etc/exim.conf fájlt elő lehet állítani egy konfiguráló program segítségével (eximconfig), egyszerűen csak egymás után válaszolva a feltett kérdésekre. Nézzünk meg egy ilyen beállítást.
goliat:~# eximconfig
I can do some automatic configuration of your mail system, by asking
you a number of questions. Later you may have to confirm and/or correct
your answers. In any case, comprehensive information on configuring exim is
in the eximdoc package and in /usr/doc/exim/spec.txt
[---Press return---]
A program közli velünk, hogy ki is ő és mire képes. Be fog állítani fontosabb paramétereket a levelező rendszerünk működéséhez.
(1) Internet site; mail is sent and received directly using SMTP. If your
needs don't fit neatly into any category, you probably want to start
with this one and then edit the config file by hand.
(2) Internet site using smarthost: You receive Internet mail on this
machine, either directly by SMTP or by running a utility such as
fetchmail. Outgoing mail is sent using a smarthost. optionally with
addresses rewritten. This is probably what you want for a dialup
system.
(3) Satellite system: All mail is sent to another machine, called a "smart
host" for delivery. root and postmaster mail is delivered according
to /etc/aliases. No mail is received locally.
(4) Local delivery only: You are not on a network. Mail for local users
is delivered.
(5) No configuration: No configuration will be done now; your mail system
will be broken and should not be used. You must then do the
configuration yourself later or run this script, /usr/sbin/eximconfig,
as root. Look in /usr/doc/exim/example.conf.gz
Select a number from 1 to 5, from the list above.
Enter value (default=`1', `x' to restart):
A fenti lehetőségek a rendszerünk alap működési mechanizmusát fogja meghatározni.
Az első (ez az alapbeállítás is) egy egyszerű, internettel folyamatosan kapcsolatban lévő szervert feltételez. Válasszuk ezt akkor is, ha a többi lehetőséget elolvasva nem találjuk meg az „igazit” és majd kézzel elvégezzük a módosításokat.
Ha modemes kapcsolatban vagyunk az internettel, akkor a 2. pont lehet, hogy jobb választás. (pl ilyenkor érdemes esetleg a fetchmail-lel kombinálni a levelek összeszedését. Erről az alábbiakban még lesz szó.) Akkor is jó választás a 2. pont, ha egy „belső” levelező szervert állítunk fel, ami nem a saját körzetébe szóló leveleket a smarthost-ként megadott okos levélszerverre továbbít.
A 3. pont egy olyan levélszerver sémát ad, ami nem fogad leveleket és az innen küldött leveleket szintén a smarthost-ként megadott gép kezeli.
A 4. lehetőséget választva csak helyi levéltovábbítás lesz, internetre küldeni nem lehet.
Az 5. választással nem konfigurálunk levelezést. Ez azért nem túl jó ötlet, mert a rendszer üzeneteit (amiket levélben küld nekünk) sem fogjuk megkapni.
Tehát minimum a 4. pontot válasszuk, de mi most az egyszerűség kedvéért az 1.-t választjuk.
======================================================================
What is the `visible' mail name of your system? This will appear on
From: lines of outgoing messages.
Enter value (default=`goliat.nitro.hu', `x' to restart):
Mi legyen az a név, ami a kimenő levelek FROM sorában látható. Itt alapesetben a gép nevét adja meg, de mondhatunk neki mást is.
=======================================================================
Does this system have any other names which may appear on incoming
mail messages, apart from the visible name above (goliat.nitro.hu)
and the system's hostname (goliat.nitro.hu) ?
By default all domains will be treated the same; if you want different
domain names to be treated differently, you will need to edit the config
file afterwards: see the documentation for the "domains" director
option.
If there are any more, enter them here, separated with spaces or commas.
If there are none, say `none'.
Enter value (default=`none', `x' to restart): nitro.hu
A bejövő leveleket alapértelmezés szerint akkor fogja elfogadni, ha a gépnév megegyezik a mi gépünk nevével. Ha más nevet is el akarunk fogadtatni, akkor itt kell megadni. Pl. ne csak a goliat.nitro.hu-t kezelje ismertnek, hanem a nitro.hu-t is a levelek címében.
All mail from here or specified other local machines to anywhere on
the internet will be accepted, as will mail from anywhere on the
internet to here.
Are there are any domains you want to relay mail for---that is, you
are prepared to accept mail for them from anywhere on the internet, but
they are not local domains.
If there are any, enter them here, separated with spaces or commas. You
can use wildcards. If there are none, say `none'. If you want to relay
mail for all domains that specify you as an MX, then say `mx'
Enter value (default=`none', `x' to restart):mx
Alapértelmezés szerint csak a helyi doménre érkező leveleket fogja kézbesíteni a rendszer azok közül, amik kívülről jöttek. (A mi leveleinket kifelé természetesen elküldi.) Ha akarunk más domének számára levélkézbesítéssel foglalkozni, akkor meg kell adni azokat. Ha van névkiszolgálónk, akkor ott bizonyos doméneknek lehetünk „MX”. Ha itt a válasz mx, akkor ha a névkiszolgálónkban valamely domén számára mx rekordot adtunk meg, akkor annak a doménnek továbbítjuk a neki érkező leveleket.
Obviously, any machines that use us as a smarthost have to be excluded
from the relaying controls, as using us to relay mail for them is the
whole point.
Are there any networks of local machines you want to relay mail for?
If there are any, enter them here, separated with spaces or commas. You
should use the standard address/length format (e.g. 131.111.0.0/16)
If there are none, say `none'.
Enter value (default=`none', `x' to restart):
Ha minket akar valaki smarthost-ként használni, azaz azt szeretné, hogy továbbítsuk az általa küldött leveleket a megfelelő címzetthez akkor itt meg kell adni a nevét.
You may want to filter out unsolicited commercial email, (UCE, also known
as spam). Unfortunately it is difficult keeping up with all the spamming
sites and abused relays.
The Realtime Blackhole List is a spam filter that someone else maintains
(see http://maps.vix.com/rbl/). They are very quick to add sites, so
if you bounce on this you may occasionally miss legitimate mail. Adding
a header is an alternative---then individual users can choose what to do
with RBL mail using their personal filter files.
Note that the RBL only works if you receive mail directly. If it is stored
for you at your ISP, the RBL won't work as it depends on the IP address the
connection comes from.
Would you like to use the RBL? ('f'ilter, 'r'eject, or 'n'o)?
Enter value (default=`n', `x' to restart):f
A SPAM kiszűrésére felállítottak több adatbázist. Ha használni akarunk egy ilyet, akkor itt megadhatjuk.
What domain(s) would you like to use for the RBL? If you don't know
otherwise, you want the default
Enter value (default=`rbl.maps.vix.com', `x' to restart):
Ha az előbb használatot engedélyeztünk, akkor itt felajánl egy ilyen szolgáltatót, de választhatunk másikat is.
Mail for the `postmaster' and `root' accounts is usually redirected
to one or more user accounts, of the actual system administrators.
By default, I'll set things up so that mail for `postmaster' and for
various system accounts is redirected to `root', and mail for `root'
is redirected to a real user. This can be changed by editing /etc/aliases.
Note that postmaster-mail should usually be read on the system it is
directed to, rather than being forwarded elsewhere, so (at least one of)
the users you choose should not redirect their mail off this machine.
Which user account(s) should system administrator mail go to ?
Enter one or more usernames separated by spaces or commas . Enter
`none' if you want to leave this mail in `root's mailbox - NB this
is strongly discouraged. Also, note that usernames should be lowercase!
Enter value (`x' to restart):leveles
Be tudjuk állítani, hogy a root-nak és más „rendszerhez tartozó felhasználóknak „ szóló leveleket ki kapja meg valójában. Ez erősen ajánlott, hogy ne a root kapjon levelet.
Mail generated on this system will have `goliat.nitro.hu' used
as the domain part (after the @) in the From: field and similar places.
The following domain(s) will be recognised as referring to this system:
nitro.hu
Messages for all domains that we MX for will be relayed
Mail for postmaster, root, etc. will be sent to leveles.
Local mail is delivered.
Outbound remote mail is looked up in the Internet DNS, and delivered
using that data if any is found; otherwise such messages are bounced.
Is this OK ? Hit Return or type `y' to confirm it and install,
or `n' to make changes (in which case we'll go round again, giving you
your previous answers as defaults. (y/n)
Ezek után már csak egy összefoglalást kapunk eddigi beállításainkról, hogy véglegesíthessük azt. Ha megfelel, akkor ’y’ és elkészül a /etc/exim.conf fájl.
(Ez a rendszer képes lesz arra, hogy az innen kimenő leveleket eljuttassa a címzetthez. A látható neve goliat.nitro.hu lesz. Fogadni fog minden levelet., ami @goliat.nito.hu és @nito.hu címre jön. Minden olyan domén számára, akiknek megadtuk az MX rekordot, kézbesítjük a hozzájuk beérkező leveleket. Most semmilyen domén nem használhat bennünket smarthostnak. Az összes levél, ami a root és más rendszerhez tartozó felhasználónak megy a leveles nevű felhasználó fogja megkapni.)
Az ehhez tartozó generált /etc/exim.conf fájl így néz ki.
# This is the main exim configuration file.
# It was originally generated by `eximconfig', part of the exim package
# distributed with Debian, but it may edited by the mail system administrator.
# This file originally generated by eximconfig at Thu Sep 23 10:48:55 CEST 1999
# See exim info section for details of the things that can be configured here.
# Please see the manual for a complete list
# of all the runtime configuration options that can be included in a
# configuration file.
# This file is divided into several parts, all but the last of which are
# terminated by a line containing the word "end". The parts must appear
# in the correct order, and all must be present (even if some of them are
# in fact empty). Blank lines, and lines starting with # are ignored.
######################################################################
# MAIN CONFIGURATION SETTINGS #
######################################################################
# Specify the domain you want to be added to all unqualified addresses
# here. Unqualified addresses are accepted only from local callers by
# default. See the receiver_unqualified_{hosts,nets} options if you want
# to permit unqualified addresses from remote sources. If this option is
# not set, the primary_hostname value is used for qualification.
qualify_domain = goliat.nitro.hu
# If you want unqualified recipient addresses to be qualified with a different
# domain to unqualified sender addresses, specify the recipient domain here.
# If this option is not set, the qualify_domain value is used.
# qualify_recipient =
# Specify your local domains as a colon-separated list here. If this option
# is not set (i.e. not mentioned in the configuration file), the
# qualify_recipient value is used as the only local domain. If you do not want
# to do any local deliveries, uncomment the following line, but do not supply
# any data for it. This sets local_domains to an empty string, which is not
# the same as not mentioning it at all. An empty string specifies that there
# are no local domains; not setting it at all causes the default value (the
# setting of qualify_recipient) to be used.
local_domains = nitro.hu
# Allow mail addressed to our hostname, or to our IP address.
local_domains_include_host = true
local_domains_include_host_literals = true
# Domains we relay for; that is domains that aren't considered local but we
# accept mail for them.
#relay_domains =
# If this is uncommented, we accept and relay mail for all domains we are
# in the DNS as an MX for.
relay_domains_include_local_mx = true
# No local deliveries will ever be run under the uids of these users (a colon-
# separated list). An attempt to do so gets changed so that it runs under the
# uid of "nobody" instead. This is a paranoic safety catch. Note the default
# setting means you cannot deliver mail addressed to root as if it were a
# normal user. This isn't usually a problem, as most sites have an alias for
# root that redirects such mail to a human administrator.
never_users = root
# The setting below causes Exim to do a reverse DNS lookup on all incoming
# IP calls, in order to get the true host name. If you feel this is too
# expensive, you can specify the networks for which a lookup is done, or
# remove the setting entirely.
host_lookup_nets = 0.0.0.0/0
# Exim contains support for the Realtime Blocking List (RBL) that is being
# maintained as part of the DNS. See http://maps.vix.com/rbl/ for background.
# Uncommenting the following line will make Exim reject mail from any
# host whose IP address is blacklisted in the RBL at maps.vix.com.
rbl_domains = rbl.maps.vix.com
rbl_reject_recipients = false
rbl_warn_header = true
# The setting below locks out the use of your host as a mail relay by any
# other host. See the section of the manual entitled "Control of relaying"
# for more info.
sender_host_reject_relay = *
# If you want Exim to support the "percent hack" for all your local domains,
# uncomment the following line. This is the feature by which mail addressed
# to x%y@z (where z is one of your local domains) is locally rerouted to
# x@y and sent on. Otherwise x%y is treated as an ordinary local part.
# percent_hack_domains=*
# If this option is set, then any process that is running as one of the
# listed users may pass a message to Exim and specify the sender's
# address using the "-f" command line option, without Exim's adding a
# "Sender" header.
trusted_users = mail
# If this option is true, the SMTP command VRFY is supported on incoming
# SMTP connections; otherwise it is not.
smtp_verify = true
# Some operating systems use the "gecos" field in the system password file
# to hold other information in addition to users' real names. Exim looks up
# this field when it is creating "sender" and "from" headers. If these options# are set, exim uses "gecos_pattern" to parse the gecos field, and then
# expands "gecos_name" as the user's name. $1 etc refer to sub-fields matched
# by the pattern.
gecos_pattern = ^([^,:]*)
gecos_name = $1
# This string defines the contents of the \`Received' message header that
# is added to each message, except for the timestamp, which is automatically
# added on at the end, preceded by a semicolon. The string is expanded each
# time it is used.
received_header_text = "Received: \
${if def:sender_fullhost {from ${sender_fullhost} \
${if def:sender_ident {(${sender_ident})}}\n\t}\
{${if def:sender_ident {from ${sender_ident} }}}}\
by ${primary_hostname} \
${if def:received_protocol {with ${received_protocol}}} \
(Exim ${version_number} #${compile_number} (Debian))\n\t\
id ${message_id}"
end
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
# This transport is used for local delivery to user mailboxes. On debian
# systems group mail is used so we can write to the /var/spool/mail
# directory. (The alternative, which most other unixes use, is to deliver
# as the user's own group, into a sticky-bitted directory)
local_delivery:
driver = appendfile
group = mail
mode = 0660
mode_fail_narrower = false
file = /var/spool/mail/${local_part}
# This transport is used for handling pipe addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file. (A different name *can*
# be specified via the "address_pipe_transport" option if you really want
# to.) If the pipe generates any standard output, it is returned to the sender
# of the message as a delivery error. Set return_fail_output instead if you
# want this to happen only when the pipe fails to complete normally.
address_pipe:
driver = pipe
return_output
# This transport is used for handling file addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.
address_file:
driver = appendfile
# This transport is used for handling file addresses generated by alias
# or .forward files if the path ends in "/", which causes it to be treated
# as a directory name rather than a file name. Each message is then delivered
# to a unique file in the directory. If instead you want all such deliveries to
# be in the "maildir" format that is used by some other mail software,
# uncomment the final option below. If this is done, the directory specified
# in the .forward or alias file is the base maildir directory.
#
# Should you want to be able to specify either maildir or non-maildir
# directory-style deliveries, then you must set up yet another transport,
# called address_directory2. This is used if the path ends in "//" so should
# be the one used for maildir, as the double slash suggests another level
# of directory. In the absence of address_directory2, paths ending in //
# are passed to address_directory.
address_directory:
driver = appendfile
no_from_hack
prefix = ""
suffix = ""
# maildir_format
# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director. It has a conventional name, since it
# is not actually mentioned elsewhere in this configuration file.
address_reply:
driver = autoreply
# This transport is used for delivering messages over SMTP connections.
remote_smtp:
driver = smtp
end
######################################################################
# DIRECTORS CONFIGURATION #
# Specifies how local addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A local address is passed to each in turn until it is accepted. #
######################################################################
# This allows local delivery to be forced, avoiding alias files and
# forwarding.
real_local:
prefix = real-
driver = localuser
transport = local_delivery
# This director handles aliasing using a traditional /etc/aliases file.
# If any of your aliases expand to pipes or files, you will need to set
# up a user and a group for these deliveries to run under. You can do
# this by uncommenting the "user" option below (changing the user name
# as appropriate) and adding a "group" option if necessary.
system_aliases:
driver = aliasfile
file = /etc/aliases
search_type = lsearch
# user = list
# Uncomment the above line if you are running smartlist
# This director handles forwarding using traditional .forward files.
# It also allows mail filtering when a forward file starts with the
# string "# Exim filter": to disable filtering, uncomment the "filter"
# option. The check_ancestor option means that if the forward file
# generates an address that is an ancestor of the current one, the
# current one gets passed on instead. This covers the case where A is
# aliased to B and B has a .forward file pointing to A.
# For standard debian setup of one group per user, it is acceptable---normal
# even---for .forward to be group writable. If you have everyone in one
# group, you should comment out the "modemask" line. Without it, the exim
# default of 022 will apply, which is probably what you want.
userforward:
driver = forwardfile
no_verify
check_ancestor
file = .forward
modemask = 002
filter
# This director matches local user mailboxes.
localuser:
driver = localuser
transport = local_delivery
end
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how remote addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A remote address is passed to each in turn until it is accepted. #
######################################################################
# Remote addresses are those with a domain that does not match any item
# in the "local_domains" setting above.
# This router routes to remote hosts over SMTP using a DNS lookup with
# default options.
lookuphost:
driver = lookuphost
transport = remote_smtp
# This router routes to remote hosts over SMTP by explicit IP address,
# given as a "domain literal" in the form [nnn.nnn.nnn.nnn]. The RFCs
# require this facility, which is why it is enabled by default in Exim.
# If you want to lock it out, set forbid_domain_literals in the main
# configuration section above.
literal:
driver = ipliteral
transport = remote_smtp
end
######################################################################
# RETRY CONFIGURATION #
######################################################################
# This single retry rule applies to all domains and all errors. It specifies
# retries every 15 minutes for 2 hours, then increasing retry intervals,
# starting at 2 hours and increasing each time by a factor of 1.5, up to 16
# hours, then retries every 8 hours until 4 days have passed since the first
# failed delivery.
# Domain Error Retries
# ------ ----- -------
* * F,2h,15m; G,16h,2h,1.5; F,4d,8h
end
######################################################################
# REWRITE CONFIGURATION #
######################################################################
# There are no rewriting specifications in this default configuration file.
# This is an example of a useful rewriting rule---it looks up the real
# address of all local users in a file
# *@goliat.nitro.hu ${lookup{$1}lsearch{/etc/email-addresses}\
# {$value}fail} bcfrF
# End of Exim configuration file
Az esetleges további konfigurációt kézzel végezzük el a fájl direkt szerkesztésével.
A fentiekben kifejteteket kombinálva lehetőségünk van pl. egy intraneten belül még egy teljesen zárt hálózat kialakítására. Tegyük fel, hogy a vállalati intraneten van egy szervezeti egység, amire nagyon kell vigyázni. Annyira, hogy inkább teljesen más logikai hálózatot alakítunk ki számukra. De a levelezésüket persze biztosítani kell és a külvilág számára nem kell nyilvánvalóvá tenni a megkülönböztetett figyelmet (Az e-mail címeik ne különbözzenek a többitől.) A két hálózat között semmiféle átjárót nem akarunk létrehozni. Ekkor egy lehetséges megoldás az, hogy a „nagy” intranet levelező szervere mellett (amit a külvilág is lát) a belső védett hálón létrehozunk egy másik levélszervert a védett csoportnak. (Ebbe a gépbe célszerű két hálózati kártyát szerelni a két logikai hálózatnak, esetleg alkalmazhatjuk az IP aliasing lehetőséget, ha egy hálózati kártyánk van.) A belső háló leveleinek útját kifelé úgy tudjuk biztosítani, hogy a belső levélszerveren a külsőt használjuk smarthost-nak. Azaz, amit helyben nem tud kézbesíteni, azt továbbítsa a smarthost-nak megadott gépre és a többit bízza rá. A kívülről érkező levelek a külső levélszerverre érkeznek.
1.
(A belső háló felhasználóinak levélboxai is léteznek a külső szerveren, hiszen a külvilág oda címezi nekik a leveleket.) Ezeknek a továbbítását például megoldhatjuk a fetchmail program segítségével. Ez a levél elhozó program nagyon hasznos olyankor is, amikor több postaládánk van különböző szervereken, de nem szeretnénk minden egyes alkalommal végigjárni leveleinkért a fél internetet, hanem megbízzuk a fetchmail-t, hogy szedje össze őket, és postázza egy adott gépre. A program használatához mindössze egy fájlt kell összeállítanunk, amiben megadott szintaktika szerint a kommunikációs protokoll, a távoli szerver neve, az ottani felhasználó neve és jelszava van megadva. (Ez egy szöveges állomány, ezért megfelelően védjük az illetéktelenek ellen, hiszen elolvasható a felhasználónév-jelszó páros.) Ha root-ként futtatjuk a programot, akkor lehetőség van több felhasználó postájának kezelésére is. A programot indíthatjuk a cron segítségével, meghatározott időnként, vagy elegánsabb módszer démonként futtatni. Ekkor megadható neki, hogy milyen időközönként járja végig a világhálót leveleinkért.
A fájlt ne olvashassa akárki, hiszen kódolatlan jelszavakat tartalmaz.
samson:~# ls -al /root/.fetchmailrc
-rw------- 1 root root 2911 Jul 5 11:05 /root/.fetchmailrc
fetchmail –f /root/.fetchmailrc –d 600
A fenti sor azt jelenti, hogy a fetchmail démonként fusson és 10 percenként ellenőrizze a leveleket (-d 600), konfigurációs fájlként pedig a /root/.fetchmailrc fájlt használja. (-f /root/.fetchmailrc)
poll freemail.c3.hu protocol POP3:
user gabesz, with password kkkscdfe43, is gabor@goal.nitro.hu here;
poll mail.nitro.hu protocol POP3:
user farek, with password sdfg45tfre, is farrok@goal.nitro.hu here;
A fenti két sor egy részlet egy lehetséges
.fetchmailrc fájlból.
A ’poll’ után annak a távoli szervernek a neve áll, amire csatlakozni
kell a
’protocol’ után meghatározott protokollal. A ’user’ után áll a
felhasználó neve
ezen a távoli gépen, a ’with password’ után pedig a távoli gépen lévő
jelszava.
Az ’is’ után kell beírni ennek a felhasználónak a helyi gépen lévő
(tehát amire
elhozzuk a leveleket) e-mail címét. (Egyes verziókban itt elegendő a
felhasználó nevét beírni.) Ezzel az egyszerű módszerrel könnyen és
gyorsan
összeszedhetjük a leveleket automatizált módon.
2.
A belső felhasználók levélboxai nem
léteznek a
külső szerveren.
Ekkor célszerű létrehozni a belső felhasználóknak egy-egy alias nevet (álnevet) a külső gépen, és biztosítani, hogy a külső levélszerver továbbítsa a leveleket az aliasban megadott címekre.
Az EXIM (és a SMAIL is) képes használni a sendmail által ismert alias fájlokat. A /etc/aliases fájl formája nagyon egyszerű:
álnév: címzettek
A címzettek egy vesszővel tagolt lista, amit behelyettesítünk az álnévbe. A címzettek lista átmehet másik sorba is, ha az újsor karaktert tabulátor követi.
példa /etc/aliases fájl:
szamtech:feri@freemail.c3.hu,pisti@mail.nitro.hu,szabob@mail.nitro.hu
Ezzel a szamtech-nek címzett leveleket meg fogja kapni a feri, a pisti és a szabob felhasználó a megadott e-mail címeken.
Az Eximben csak meg kell szerkeszteni a /etc/aliases fájlt és máris használható, a SENDMAIL estén még ki kell adnia newaliases parancsot az adatbázis aktiválásához.
Ezzel az egyszerű módszerrel könnyen karbantarthatunk levelező listákat.
Most nézzük meg egy tipikusan Linux alatt használt és egy tipikusan Windows rendszerben használt levelező kliens program legszükségesebb beállításait.
A PINE program a UNIX világban nagyon elterjedt levelező kliens program amit az Universiti of Washington-on fejlesztettek ki és a szerzői jog is védett. Aki szereti a karakteres felületet, az bátran használja a PINE-t.
A programot indítva a Setup menüben találhatjuk meg a személyre szabáshoz szükséges beállítási lehetőségeket.
A signature menüpontban beállíthatjuk az aláírásunkat, ami minden levél végén ott lesz. Ez lehet egy fájl, vagy egy editorban elkészíthetjük direkt módon. Ctrl+X kombinációval távozhatunk és elmenthetjük a beállítást, Ctrl+C kombinációval megszakíthatjuk a műveletet.
A config menüpontban nagyon részletes beállítási lehetőségeink vannak, melyek minden igényt kielégítenek.
A legfontosabbak:
A felhasználó neve
personal-name = KISS József
A gép neve, ami az elküldött levélben a from mezőben látszani fog a felhasználónév@ után:
user-domain = mail.nitro.hu
Az SMTP szerverünk neve:
smtp-server = mail.nitro.hu
Az NNTP (news) szerverünk neve:
nntp-server = <No Value Set>
A beérkező levelek helye:
inbox-path = <No Value Set: using "inbox">
A levél mappák:
folder-collections = <No Value Set: using "mail/[]">
A használt nemzeti karakterkészlet (HU)
character-set = iso8859-2
A használni kívánt szövegszerkesztő
editor = <No Value Set>
A használni kívánt helyesírás ellenőrző
speller = <No Value Set>
A Netscape Communicator nagyon sok platformon működik, többek között Windows rendszereken is. A böngésző programnak van egy nagyon kellemes levelező felülete is, amivel a POP protokollon keresztül elérhetjük leveleinket. A Communicator alkalmas több felhasználó megkülönböztetésére az úgynevezett user profile-ok létrehozásával. Ez hasznos lehet, ha egy számítógépet több személy is használ. Teljesen el tudják különíteni az egyénre szabott beállításaikat a kedvencek listájától kezdve a levelezési beállításokig.
Az ’edit’ menü ’preferences’ menüpontjánban található a ’mail’ csoport, amiben a levelezési beállításokat lehet karban tartani. Ezen belül is csoportokba van szedve az összes beállítási lehetőség. Az ’Identity’ csoportban jó, ha beállítjuk a ’Your name’ és az ’Email address’ mezőket, mert a levél elküldésekor a ’from’ mező ezt fogja tartalmazni és ha nem utasítjuk külön (nem töltjük ki a ’Reply-to address’ mezőt), akkor a válasz is ide fog érkezni egy esetleges válasz a feladónak akció esetén. Ezen a párbeszédablakon lehet még megadni a cégünk nevét és az aláírás fájl helyét is (’signature file’).
A ’Mail servers’ csoportban állíthatjuk be a POP (bejövő levél kiszolgáló) és az SMTP (kimenő levél kiszolgáló) szerverre vonatkozó információkat. A ’local mail directory’ mezőben beállíthatjuk, hogy hol tárolja a rendszer a leveleinket. Például nem célszerű a sebezhető kliens gépen tárolni a leveleket és más, a böngészőre vonatkozó beállításokat. Tegyük ezeket inkább egy biztonságos SAMBA szerverre (ami történetesen lehet ugyanaz a vállalati intranet szerver, amin a levelezés, a proxy, stb. fut) Ez több okból is hasznos lehet. Ha a gépet több felhasználó is használja és a levelezési információk a helyi gépen vannak, akkor akadály nélkül hozzáférnek egymás leveleihez a felhasználók. Míg ha ez egy SAMBÁN van, akkor a belépési jogosultságok miatt mindenki csak a saját profilját tudja elindítani a böngészőn. A másik ok a működési biztonság. Ha esetleg a munkahely „szabálytalan műveletet hajt végre” és összeomlik a rendszere, elveszhetnek az értékes levelezések is. Ha azonban ezeket a SAMBÁN tároltuk, akkor egy újraépítés után csak be kell állítani ismét a kívánt elérési utat, és máris minden a régi.
Egyszerű és mindent tud a KDE levelező
A SAMBA project elindításának célja az volt, hogy a „hagyományos” DOS-os, Windows-os munkaállomások számára elérhetővé tegyék a UNIX rendszereket, mint fájl és nyomtató kiszolgálót. A Linuxos megvalósítás óriási népszerűségnek örvend, hiszen gondoljunk csak bele, hogy a cégek számára mekkora kiadást jelent, ha több száz dolgozójuk részére biztosítani szeretnék ezeket az alapvető szolgáltatásokat egy megvásárolt hálózati operációs rendszerrel.
Először a Samba által használt
protokollról kell némi
áttekintést kapni, mielőtt belemerülünk annak konfigurációs
lehetőségeibe.
Az SMB protokoll (Server Message Block) a NET BIOS szolgáltatáson alapul (LanManager-ként is ismerik) és a Microsoft definiálta. Létezik IBM és Microsoft által megvalósított változata is. Ezeknek a legnagyobb hátránya az áruk. A Microsoft kiadta az SMB specifikációját, ezért mások is nagyon jól támogathatják azt. Mostanában a Microsoft kiterjesztette az SMB-t, átkeresztelte CIFS (Common Internet File System) névre és ezt akarja szabványként bevezetni.
A SAMBA egy szerver, ami megvalósítja az
SMB protokollt UNIX
alatt. Képes fájl és nyomtató kiszolgálóként működni a legtöbb PC-s
operációs
rendszer számára. (OS/2, MS Win9x, WinNT) Nagyon sok operációs
rendszeren fut.
A számos UNIX változat mellett a Novell is portolta a 4.1 szerverére
(Migration
Toolkit), lehetőséget adva a Win NT felhasználóknak a Netware szerverek
könnyű
elérésére.
A UNIX rendszerek hagyományosan általában
csak a TCP/IP
protokollt ismerik. Az SMB csomagokat egy TCP/IP burokban küldik
tovább. Ez
hasznos, ha arra gondolunk, hogy pl. a win9x megosztott egyenrangú
hálózat csak
LAN-on működik (nem „route-olható”) és ennek a TCP/IP csomagolásnak
köszönhetően megoldódik ez az útvonal választási probléma, tehát
kiterjeszthetjük a szolgáltatást nagy rendszerekre is. (A klienseken is
futni
kell a TCP/IP-nek.)
smbd [ -D ] [ -a ] [ -d debuglevel ] [ -l log file ] [ -p ] port number ] [ -O socket options ] [ -s configuration file ]
A program mindig létrehoz egy sessiont, ha
a kliens kéri
azt. Minden kliens a szerver egy másolatát kapja meg minden egyes
session-jéhez, amely azután kiszolgálja a kliens összes kapcsolatát a
session
időtartama alatt. Amikor azonban a kliens bezár minden kapcsolatot, a
szerver
másolata eltűnik.
A konfigurációs fájl, és minden olyan fájl
amely annak
részét képezi, automatikusan feltöltődik minden percben, ha azok
megváltoznak.
Mi is feltölthetjük azt, ha SIGHUP jelet küldünk a szervernek. A
konfigurációs
fájl újrafeltöltése nem befolyásolja a már létrehozott
szolgáltatásokkal
teremtett kapcsolatot. A felhasználónak kell kilépnie a
szolgáltatásból, vagy
pedig az smbd-t kell leállítani (kill)
és újraindítani.
-D
Ez a
paraméter, ha beállítjuk, a szervert démonként üzemelteti, azaz
leválasztja
önmagát a tty-ról és a háttérben fut, így gyűjti be a kéréseket a
megfelelő
portokon.
A legtöbb Linux disztribúció így indítja a
Sambát a
megfelelő init scripteken keresztül. (Debian- /etc/init.d/samba, SuSE
és
Redhat- /etc/rc.d/init.d/smb)
-a
Ennek a
paraméternek a beállításával, minden új kapcsolattal felülírjuk a log
fájlokat.
Alapbeállításban a logfájlok csatolódnak.
-d debuglevel
A
debuglevel egy 0 és 10 közötti egész szám. Alapbeállításban értéke
nulla. Minél
magasabb az értéke, annál több részlet jut el a log fájlokhoz a szerver
működéséről. Ha értéke nulla, csak a kritikus hibák és komoly
figyelmeztetések
jutnak el. Az 1-es érték megfelel a napi futtatás követelményeinek--az
elvégzett műveletekről kis mennyiségű információt továbbít. Az 1-es
értéknél
nagyobb szintek nagy mennyiségű log adatot hoz létre és használata csak
akkor
javasolt ha valamilyen problémát szeretnénk kideríteni. A 3-as szint
feletti
szintek fejlesztők számára készültek. Ezek óriási mennyiségű log adatot
hoznak
létre, amelyek legnagyobb része a kívülállónak értelmezhetetlen.
-l log file Ha megadjuk ezt az értéket, a log fájl kinevez egy alap fájlnevet, amelybe az éppen futó szerver működési adatai kerülnek. Alapbeállításban az alap nevet a fordításkor határozzuk meg. Az alap név azután valós log fájl neveket hoz létre. Például, ha a nevet "log"-ként adtuk meg, a következő fájlok jelennek meg a log adatoknál:
log.debug (debug információ)
Log.in ( befelé irányuló tranzakciós adat)
log.out (kifelé
irányuló trnzakcsiós adat)
A log fájlokat sohasem távolítja el a
szerver.
-p port number
A
port szám pozitív egész szám. Alapbeállításban értéke 139. Ez a szám
az,
amelynek akkor van jelentősége, amikor a kliens szoftvere felveszi a
kapcsolatot a szerverrel. A standard szám a 139, ezért ez az
alapbeállítás. Ha
azt szeretnénk, hogy a szerver egyszerű felhasználóként fusson és ne
rootként,
a legtöbb rendszer 1024-nel nagyobb port számot követel meg. Ha úgy
döntünk,
hogy nem a 139-es portot használjuk, át kell irányítani azt, különben a
szerver
nem lesz használható a legtöbb felhasználó számára. Az átirányítás
részleteit
megtalálhatjuk az rfc1002.txt-ben a 4.3.5 fejezetben
-s konfigurációs fájl
Alapértelmezésben
a konfigurációs fájl nevét a fordításnál határozzuk meg. Az így
megadott fájl a
szerver által megkövetelt konfigurációs részleteket tartalmazza. Az
ebben a
fájlban megadott információ tartalmaz olyan szerver specifikus
adatokat, mint
például, hogy milyen printcap fájlt használunk, de tartalmazza a
szerver összes
szolgáltatásának leírását is. A későbbiekben a fájl formája és tartalma
részletezésre kerül.
/etc/inetd.conf
Ha azt szeretnénk, hogy a szervert az
inetd meta-démon
futassa, ennek a fájlnak tartalmaznia kell minden a meta-démonnak
szükséges
startup információt. Lásd a lenti "Installálás" fejezetet.
/etc/rc
(illetve a rendszer által használt
indítási script)
Ha a szervert démonként szeretnénk
futtatni már
rendszerindításkor, ennek a fájlnak tartalmaznia kell egy megfelelő
startup
sequencet. Lásd a lenti "Installálás" fejezetet.
/etc/services
Ha a szerver inetd meta-daemonon keresztül
fut, ennek a
fájlnak tartalmaznia kell a szolgáltatásra vonatkozó bejegyzést, hogy
el tudja
látni a portot (pl: 139) és a protokoll típust (pl.: tcp).
/etc/smb.conf
Ez a fájl részletezi az összes olyan
szolgáltatást, amelyet
a szerver elérhetővé tesz a kliensek számára.
Bármelyik Linux disztribúcióval megkapjuk
az aktuális
verziót és a csomagkezelővel installálható.
A szerver futtatható démonként vagy
rendszerindításkor, vagy
futtatható még meta-démonként. Ha démonként futtatjuk, a szerver mindig
készenléti állapotban van és ezért az indítás gyorsabb lesz. Ha
meta-démonként
fut, valamennyi memória szabadon marad és olyan segédprogramokat, mint
a tcpd
TCP Wrapper használhatunk a megnövelt biztonság érdekében.
Azért, hogy a szerver démonként fusson,
csak annyit kell
tennünk, hogy a -D -t a parancssorba írjuk. A -D opció elválasztja a
szervert a
tty-től.
Bármilyen felhasználó futtathatja a
szervert démonként
(amennyiben execute jogosultsága van rá természetesen). Ez hasznos, ha
tesztelni szeretnénk a szervert, sőt még abban az esetben is hasznos
lehet, ha
átmenetileg szeretnénk helyettesíteni például az ftp-t, vagy valamely
hasonló
funkciót. Ha így futtatjuk a szervert, csak azokkal a jogokkal
rendelkezik,
mint az azt futtató felhasználó.
Ha a fordításkor használt opciók
megfelelnek a
rendszerünknek, minden paramétert, a kívánt debug szint és a -D-t
kivéve,
elhagyhatunk. Lásd a fenti "options" fejezetet.
A Debian alapértelmezés szerint inetd-ből,
a SuSE és Redhat
disztribúciók démonként futtatják a Sambát és a megfelelő init
szkriptek
installáláskor generálódnak.
A Sambát az inetd-n keresztül indítva
megoldható, hogy az
smbd szerver mindig elinduljon, ha egy folyamat megpróbál
rákapcsolódni. Ehhez
több mindent is meg kell változtatni az indítófájlokban a gazda gépen.
(csak
root jogokkal lehet)
Ajánlatos az nmbd nme szervert az smbd-vel
egyidőben
indítani.
Először is bizonyosodjunk meg, hogy a
file/etc/services-ben
konfigurálva van a port. Amennyiben lehetséges, használjuk a jól ismert
139-es
portot, bár bármely más port is használható.
(netbios-ssn
139/tcp)
Következő lépésként írjunk egy megfelelő
sort az
etc/inetd.conf fájlba Ezen sor első szegmensének egyeznie kell az
/etc/services-ben megjelenő szolgáltatás nevével. Helyettesítsük a
megfelelő
értékekkel a következő sort:
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd/ -d1 -l/var/adm/smblogs/log -s/usr/local/samba/lib/lib/smb.conf
(A fenti sornak egy sorként kell
megjelennie az
/etc/inetd.conf-ban.
Itt nincs szükség arra, hogy megadjuk a
port számot, még
abban az esetben sem, ha nem a standard port számot használjuk.
Utolsó lépésként, meg kell szerkeszteni a
konfigurációs
fájlt úgy, hogy az a megfelelő szolgáltatásokat nyújtsa.
.
.
.
[homes]
writable = yes
[printers]
writable = no
printable = yes
path = /tmp
public =yes
.
.
.
Ez a nagyon egyszerű példa-részlet
lehetővé teszi, hogy
rákapcsolódjon a home könyvtárra és bármely olyan printerről
nyomtasson,
amelyet a szerver támogat.
A fájl szekciókból
és paraméterekből áll. A szekció a nevével kezdődik, ami szögletes zárójelek között van és a
következő
szekció kezdetéig tart. A szekció paramétereket
tartalmaz „név=érték” formában. Minden sort külön értelmez a program. A
sorok megjegyzéseket, szekcióneveket
és paramétereket
tartalmazhatnak. A szekciónevek és a paraméterek nem érzékenyek a nagy
és kis
betűkre.
Minden egyes szekció egy szolgáltatásra
vonatkozik. Van
három speciális szekció [global], [homes] és a [printers]
A Global szekció paraméterei a szerver
egész működésére
vonatkoznak, alapértékeket állítanak be a szolgáltatásoknak.
A Homes szekció
paraméterei a
kliensek home könyvtárainak hozzáférését szabályozzák. Amikor egy
kapcsolat
létrejön, a szolgáltatásokat végignézi a szerver, és ha talál olyat,
akkor
használja azt. Ha nem talál, akkor úgy kezeli a szolgáltatást, mint egy
felhasználói nevet, és végignézi a password fájlt. Ha megtalálja és a
jelszó is
jól lett megadva, akkor a home szekciót, mint mintát használva készít
egy
klónt. Néhány dolog meg lesz változtatva a klónban (a szekció neve a
felhasználó neve lesz, és ha nincs megadva path, akkor a home könyvtár
állítódik be path-nak.)
Ha a Linux-bejelentkezéstől eltérő home
könyvtárban tároljuk
az adatainkat a Samba kliensek számára, akkor célszerű megadni a
következő
sort:
[homes]
Path=/valahol/pchome/%S
A %S a szolgáltatás nevét helyettesíti:
azaz esetünkben pl
ha szabob felhasználóként jelentkeztünk be akkor nem a /home/szabob
lesz
elérhető számára, hanem a /valahol/pchome/szabob, mivel a [home]
szekció
alapján létrejött a [szabob] szekció. Ezzel a helyettesítő megoldással
nagy
számú felhasználót könnyen karbantarthatunk. A használható
helyettesítőket
később felsoroljuk.
Fontos beszélni a következőről:
[homes]
Writable=yes
Ha ezt a paramétert így használjuk és a
vendég hozzáférés
meg van adva a home szekcióban, akkor az írhatja, olvashatja az összes
home
könyvtárat jelszó nélkül!
A global szekció „browseable” bejegyzése
öröklődni fog a
home könyvtárakra, de felülírhatjuk a home szekció browseable
bejegyzésével. Ha
azt akarjuk, hogy mindenki csak a saját home könyvtárát lássa, akkor a
homes-ben browseable=no-t használjunk.
A [printers] szekció ugyanolyan filozófiát
követ, mint a
[homes], csak a nyomtatók számára. Ha létezik, akkor a felhasználók
hozzáférhetnek a szerver printcap fájljában megadott nyomtatókhoz.
Amikor a
kérés beérkezik, a szerver ugyanúgy végignézi a szolgáltatásokat. Ha
talál
megfelelőt, akkor használja, ha nem, akkor megpróbálja felhasználóként
kezelni,
ha úgy sem megy, akkor megnézi a printcap fájlt. Ha ott szerepel, akkor
létrehoz egy klónt a [printers] szekció alapján. A szolgáltatás neve a
printer
neve lesz. A [printers] szekcióban kell szerepelni a printable=yes
bejegyzésnek, mert különben nem tud hozzáférni a nyomtatóhoz senki.
Path-nak
egy mindenki számára írható könyvtárat kell megadni.
Tipikus nyomtató szekció:
[printers]
Path=/usr/spool/public
Writeable=no
Public=yes
Printable=yes
Az összes alias
használható, ami a
nyomtatóra vonatkozik.
Fontosabb helyettesítők:
%S
a szolgáltatás neve, ha van
%P
a szolgáltatás gyökér könyvtára, ha van
%u
a szolgáltatás felhasználójának neve, ha van
%g
a %u elsődleges csoportja
%U
a windows-os kliensről bejelentkezett felhasználó neve
%G
%U elsődleges csoportja
%H
a %u home könyvtára
%v
a Szamba verziószáma
%h
a Szambát futtató gép neve
%m
a kliens gép netbios neve
%L
a szerver netbios neve
%M
a kliens gép Internet neve
%p
a szolgáltatás home könyvtárának a neve
%d
az aktuális szerver-processz azonosítója
%a
a kliens gép architektúrája (WfWg, WinNT, Win95)
%I
a kliens gép IP címe
%T
az aktuális idő és dátum
[global]
#A munkacsoport neve
workgroup = iroda
#A WINxx klienseken a tulajdonságok/megjegyzés sorban
látható #szöveg
server string = Samba Server
#a szolgáltatásokat igénybe vehetik azok a gépek,
melyek a #192.168.1.0 hálózaton vannak.
hosts allow = 192.168.1.0/255.255.255.0
#magyar karakterkészlet használata az
állományneveknél
client code page=852
#A printcap fájl neve
printcap name = /etc/printcap
#A printcap-ban lévő nyomtatók böngészhetőek
load printers = yes
#Megadja a log fájlok helyét
log file = /var/log/samba/log.%m
#A log fájlok maximális méretét adja meg. Ha túllépi,
akkor átnevezi az előzőt és újat nyit.
max log size = 50
#A felhasználó a kliensen ugyanazt a felhasználói
nevet használja, mint a Sambára való #feljelentkezéshez
security = user
#A jelszó kódolt átvitele (NT4.0 SP3 és feletti
kliensek esetén ajánlott használni)
encrypt passwords = yes
#A kódolt jelszavakat tartalmazó fájl neve
smb passwd file = /etc/smbpasswd
[homes]
comment = Home Directories
#Mindenki csak a saját könyvtárát láthatja
browseable = no
#Ha ez „no”, akkor nem tudja módosítani az
állományokat és #nem tud újat létrehozni az adott #szolgáltatásnál
writable = yes
[printers]
comment = All Printers
#A kliens milyen állományhoz kapja a hozzáférést
path = /var/spool/samba
browseable = no
#Ha ez „yes”, akkor nem kell jelszó a szolgáltatás
eléréséhez
guest ok = no
writable = no
#Ha ez „yes”, akkor a kliensek meg tudják nyitni és
tudják #írni a path-ot az adott szolgáltatásnál
printable = yes
Ha
a/etc/passwd fájlban létezik a pcguest felhasználó, akkor ő
használhatja azokat
a szolgáltatásokat, ahol szerepel a „guest ok=yes”
guest account = pcguest
Ha a „security
= server”, akkor meg kell adni az azonosításhoz használni kívánt
szerver nevét.
password server = <NT-Server-Name>
Akkor kell
használni, ha van a hálózatunkon egy elsődleges domain kontroller NT
szerver.
domain controller =
<NT-Domain-Controller-SMBName>
Mindenki
számára írható, olvasható könyvtár
[tmp]
comment = Ideiglenes tároló
path = /tmp
read only = no
public = yes
Mindenki
hozzáfér a könyvtárhoz, de csak a private csoport írhatja
[public]
comment = Publikus
path = /mnt/cdrom
public = yes
writable = no
printable = no
write list = @private
Szabob számára
hozzáférhető könyvtár
[szabobdir]
comment = Szabó Bálint könyvtára
path = /usr/somewhere/private
valid users = szabob
public = no
writable = yes
printable = no
Ha Samba
szerverünket úgy akarjuk használni, mint egy Win’NT domén kontroller-t,
akkor a
global szekcióban használjuk a következő bejegyzéseket:
[global]
workgroup
= CÉGNÉV #!
netbios name = MAIL #!
guest
account = nobody
invalid
users = root #!
keep
alive = 30
os
level = 65 #!
security
= user #!
server
string =
Win'2000Professional/ServicePack1000
encrypt
passwords = yes #!
update
encrypted = no #!
printing
= bsd
printcap
name = /etc/printcap
load
printers = yes
socket
options = IPTOS_LOWDELAY TCP_NODELAY
SO_SNDBUF=4096 SO_RCVBUF=4096 #! Ez a
sor folytatása az előző sornak #!
client
code page = 852 #!
map
to guest = Never #!
domain
master = yes #!
local
master = yes #!
interfaces
= 192.168.1.1/255.255.255.0 #!
wins
support = no #!
logon
script =%U.bat #!
domain
logons = yes #!
[netlogon]
path
= /usr/local #!
.
.
.
A fenti
példában azok a sorok mindenképpen figyelmet érdemelnek, ami mögött a ”
#! ”
jelsorozat áll.
Külön
felhívnám a figyelmet a
logon script
=%U.bat #!
domain
logons = yes #!
[netlogon]
path
= /usr/local #!
részre.
Ha a
/usr/local könyvtárban elhelyezünk usernév.bat fájlokat, ahol a usernév
a
„doménbe” bejelentkező felhasználó felhasználói neve, akkor a
felhasználó
bejelentkezésekor ennek a szkriptnek a tartalma végrehajtódik a kliens
windows-os gépen. Így tetszőleges windows-os parancsokat futtathatunk
bejelentkezéskor felhasználókra szabva.
Például ha azt
akarjuk, hogy a felhasználó bejelentkezésekor automatikusan lássa F:
meghajtóként a home könyvtárát, akkor a usernév.bat fájl tartalma
legyen a
következő:
net use f:
\\szervernév\felhasználónév
Arra kell
figyelni, hogy a fájl windows rendszeren fog futni, tehát a „sorvége”
karakter
megfelelő legyen. (Ezt egyszerűen elérhetjük, ha egy Windows-os gépen
írjuk meg
a fájlt. Ott kipróbáljuk, hogy működik-e, majd ha igen, akkor
átmásoljuk a
/usr/local könyvtárba.)
Ha kódolt
jelszavakat akarunk használni, akkor ezeket az smbpasswd programmal tudjuk változtatni.
Ha root jogú
felhasználóként változtatjuk más felhasználó jelszavát, akkor
smbpasswd –a felhasználónév alakban adjuk ki a parancsot.
Nálunk két Samba szerver üzemel. Egyikük
általános célú,
különlegessége talán az, hogy a szerveren van egy CD író, amin az Xcdroast program hozzáférhető bizonyos
felhasználók számára. (cd csoport) A cd csoport tagjainak a home
könyvtárukba
egy szimbolikus linkkel csatlakozik cd író által elérhető fájlrendszer,
és így
kényelmesen felmásolhatják anyagukat a szerverre, miközben mindenki az
aktuális
állapotot látja és ismerhetik egymás állományait anélkül, hogy ki
kellene lépni
a saját home könyvtárukból. Ugyanezen a szerveren mindenkinek a saját
home
könyvtárában vannak eltárolva a Netscape
Communicator testre szabott beállításai a mail boxokkal együtt.
Ennek nagy
előnye az, hogyha a kliens gép operációs rendszere „szabálytalan
műveletet”
hajt végre és összeomlik, a levelek akkor sem vesznek el.
A másik gép egy „cd torony”, amiben nincs
winchester és
floppy egység, csak 4 db kivénhedt IDE CD meghajtó. A gép NFS-ről
bootol fel
TFTP-n keresztül egy másik központi szerepet ellátó Linux gépről a
hálózati
kártyáján levő boot eprom segítségével. Több éve hibátlanul működik a
felhasználók legnagyobb örömére.
Az eredeti Samba szoftvert és a
hozzákapcsolódó
segédprogramokat Andrew Tridgell (samba-bugs@samba.anu.edu.au) írta.
Andrew
őrzi a forrást is.
Először is szeretnék köszönetet mondani
Egresi Péternek
(egresip@schwabo.hu), hogy mindenki számára elérhetővé tette ezt a
hasznos
fejlesztést.
Minden irodai környezetben szükség van egy
fax gépre, egy
nyomtatóra és jó esetben egy intranet/internet szerverre és egy
fájl/nyomtató
kiszolgálóra.
Minden cégvezetőnek az a vágya, hogy a
most leírt
„infrastruktúrát” minél gazdaságosabban valósítsa meg minél magasabb
színvonalon.
Minden cégvezető örülne annak, ha valaki
azt mondaná:
„Adsz nekem egy olyan kivénhedt PC-t, amin
már nem fut
rendesen az Office aktuális verziója, tehát éppen selejtezés, vagy
eladás előtt
áll és én produkálom a fenti szolgáltatásokat nagyon-nagyon magas
színvonalon:
A kimenő és bejövő faxok naplózva lesznek. A bejövő faxok rögtön
nyomtatóra
kerülnek és az adott -tetszőleges számú- helyi felhasználók megkapják
azokat
elektronikus levélben. Bármely helyi munkaállomáson bármely Office
programban
előállított dokumentumot el lehet faxolni egyetlen mozdulattal a kívánt
címre,
és a küldő helyi felhasználó kap egy visszaigazolást a küldés
eredményéről
elektronikus levélben és a windows üzenetküldőjén keresztül is.
(Elment-e,
hányadik próbálkozásra ment el, ha nem sikerült elküldeni, akkor miért
nem,
stb...) Ezen kívül természetesen ellátja az összes intranet/internet
szerver
funkciót és a fájl/nyomtató szerver feladatokat is. Ehhez plusz kiadás
már csak
egy FAX modem és egy nyomtató.”
Erre képes a Linux egy tényleg nagyon
gyenge hardveren is.
(16MB RAM, 540MB HDD, 100 MHz/586-os CPU-val felszerelt „szervert” már
építettem a fenti szolgáltatásokkal. Természetesen a fájlszerver
funkció erősen
korlátozott volt...)
Most a fax részt tárgyaljuk részletesen.
Először is nézzük, mik azok a Linuxban
fellelhető programok,
amikre szükségünk van.
A most leírtak a Debian – Slink (v 2.1)
disztribúcióra
vonatkoznak. Más disztribúciót használva eltérések lehetnek a
konfigurációban,
erre a fejezet végén fogunk kitérni.
Először is szükség van a teljes mgetty
csomagra a fax
résszel együtt és a netpbm csomagra. Ezen kívül ellenőrizzük, hogy
megtalálhatók-e a rendszerünkben a gs és az lpr programok.
Ellenőrizzük, hogy az alábbi programok
megtalálhatók-e a
megadott helyen a rendszerünkben. Ha nem, akkor addig ne lépjünk
tovább, amíg
ezt nem pótoltuk:
/usr/local/bin/g32pbm
/usr/local/bin/g3cat
/usr/local/bin/g3tolj
/usr/local/bin/pbm2g3
/usr/local/bin/pbmtog3
/usr/local/bin/pbmtolj
/usr/local/bin/pnmtops
/usr/local/bin/mmencode
/usr/local/bin/g3topbm link a g32pbm fájlra
A /etc/smb.conf fájlt egészítsük ki az
alább látható
szekcióval:
[FAX]
comment =
Linux FAX Server
path = /tmp
guest ok =
Yes
print ok =
Yes
print command
= /usr/bin/do_fax %s %U 1
lpq command =
faxq
lprm command
= faxrm %j
Ezek után a /usr/bin könyvtárba másoljuk
be a most leírt
szkriptet r-xr-xr-x jogokkal, root gazdával és csoporttal, do_fax néven.
#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/samba/bin
TELEFONANLAGE=JA #
Akkor legyen JA, ha 9 v. massal kell varosi vonalat kerni
TMP=$1.ps
DEBUG=JA # Ha ide irsz valamit, akkor
teljes logot
csinal a /tmp-be, igy lehet hibat #keresni!
NUMMER=`faxfilter $1 $TMP`
USER=$2
RECHNER=$3
FAXERRORS=/tmp/faxerrors.$$
FAXADMIN=$USER@samson.nitrogen.hu #
Ide ird be a DOMAIN neveteket!
export NUMMER TMP USER RECHNER FAXERRORS
DEBUG
TELEFONANLAGE
if [ "$DEBUG" = "" ]
then
rm -f
$1
else
cp $1
/tmp/fax.input
rm -f
$1
fi
if [ "$NUMMER" = "" ]
then
if [ -s
$1 ]
then
(
echo
Das war wohl nichts $USER
echo
echo
Um einen Fax zu versenden, muss im Dokument eine Zeile
echo
"
<Faxnummer:0...>"
echo
"auftauchen. Denk auch an die Amtsholung (0,...) mit Pause!"
echo
echo
"Aendere den Text und drucke nochmal."
)
| smbclient -M $RECHNER -U $USER 2>&1 >/dev/null
fi
rm -f
$TMP
exit 0
fi
LEN=`expr length $NUMMER`
#
# Wenn die Nummer laenger ist, als 3
Zeichen und der
Dummlooser die Amts-
# holung vergessen hat, basteln wir noch
ein 0, davor
#
if [ "$TELEFONANLAGE" = "JA" -a
$LEN -gt 3 ]
then
X=`expr
substr $NUMMER 1 2`
if [
! "$X" = "9," ]
then
NUMMER=$NUMMER
fi
fi
/usr/bin/faxspool -q -f $FAXADMIN $NUMMER
$TMP
>$FAXERRORS 2>&1
if [ -s $FAXERRORS ]
then
(
echo
Fehler beim Versenden des Faxes:
cat
$FAXERRORS
) |
smbclient -M $RECHNER -U $USER 2>&1 >/dev/null
else
(
echo
"Hai $USER!"
echo
"Dein Fax an $NUMMER wurde erfolgreich angenommen."
echo
"Der Versand erfolgt spaeter (keine Panik, ich mach das schon...)"
) |
smbclient -M $RECHNER -U $USER 2>$1 >/dev/null
fi
if [ "$DEBUG" = "" ]
then
rm
-f $TMP $FAXERRORS
else
(
date
set
echo
"---------------------"
echo
$*
echo
"---------------------"
)
>/tmp/smbfax.debug
fi
exit 0
Ezek után fordítsuk le a most leírásra
kerülő c forráskódot
és másoljuk be a /usr/bin könyvtárba faxfilter néven.
/*
* Simples
Programm, dass aus einer Postscriptdatei den Text
<faxnummer:xxx-xxxx>
(faxnumer_ -t keres)
* raussucht
und
loescht
*/
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define SUCHTEXT "faxnummer_"
char FaxNummer[80];
char *getline(FILE *F)
{
static
char l[255];
int
len=0;
char c;
char
*s=l;
*s='\0';
while
(!feof(F))
{
c=fgetc(F);
if
(feof(F)) return l;
if (c==4 || c==13) continue;
if
(c==10) {
*s++=10;
*s=0;
return
l;
}
*s++=c;
*s=0;
len+=1;
if
(len>253) {
return
l;
}
}
return
l;
}
void findnummer(char *s)
{
char
*x=FaxNummer;
s+=strlen(SUCHTEXT);
*x=0;
while
(strchr("0123456789,- \t",*s))
{
if
(*s==' ' || *s=='\t') { s++; continue; }
if
(*s=='-') { s++; continue; }
*x++=*s++;
*x=0;
}
return;
}
int match(char *s)
{
char
*q;
char
*x=NULL;
if
(q=malloc(strlen(s)+1)) {
strcpy(q,s);
for
(x=q;*x;x++) *x=tolower(*x);
x=strstr(q,SUCHTEXT);
if
(x) findnummer(x);
free(q);
}
return
(x!=NULL);
}
main(int argc, char *argv[])
{
FILE
*F,*G;
char
*s;
F=stdin;
G=stdout;
if
(argc>1) {
F=fopen(argv[1],"r");
if
(!F) {
perror("cannot
open inputfile");
exit(1);
}
}
if
(argc>2) {
G=fopen(argv[2],"w");
if
(!G) {
perror("cannot
create outputfile");
exit(1);
}
}
while
(!feof(F)) {
s=getline(F);
if
(!match(s)) fputs(s,G);
else
if(G!=stdout) printf("%s\n",FaxNummer);
}
fclose(F);
fclose(G);
exit(0);
}
Ha ez megvan, akkor a most bemutatásra
kerülő fájlok
tartalmát hasonlítsuk össze a rendszerünkben találhatókkal és
értelemszerűen
javítsuk ki a helyi specifikus dolgokat. Ezek a fájlok Debian alatt a
/etc/mgetty/ könyvtárban vannak.
A fax.allow fájl
tartalma:
# Ebbe a file-ba kell felsorolni
azokat, akik
faxolhatnak...
szabob
ani
morocz
A faxrunq.config
fájl tartalma:
success-send-mail Y
failure-send-mail Y
maxfail-costly 15
maxfail-total 10
#delete-sent-jobs n
A login.config
fájl tartalma:
# Ez gyakorlatilag egyezik a gyári
szkripttel.
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
*
- -
/bin/login
@
A new_fax fájl tartalma:
#!/bin/sh
# Incoming Fax program
# A beerkezett faxot kinyomtatja es
elkuldi e-mail -ben
a
# a faxadmin@ -nak TIFF formatumban.
# by Egresi Peter 1998
# egresip@westel900.net
## (FAX_NOTIFY_PROGRAM in policy.h)
#
HUP="$1"
SENDER="$2"
PAGES="$3"
# HANGUP_CODE="$1"
# SENDER_ID="$2"
# NUMBER_PAGES="$3"
# This script is called when a message was
recorded.
# It gets the following arguments:
#
$1 : the
hangup code
#
$2 : the
remote id
#
$3 : the
number of pages
#
$4... : the
file names
G3TOLJ=/usr/local/bin/g3tolj
USER="szabob@samson.nitrogen.hu"
#ADMIN="root@schsz.schwabo.hu"
TMP=/tmp
TIMESTAMP=`/bin/date +%m.%d_%H:%M:%Sh`
MIME_TIFF=$TMP/TIFF_$TIMESTAMP
MIME_MAIL=$TMP/MAIL_$TIMESTAMP
CAT=/bin/cat
ECHO=/bin/echo
ELM=/usr/bin/elm
G3TOPBM=/usr/local/bin/g32pbm
MMENCODE=/usr/local/bin/mmencode
PNMTOTIFF=/usr/bin/pnmtotiff
RM=/bin/rm
SED=/bin/sed
SENDMAIL=/usr/sbin/sendmail
HEADERLINE_1="MIME-Version: 1.0"
HEADERLINE_2="Content-Type:
multipart/mixed;
boundary="attachment""
ATTACHMENT_HEADERLINE_1="--attachment"
ATTACHMENT_HEADERLINE_2="Content-Type:
image/tiff"
ATTACHMENT_HEADERLINE_3="Content-Transfer-Encoding:
base64"
ATTACHMENT_ENDLINE="--attachment--"
$ECHO "Subject: Erkezett egy FAX a
$SENDER-tol,
$PAGES oldal" > $MIME_MAIL
$ECHO "$HEADERLINE_1" >> $MIME_MAIL
$ECHO "$HEADERLINE_2" >> $MIME_MAIL
$ECHO "" >> $MIME_MAIL
shift 3
P=1
while [ $P -le $PAGES ]
do
FAX=$1
RES=`basename
$FAX | sed 's/.\(.\).*/\1/'`
if [
"$RES" = "n" ]
then
STRETCH="-aspect
2.0"
FELBONTAS="-s"
else
STRETCH=""
FELBONTAS=""
fi
$G3TOLJ
$STRETCH -resolution 300 $FAX | lpr
$G3TOPBM
$FELBONTAS $FAX \
|
$PNMTOTIFF > $MIME_TIFF
$ECHO
"$ATTACHMENT_HEADERLINE_1" >> $MIME_MAIL
$ECHO
"$ATTACHMENT_HEADERLINE_2; name=\"`basename $FAX | cut -f1 -d
\.``basename $FAX | cut -f2 -d \.`.TIF\"" >> $MIME_MAIL
#a fenti két sor egybe tartozik...
$ECHO
"$ATTACHMENT_HEADERLINE_3" >> $MIME_MAIL
$ECHO
"" >> $MIME_MAIL
$MMENCODE
-b $MIME_TIFF >> $MIME_MAIL
$RM -f
$MIME_TIFF
$ECHO
"" >> $MIME_MAIL
shift
P=`expr
$P + 1`
done
$ECHO "$ATTACHMENT_ENDLINE" >>
$MIME_MAIL
$SENDMAIL < $MIME_MAIL $USER
#$SENDMAIL < $MIME_MAIL $ADMIN
$RM -f $MIME_MAIL
exit 0
A faxheader fájl tartalma:
FAX FROM: **CÉGNÉV** (88) 476-234
TO: @T@
PAGE: @P@ OF @M@
Ez fog megjelenni a küldött fax fejlécében.
A mgetty.config fájl tartalma:
#
# mgetty configuration file
#
# this is a sample configuration file, see
mgetty.info
for details
#
# comment lines start with a "#", empty
lines
are ignored
# ----- global section -----
#
# In this section, you put the global
defaults, per-port
stuff is below
# set the global debug level to "4"
(default
from policy.h)
debug 4
# set the local fax station id
fax-id CÉGNÉV
# access the modem(s) with 38400 bps
speed 38400
# use these
options to make the /dev/tty-device owned by "uucp.uucp"
# and mode
"rw-rw-r--" (0664). *LEADING ZERO NEEDED!*
#port-owner uucp
#port-group uucp
#port-mode 0664
# use these
options to make incoming faxes owned by "root.uucp"
# and mode
"rw-r-----" (0640). *LEADING ZERO NEEDED!*
#fax-owner root
#fax-group uucp
#fax-mode 0640
# ----- port specific section -----
#
# Here you can put things that are valid
only for one
line, not the others
#
# Zoom V.FX 28.8, connected to ttyS0:
don't do fax,
less logging
#
#port ttyS0
# debug 3
# data-only y
# some other Rockwell modem, needs
"switchbd
19200" to receive faxes
# properly (otherwise it will fail with
"timeout").
#
#port ttyS1
# speed 38400
# switchbd
19200
# ZyXEL 2864, connected to ttyS2: maximum
debugging,
grab statistics
#
#port ttyS2
# debug 8
# init-chat
"" \d\d\d+++\d\d\dAT&FS2=255 OK ATN3S0=0S13.2=1 OK
#
statistics-chat "" AT OK ATI2 OK
#
statistics-file /tmp/statistics.2864
# modem-type
cls2
# direct connection of a VT100 terminal
which doesn't
like DTR drops
#
#port ttyS3
# direct y
# speed 19200
# toggle-dtr n
A fax-id sorban beírt szöveg jelenik meg a
küldő faxon, mint
a mi faxazonosítónk.
A sendfax.config fájl tartalma:
#
# sendfax configuration file
#
# this is a sample configuration file, see
mgetty.info
for details
#
# comment lines start with a "#", empty
lines
are ignored
# ----- global section -----
#
# In this section, you put the global
defaults, per-port
stuff is below
# tell everybody what's going on
verbose y
# ... and send everything to the log file
(quite
detailed)
debug 5
# which devices to use for outgoing faxes
fax-devices ttyS1:ttyS2
# which fax number to transmit to the
receiving station
fax-id CÉGNÉV
# which command is used to dial out?
(Could be ATD,
ATDP, ATX3D0W...)
#dial-prefix ATD
# try transmitting every page three times,
continue if
3rd try fails as well
max-tries 3
max-tries-continue y
# ----- port specific section -----
#
# Here you can put things that are valid
only for one
line, not the others
#
# Modem on ttyS0 needs special
initialization to do h/w
handshaking
#port ttyS0
# modem-handshake
AT&K4
# Modem on ttyS1 doesn't work reliably in
class 2.0, use
class 2 instead
#port ttyS1
# modem-type
cls2
A fax-id sor tartalma jelenik meg az
ügyfelünk faxán
amikor faxot küldünk neki, mint a mi cégazonosítónk.
A fax-devices sorban tudjuk megadni, hogy
mely portokon
keresse a rendszer a faxmodemünket.
Az installálás végén a biztonság kedvéért
ellenőrizzük, hogy
a fenti fájlokban szereplő programok elérési útjai tényleg helyesek-e a
mi
rendszerünkben is és minden program, amire utalás történt valahol,
megtalálható-e nálunk is.
Ha ez kész, akkor újraindítva a SAMBA-t,
jó esélyünk van a
helyes működésre.
Üljünk át egy windows-os munkaállomásra és állítsuk be a szükséges nyomtatót. Válasszuk ki a SAMBA-n megosztott FAX-ot és rendeljünk hozzá egy POSTSCRIPT nyomtatót. (Pl.: Apple LaserWriter NTX II) A tetszőleges Office dokumentumot (amit faxolni szeretnénk) mentsünk el „faxnummer_telefonszám.kiterjesztés” néven (pl.: faxnummer_0688476234.doc) és nyomtassuk ki a „FAX nyomtatóra”.
Az anyagunkkal nagy vonalakban ez történik:
A SAMBA-FAX „nyomtatási” parancsa a
do_fax. Ez ráengedi a
faxfilter programot a fájlunkra, ami kiszedi a postscript fájl
header-jéből a
telefonszámot. A telefonszámot a faxfilter visszaadja a do_fax-nak, ami
az
egészet odaadja a faxspoolnak, számára elfogadható formában. Ez
csinálja a különböző
konverziókat is a faxok számára elfogadható formátumra és berakja a fax
spool-jába.
Egészen addig ott lesz, amíg ki nem adjuk
a faxrunq parancsot. Ekkor a modem
engedelmesen kitárcsáz és elküldi az összes várakozó faxunkat. (Érdemes
a
faxrunq automatikus futtatásáról gondoskodni kb 10 percenként...)
A bejövő faxok kezelését is rábízhatjuk a
mgetty programra.
Annyit kell tennünk, hogy a /etc/inittab fájlban a megfelelő sor aktív
legyen
(ne legyen „kikommentezve”.
A szükséges /etc/inittab részlet:
T3:23:respawn:/sbin/mgetty –F -x0
-s 115200 /dev/ttyS1
Külön felhívnám a figyelmet a –F opcióra.
Ez oldja meg azt,
hogy a modem CSAK FAX-ra legyen hajlandó válaszolni, másik modemre NE.
(Természetesen egy másik faxmodemről lehet ide faxolni...) Ez két dolog
miatt
is jó:
Egyrészt védve vagyunk a telefonvonalon
keresztüli
betörésektől.
Másrészt vannak régebbi típusú faxok, amik
„megijednek” a
számítógépes faxoktól és lebontják a kapcsolatot, ha a –F opció nincs
beállítva. A módosítás után természetesen adjuk ki az init
q parancsot a módosítások életbe lépéséhez.
Más disztribúciót használva figyelnünk
kell arra, hogy a
felhasznált programok, fájlok a megfelelő helyeken legyenek. SuSE
esetén
figyelni kell arra is, hogy a mgetty konfigurációs fájljai a
/etc/mgetty+sedfax
könyvtárban vannak. Ezenkívül a mgetty programot másképp fordították.
(Pl a
new_fax fájlt nem futtatja le. Ha kényelmesek vagyunk, akkor másoljunk
le egy
debianos mgetty-t, vagy fordítsuk újra a SuSE mgetty-ját megfelelő
paraméterekkel.)
Minden disztribúcióban figyelni kell a
/var/spool/fax/outgoing és incoming könyvtárak elérési jogaira, nehogy
ne
tudjon írni bele a felhasználó.
Ha ezek után valami probléma van, akkor a
do_fax szkriptben
állítsuk be a DEBUG=JA értéket. Ekkor keletkezik pár fájlt a /tmp
könyvtárban,
ami segít a hibakeresésben.
A fenti megoldás Debian és SuSE
disztribúciókon
kifogástalanul működik, más disztribúción még nem próbáltam.
A Linux egyik legnépszerűbb
szerverprogramja az Apache. A
világ web szervereinek több, mint 60%-án apache fut valamilyen unix
rendszer
alatt. Nagyon megbízható, nagyon nagy teljesítményű web szerver.
A DEBIAN disztribúcióban
az
apacheconfig program áll rendelkezésre a szerver paramétereinek testre
szabásában, a Redhat disztribúcióban ugyanezt grafikus felületen
tehetjük meg a
Control-Panel Comanch programjával.
Mindkét programmal elvégezhetjük
ugyanazokat a
beállításokat. Természetesen, ha valaki ragaszkodik a konfigurációs
fájlok
direkt szerkesztéséhez, akkor megteheti ugyanezt egy szövegszerkesztő
segítségével. A fájlok a Debian-ban a /etc/apache könyvtárban
találhatók.
(httpd.conf, access.conf, srm.conf, cron.conf, mime.types)
Célszerű démonként futtatni, de van
lehetőség inetd-n
keresztüli futtatásra is.
A fő konfigurációs fájl a httpd.conf fájl.
Ebben állíthatjuk be a szerver működéséhez
legszükségesebb,
alapvető opciókat. Más disztribúciókban leginkább csak ezt az egy fájlt
használják minden beállításra, de a rendszer ennek a fájlnak az
elolvasása után
megnézi az srm.conf-ot is és az access.conf-ot is. (Hacsak másképp nem
rendelkezünk
a ResourceConfig és az AccessConfig direktívában.)
3 részből áll:
A global szekcióban lévő direktívák
hatással vannak az apache
teljes működésére. Úgy, mint az egy időben beérkező kérések száma, vagy
hol
találhatók meg a konfigurációs fájlok.
A második részben az alap szerver
paramétereinek beállítása
történik.)
Az ebben a szekcióban megadott direktívák
állítják be a fő
szerverben használt paramétereket. Ez a szerver válaszol bármilyen
kérésre
amelyet nem a <virtual host definition> kezel. Ezek az értékek
adják a
bármely virtual host konténerre megadott default értékeket. Ezeket
később
szintén ebben a fájlban határozhatjuk meg a harmadik részben.
Nézzük a főbb beállítási lehetőségeket.
ServerType
Ezzel mondjuk meg a
szervernek,
hogy milyen módban fusson. Ha standalone-t választunk, akkor démonként
fog
futni, ha inetd-t, akkor minden egyes kérésre külön Apache indul. Ha a
szerverünknek nem az elsődleges funkciója a web kiszolgálás, akkor
célszerűbb
az inetd-ből futtatni, mert így nem terheli folyamatosan a szervert az
Apache.
Ha viszont elsődleges életcél a web kiszolgálás, akkor kimondottan
rossz
választás az inetd, mert a sok kérés sok Apache-ot fog indítani és
éppen emiatt
lesz leterhelve a szerver. Ilyenkor célszerűbb a standalone futási
módot választani,
mert igaz, hogy így mindig a memóriában van az Apache, de mivel úgy is
ez az
elsődleges funkciója, ez nem baj. Ebben az esetben a fő Apache processz
mindig
fut, és a felhasználók kiszolgálására „gyerek processzeket” indít. A
gyerekek
indítása már nem terheli le a rendszert annyira, mintha újraindítanánk
az egész
Apache-ot, csak minimális plusz erőforrást igényelnek. (És egy gyerek
ráadásul
nem csak egy felhasználót szolgál ki) Alapbeállítás szerint „standalon”
módban
fut a szerver.
Port
Azt a port számot lehet itt beállítani,
amin a szerver
figyel. Az alapbeállítás szerinti portszám a 80-as. Ha 1023-nál kisebb
portszámon akarjuk használni az Apache-ot, akkor root jogosultsággal
kell
rendelkezni a httpd felett.
HostnameLookups
Egy-egy kérés fogadásakor a gépek az
IP-jük alapján
kommunikálnak egymással. A napló fájlokba is az IP címek kerülnek. Van
lehetőség arra, hogy a napló fájlokba bekerüljenek a gépek nevei, mert
az
Apache szerver meg tudja kérdezni a névkiszolgálótól a kliens gép nevét
az IP-je
alapján. Ez nem mindig szükséges, már csak azért sem, mert ez
időigényes
művelet és általában feleslegesen terheli a szervert. Alapbeállítás
szerint
„off” állásban van, tehát ki van kapcsolva.
User és Group opciók
Ezzel a két opcióval határozhatjuk meg,
milyen felhasználó
–illetve csoport- jogán fog futni a szerver. Az Apache-nak akkor van
szüksége a
root jogra, ha 1024 alatti proton akarjuk futtatni és olyan napló
fájlba
akarunk íratni vele, amihez csak a root-nak van joga. Egyébként nem
kell root
joggal futtatni a szervert. Ha itt beállítunk más felhasználót és
csoportot,
akkor a szerver (root indítás esetén is) vissza tud állni erre a
szintre. Ez
biztonsági okokból is jó megoldás, ha nem hagyjuk meg a root jogot a
szerver
futása során. Az alapbeállítás itt disztribúciótól függ. A Debian
esetében
www-data user és group létezik, Red Hat esetén pedig nobody.
ServerAdmin
Ebben az opcióban meg lehet adni a szerver
üzemeltetőjének
e-mail címét. A szerver probléma esetén ide fog levelet küldeni.
ServerRoot
A szerver konfigurációs fájljainak, napló
fájljainak, hiba
fájljainak helyét lehet megadni itt. Ha ez a könyvtár nem a szervert
futtató
gépen található fizikailag (pl. NFS), akkor további információkra lesz
szükségünk a helyes működéshez. Alapértéke ennek Debian alatt
/etc/apache, Red
Hat alatt /etc/httpd/conf.
BindAddress
Ezzel az opcióval a virtuális web szerver
funkciót támogatja
az Apache. Azokat az IP címeket lehet itt megadni, amelyeken a web
szerver
figyel és amelyeken elfogad kéréseket ezt az IP-t tartalmazó
hálózatról. Ha itt
* van megadva, akkor a szerver összes IP címét használhatjuk. Ezzel a
módszerrel IP alapú virtuális szervert üzemeltethetünk, ha mindegyik
IP-hez
külön elindítunk egy Apache-ot. (Erről később még lesz szó.)
Ha például van a szerverünkben egy
hálózati kártya és egy
modem, mert az intranetes web szerverünk a kapcsolattartó gép is a
külvilággal,
akkor célszerű a BindAddress opciónál eltávolítani a *-ot és csak a
hálózati
kártya címét megadni itt. Ez egy egyszerű módja annak, hogy a külvilág
elől
elrejtsük web szerverünk tartalmát, ha más védelmet nem használunk.
A modulok konfigurálása következik a
sorban. A modulok
megfelelően elkészített külső fájlok, melyek új képességekkel látják el
a web
szervert és melyeket az Apache képes betölteni indításkor. A kernel
ismertetésekor is volt már szó modulokról. Ezek funkciója teljesen
hasonló.
Annyi különbség van, hogy míg a kernel modulok csak a használat ideje
alatt
vannak betöltve és amikor használaton kívül vannak, akkor nincsenek a
memóriában,
az Apache moduljai az Apache indításakor töltődnek be és a futás végéig
a
memóriában maradnak. Ezek használata tehát akkor kényelmes, ha nem
akarjuk az
egyes funkciók kipróbálásához minden egyes alkalommal újra fordítani az
Apache
szervert. Elég csak a megfelelő sorok előtti # jelet eltávolítani, ill.
beilleszteni, és csak újra kell indítani az Apache-ot az új funkciók
működtetéséhez.
Itt látható egy tipikus modullista. (A #
jellel kezdődő
sorok nincsenek betöltve.)
# LoadModule env_module /usr/lib/apache/1.3/mod_env.so
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
# LoadModule status_module /usr/lib/apache/1.3/mod_status.so
# LoadModule info_module /usr/lib/apache/1.3/mod_info.so
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so
# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so
# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so
# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so
# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so
# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so
# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so
# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so
# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so
LoadModule php3_module /usr/lib/apache/1.3/libphp3.so
Érdekességként csak
megemlíteném,
hogy az utolsó sorban betöltött php3 modul mire szolgál. A Linux számos
adatbázis szerver programot képes futtatni. (Oracle, IBM DB2, Sybase,
Adabas,
Magic, Interbase, hogy csak a nagyobbakat említsem.) Ha történetesen a
helyi
intraneten a web szerveren keresztül akarunk a felhasználóknak
adatbázis
elérést biztosítani, akkor a web lapokba beépíthetünk a php3-nak szóló
kéréseket is, ami aztán képes azt továbbítani az adatbázisnak, és rajta
keresztül megkapjuk a kívánt eredményt.
ErrorLog
A hibajelzéseket tartalmazó fájl helyét
határozza meg. A
Debian-ban az alapértelmezett hely a /var/log/apache könyvtár, ahol az
Apache
napló fájlok találhatók. Az error.log-ba kerülnek a hiba üzenetek, az
access.log-ba a forgalom naplózása.
KeepAlive On
Ha egy kliens rákapcsolódik a
szerverünkre, akkor növeli a
teljesítményt, ha a kérésének kielégítése után nem kell leválnia, hanem
kérhet
még mást is tőlünk, anélkül, hogy újra kapcsolódnia kellene. Ha ez a
kapcsoló
itt ’on’ állásban van, akkor engedélyezzük az ilyen fajta kommunikációt.
MaxKeepAliveRequests 100
Ha az előbbi opcióban engedélyeztük a több
kérés kielégítését,
akkor itt megadhatjuk, hogy maximálisan hány kérést elégíthet ki neki,
mielőtt
elbontaná a kapcsolatot. Ha 0, akkor nincs limit.
KeepAliveTimeout 15
Ha a fenti két opció engedélyezve van,
akkor 15 másodperces
várakozás után a két kérés között, kilépteti a klienst.
MinSpareServers 5
MaxSpareServers 10
Minimálisan (és maximálisan) ennyi nem
dolgozó szerver fut, hogy
jó gyorsan ki lehessen szolgálni a kéréseket. Ne akkor kelljen gyerek
processzt
indítani, amikor már itt a kérés.
StartServers 5
Ennyi szerver fog elindulni a fő szerver
indulásakor.
MaxClients 150
Egyszerre ennyi kliens tud rákapcsolódni a
szerverünkre.
MaxRequestsPerChild 30
Egy gyerek processz maximum ennyi kérést
szolgál ki, mielőtt
meghal. A gyermek processzek halála azért is hasznos, mert ha valami
oknál
fogva hibásan működik, akkor az kevés kiszolgálást fog érinteni, mivel
indul
helyette egy új jó.
Az Apache nagyon stabil és jó web szerver.
A második fájl, amivel foglalkoznunk kell,
az access.conf, ami a
fájl hozzáférést szabályozza. Ebben a fájlban tudjuk megadni, hogy a
web
szerver mely könyvtáraihoz milyen jogosultsággal férhetnek hozzá a
felhasználók. Minden beállítást egy különálló szekcióban valósíthatunk
meg.
Egy könyvtár hozzáférés beállítása pl. így
néz ki:
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride none
order allow,deny
allow from all
</Directory>
Az első sorban a Directory után adjuk meg
a könyvtár nevét,
amire a szekció vonatkozik. Egy könyvtárat mindenképpen adjunk meg,
mert
egyébként nem elérhető a web szerverünk. Ebben a beállításban, ami
egyébként a
Debian alapbeállítása a /var/www könyvtár érhető el alapértelmezés
szerint
mindenki számára.
Az Options kezdetű sorban az Indexes,
Includes, FollowSymLinks,
ExecCGI, MultiViews opciók kombinációit adhatjuk meg, vagy egyszerűen a
None,
vagy az All opcióval semmit, vagy minden opciót kérhetünk.
Az AllowOverride kezdetű sorban van
lehetőségünk, hogy
felülbíráljunk bizonyos, erre a könyvtárra vonatkozó beállításokat.
Erre később
visszatérünk.
Az order kezdetű sorban adható meg, hogy
milyen sorrendben
értékelje ki a hozzáférési engedélyeket (amiket a következő sorokban
adhatunk
meg). Ha order allow,deny alakban adjuk meg, akkor először az allow
kezdetű
sorokat értékeli ki, majd ezután a deny kezdetűeket és az alapbeállítás
a deny.
Ha order deny,allow a sorrend, akkor először a deny sorokat értékeli
ki, majd
ezután az allow kezdetűeket és az allow az alapbeállítás. Tehát a mi
esetünkben
először az allow kezdetűeket érékeli ki, ami most azt közli a
szerverrel, hogy
bárhonnan elérhető a /var/www könyvtárunk. Ezután értékelné ki a deny
sorokat
(az most nincs) és deny az alapbeállítás.
És ezzel készen is vagyunk, tehát lezárjuk
a szekciót egy
</Directory> sorral.
Akkor most nézzük meg, mit jelent a
felülbírálat. Ha a /var/www
könyvtárban majd további könyvtárakra is akarunk engedélyeket adni, de
más
beállításokkal, akkor felül kell bírálni bizonyos jogosultságokat. Ha
valamin
változtatni akarunk, akkor abban a könyvtárban el kell helyezni egy
.htaccess
fájlt. Ebben van lehetőségünk az eltéréseket megadni. Jó és gyakran
használt
példa erre a felhasználói azonosítás lehetősége.
Tegyük fel, hogy web szerverünk /var/www
könyvtárát mindenki
elérheti, de van egy /var/www/secret könyvtár, amit csak felhasználói
azonosítással akarunk elérhetővé tenni. Ehhez először is létre kell
hozni egy
felhasználói adatbázist (ami -sajnos, vagy szerencsére- nem egyezik meg
a
rendszerünkön létező felhasználókkal).
Ezt az adatbázist a htpasswd
programmal hozhatjuk létre és a karbantartását is ezzel végezhetjük el.
Ha új
fájlt hozunk létre, akkor a htpasswd -c
fájlnév felhasználónév alakot használjuk. Ha már meglévő fájlt
módosítunk,
akkor a -c kapcsolót hagyjuk el!
Pl.: htpasswd -c
/etc/apache/passwd
kuka
Ennek hatására a program létrehozza a
/etc/apache/passwd fájlt,
amibe egyúttal fel is veszi a kuka felhasználót és meg is kérdezi a
jelszavát.
A fájl neve bármi lehet és lehetőleg ne a web szerveren keresztül
elérhető (és
onnan letölthető) helyre tegyük, bár a jelszavak kódolva vannak.
Eddig még nem volt szó a secret könyvtár
eléréséről. Most hozzuk
létre a secret könyvtárban a .htaccess fájlt a következő tartalommal:
AuthUserFile /etc/apache/passwd
AuthName "Titkos hely"
AuthType Basic
<LIMIT CONNECT>
require valid-user
</LIMIT>
Ez után az access.conf fájlban hozzunk
létre egy új szekciót a
/var/www/sercet könyvtárnak amiben mindenképpen legyen benne az
AllowOverride
AuthConfig sor.
Ezzel biztosítjuk, hogy ebben a
könyvtárban az azonosítás
felülbírált.
Ezzel kész vagyunk, a feladatot
megoldottuk.
Ha egy könyvtárra vonatkozó AllowOverride
direktíva None,
akkor le van tiltva erre a könyvtárra a .htaccess fájl használata.
Ebben a fájlban további beállításokat
végezhetünk el azzal
kapcsolatban, hogy a felhasználók mit látnak a szerverünkből, milyen
szolgáltatásokat érhetnek el. Ebben a fájlban lehet még azt is
beállítani, hogy
a különböző hatásokra hogyan reagál a szerver és milyen formában fog
megjelenni
az eredmény.
DocumentRoot után megadott könyvtár
tartalmazza a szerveren
elérhető dokumentumainkat. Alapbeállítás szerint minden kérést ebből a
könyvtárból elégítünk ki, de szimbolikus linkek és aliasok mutathatnak
más
könyvtárakra.
DocumentRoot /var/www
UserDir direktívával lehet megadni azt a
könyvtárat, ami
akkor érhető el, ha http://szerver/~username
kérés érkezik a szerverünkre. (Ezzel a megoldással lehet olyan szervert
készíteni,
ahol a felhasználóinknak megengedjük, hogy saját web lapjuk legyen és
azt ők
tarthassák karban.) Ha ez pl. így néz ki: UserDir /home/*/sajathtmls és
létezik
a felhasználók home könyvtáraiban a sajathtmls könyvtár, akkor az itt
található
lapok elérhetők. (Persze ugyanúgy vonatkozik rá minden más beállítás,
mint a
többi elérhető könyvtárra.)
UserDir /home/*
DirectoryIndex direktívával adhatjuk meg
azokat a HTML
fájlneveket, melyek be fognak töltődni, ha erre a helyre jön kérés és
nem
adtunk meg konkrét lapot. Tehát, ha ez így van megadva: DirectoryIndex
index.html index.htm honlap.html és ez a könyvtár tartalmaz ilyen nevű
állományok valamelyikét, akkor erre a helyre ugorva el fog indulni
automatikusan
a fájlok valamelyike. Mint látjuk, több fájlt is meg lehet adni. Ezeket
egyszerűen csak egy szóközzel kell elválasztani és arra kell ügyelni,
hogy a
leírás sorrendjében fogja keresni a szerver a fájlokat. Tehát, ha van
index.html és honlap.html is, akkor az index.html fog indulni.
DirectoryIndex index.html
A FancyIndexing sorral tudjuk
engedélyezni, hogy a
könyvtárlista nézet „díszesen” legyen látható. (pl. ikonok használata a
különböző fájltípusokhoz) Ennek akkor van értelme, ha engedélyezzük a
könyvtárlista kérést abban az esetben, ha nem létező lapot akar valaki
letölteni szerverünkről.
FancyIndexing on
A további opciók erre vonatkoznak. Meg
tudjuk adni a
használt ikonokat a különböző fájltípusokhoz, mit reagáljon a szerver
különböző
típusú fájlok elérése esetén, stb. Az Apache alapbeállításait célszerű
kipróbálni, mielőtt módosítunk rajta.
# AddIcon tells the server which icon to show for different files or filename
# extensions
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
DefaultIcon /icons/unknown.gif
# AddDescription allows you to place a short description after a file in
# server-generated indexes.
# Format: AddDescription "description" filename
# ReadmeName is the name of the README file the server will look for by
# default. Format: ReadmeName name
#
# The server will first look for name.html, include it if found, and it will
# then look for name and include it as plaintext if found.
#
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README
HeaderName HEADER
# IndexIgnore is a set of filenames which directory indexing should ignore
# Format: IndexIgnore name1 name2...
IndexIgnore .??* *~ *# HEADER* README* RCS
AccessFileName Erről a fájlról már volt
szó, amikor a
hozzáférési jogokról beszéltünk. Alapértelmezés szerint a neve
.htaccess. Ez
módosítható ebben a direktívában.
AccessFileName .htaccess
Ha egy olyan fájlt próbálunk elérni a
szerveren, amely
típushoz nincs definiálva alkalmazás, akkor itt megadható, hogy milyen
fájlként
kezelje a szerver.
# DefaultType is the default MIME type for documents which the server
# cannot find the type of from filename extensions.
DefaultType text/plain
# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress
# information on the fly. Note: Not all browsers support this.
AddEncoding x-compress Z
AddEncoding x-gzip gz
# AddLanguage allows you to specify the language of a document. You can
# then use content negotiation to give a browser a file in a language
# it can understand. Note that the suffix does not have to be the same
# as the language keyword --- those with documents in Polish (whose
# net-standard language code is pl) may wish to use "AddLanguage pl .po"
# to avoid the ambiguity with the common suffix for perl scripts.
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage it .it
AddLanguage es .es
AddLanguage br .br
AddLanguage jp .jp
AddLanguage dk .dk
AddLanguage pl .pl
AddLanguage kr .kr
# LanguagePriority allows you to give precedence to some languages
# in case of a tie during content negotiation.
# Just list the languages in decreasing order of preference.
LanguagePriority en fr de
# Redirect allows you to tell clients about documents which used to exist in
# your server's namespace, but do not anymore. This allows you to tell the
# clients where to look for the relocated document.
# Format: Redirect fakename url
# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example.
Van lehetőségünk alias nevek használatára
a következő
formában:
Alias álnév valódinév
Ezzel elérhetjük, hogy bizonyos
hivatkozások egészen más
helyre mutassanak, mint amit leírunk.
Alias /icons/ /usr/share/apache/icons/
# ScriptAlias: This controls which directories contain server scripts.
# Format: ScriptAlias fakename realname
Hasonló a fenti aliashoz, de CGI
szkriptekre érvényes. Be
lehet vele állítani, hol találhatók a szerveren a CGI szkriptek.
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
# Format: AddType type/subtype ext1
A MIME típusok definiálására szolgál. Ha
olyan típust
akarunk definiálni az Apache szerverre, amit nem akarunk a többi MIME
definíció
közé rakni, akkor célszerű itt definiálni ezzel a direktívával.
# For example, the PHP3 module (a separate Debian package)
# will typically use:
#AddType application/x-httpd-php3 .phtml
#AddType application/x-httpd-php3-source .phps
Hasonló az előzőhöz, de itt a MIME típus
kezelőjének a nevét
adhatjuk meg.
# AddHandler allows you to map certain file extensions to "handlers",
# actions unrelated to filetype. These can be either built into the server
# or added with the Action command (see below)
# Format: AddHandler action-name ext1
# To use CGI scripts:
#AddHandler cgi-script .cgi
# To use server-parsed HTML files
#AddType text/html .shtml
#AddHandler server-parsed .shtml
# Uncomment the following line to enable Apache's send-asis HTTP file
# feature
#AddHandler send-as-is asis
# If you wish to use server-parsed imagemap files, use
#AddHandler imap-file map
# To enable type maps, you might want to use
#AddHandler type-map var
# Action lets you define media types that will execute a script whenever
# a matching file is called. This eliminates the need for repeated URL
# pathnames for oft-used CGI file processors.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
# Customizable error response (Apache style)
# these come in three flavors
#
# 1) plain text
#ErrorDocument 500 "The server made a boo boo.
# n.b. the (") marks it as text, it does not get output
#
# 2) local redirects
#ErrorDocument 404 /missing.html
# to redirect to local url /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# n.b. can redirect to a script or a document using server-side-includes.
#
# 3) external redirects
#ErrorDocument 402 http://some.other_server.com/subscription_info.html
#
# mod_mime_magic allows the server to use various hints from the file itself
# to determine its type.
#MimeMagicFile conf/magic
# The following directives disable keepalives and HTTP header flushes.
# The first directive disables it for Netscape 2.x and browsers which
# spoof it. There are known problems with these.
# The second directive is for Microsoft Internet Explorer 4.0b2
# which has a broken HTTP/1.1 implementation and does not properly
# support keepalive when it is used on 301 or 302 (redirect) responses.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
# The following directive disables HTTP/1.1 responses to browsers which
# are in violation of the HTTP/1.0 spec by not being able to grok a
# basic 1.1 response.
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
Alias /doc/ /usr/doc/
## The above line is for Debian webstandard 3.0, which specifies that /doc
## refers to /usr/doc. Some packages may not work otherwise. – apacheconfig
Az Apache web szerver használható az
installálás után
azonnal, de ha nagyobb teljesítményt, vagy több lehetőséget akarunk
kihozni
belőle, akkor célszerű végignézni a fenti beállításokat.
Az Internet világában nagyon elterjedt a használata a különböző proxy programoknak. Feladatuk általában az, hogy valamilyen szűrést végezzenek az adatok hozzáférésében, szabályozzák a hálózat forgalmát. Nagy hasznát vehetjük az ilyen programoknak, ha pl. intranet hálózatot üzemeltetünk, és nem kívánunk minden számítógépünknek hivatalosan bejegyzett címet regisztráltatni az interneten. Ekkor elég, ha egy gépet ismer az Internet a mi hálózatunkból, a többi gép Internet felé irányuló kéréseit ez a gép képes kielégíteni, ha működik rajta egy proxy program. Nem elhanyagolható szempont az sem, hogy ekkor intranetünk jóval kevésbé sebezhető. (A külvilág az egész hálózatból mindössze egyetlen gépet lát.) A megoldás lényege az, hogy az intranet gépein lévő programok –pl. böngésző program- minden kéréssel a proxyhoz fordul. A proxy jegyzi a kérést, továbbítja a külvilág felé. A választ ő kapja a külvilágtól, majd továbbítja azt a kérőnek. Nagyon fontos lehetőség, hogy nem csak egyszerűen veszi a kérést, hanem mielőtt továbbítaná azt, képes arra, hogy feldolgozza a kérőnek VAN E JOGA megtekinteni a kért információt. A legtöbb proxy képes szűrni munkaállomás alapján (IP cím), és felhasználó alapján is. A másik nagyon hasznos képesség a proxyknál a CACHE megléte. Ha egy kérést már továbbított a proxy, akkor a kért anyag tárolódik a cache-ben és ha más valaki is ugyanazt szeretné letölteni, akkor már nem kell megvárnia egy újabb letöltést, hanem a cache-ből kielégíthető a kérése.
A LINUX egyik legnépszerűbb proxy cache
szerverprogramja a
SQID. Nagy teljesítményű, a GNU GPL alá tartozó szoftver, mely képes
FTP, HTTP
és GOPHER protokollokon keresztüli kéréseket kiszolgálni a WEB kliensek
számára.
Működik LINUX, FreeBSD, BSDI, OSF, Digital
Unix, Irix,
SunOS/Solaris, NeXTStep, SCO Unix, AIX, HP-UX operációs rendszereken.
Van
lehetőség WINDOWS NT rendszeren is használni (GNU-Win32 csomagon
keresztül), de
így nem túl jó a teljesítménye. Ezen a rendszeren inkább más megoldást
válasszunk.
A metaadatokat és az éppen használt
objektumokat a RAM-ban
tárolja. (Ebből következik, hogy ha egy SQUID-ot akarunk futtatni egy
szerver
gépen, akkor a nagyobb teljesítmény érdekében ajánlott a nagy memória
használata.) Cache-eli a DNS kéréseket és implementálva van a
sikertelen
kérések negatív cache-elése.
Támogatja az SSL-t. Alapkiépítésben a
SQUID minden SSL kérést
direkt módon továbbít az eredeti szervereknek. Ha tűzfal mögött
használjuk,
akkor minden SSL kérést egy adott másik proxynak továbbít. (ssl_proxy
direktíva)
Több proxy hierarchikus sorba köthető
(ICP/Internet Cache
Protocol) ezáltal a sávszélességgel hatékonyan tudunk spórolni.
Lehetőség van
arra is, hogy az intranetünk összes gépe a SQUID szerverünket érje el a
helyi
WEB szerver helyett és így minden kérést ő fog kielégíteni, ezáltal
megint csak
gyorsulhat az adatelérés. (A WEB szervert csak a SQUID szerver fogja
szólítgatni.) Minden igényt kielégítő naplózási rendszere van.
Összességében elmondható, hogy ha elegendő
a helyi hálózat
számára a WEB HTTP-n, GOPHER-en és az FTP URL-en keresztüli használata
és
kontrollálni szeretnénk a hozzáférést, akkor kiváló megoldást biztosít
számunkra a SQUID. (A levelezés természetesen más lapra tartozik, a
kettő nem
zárja ki egymást. A WEB eléréshez üzemeltethetünk SQUID-ot, a
levelezéshez
pedig egy másik, esetleg ugyanazt a gépet is használhatjuk.)
Mivel a metaadatokat és az éppen használt
objektumokat a
memóriában tárolja, egyetlen fontos dolog a nagy méretű RAM a gépbe.
Nem kell
különlegesen erős processzor. A cache nagy része a winchestereken
tárolódik,
tehát ha hatékony cache-t szeretnénk, akkor nagy és gyors
winchesterekre van
szükségünk.
A hivatalosan ajánlott konfiguráció egy
nagy teljesítményű
proxy cache szerver felépítéséhez (1999 első negyedév):
CPU:
2xPentiumII
RAM:
512MB
HD:
5x9GB
UW-SCSI
(Ne vessük el a proxy építésének ötletét,
ha nem rendelkezünk
ezzel a konfigurációval. Cégünknél „takarékossági okokból” egyetlen
64MB RAM
memóriájú Pentium166-os gépen üzemel egy WEB szerver, egy SQUID
szerver, egy
SAMBA szerver és egy levelező szerver (SENDMAIL) minden probléma
nélkül, ahogy
azt a Linuxtól megszoktuk ezen a területen.)
A finombeállításokat egyetlen fájlban
tehetjük meg:
/etc/squid.conf (DEBIAN) /etc/squid/squid.conf (SuSE, Redhat) A LINUX
disztribúciók általában tartalmazzák.
Indítani (és leállítani) lehet kézzel az
indító szkripteken
keresztül start (és stop)
paraméterrel (/etc/init.d/squid –
DEBIAN, /etc/rc.d/init.d/squid –
SuSE, Redhat), vagy automatikusan a megfelelő rcx.d
könyvtárba helyezve:
samson:~# ls -al /etc/rc3.d/S30squid lrwxrwxrwx 1 root root 5 May 31 14:29 /etc/rc3.d/S30squid -> /init.d/squid
A fenti eredményt elérhetjük egyszerűen
parancssoron
keresztül (pl DEBIANban) az
ln –s /etc/init.d/squid /etc/rc3.d/S30squid
parancs
kiadásával, vagy grafikus segédprogram használatával (pl. FVWM2
ablakkezelőn a Control-Panel/Runlevel editor a
Redhatban, és KDE ablakkezelőn is.) A parancssoros változat
természetesen mindegyik
disztribúcióban működik, csak az esetlegesen eltérő elérési utakra
figyeljünk.
A /etc/rc.d/init.d/squid.init fájl egy
lehetséges tartalma a
Redhat alapbeállítása szerint a következő:
#!/bin/sh
#
# squid.init
This shell script takes care of starting and stopping
#
squid
#
# Source function library.
. /etc/rc.d/init.d/functions
SQUID_HOME=/usr
[ -f $SQUID_HOME/bin/squid ] || exit 0
case "$1" in
start)
echo -n
"Starting squid: "
daemon
$SQUID_HOME/bin/squid -D &
echo
touch
/var/lock/subsys/squid
;;
stop)
echo -n
"Shutting down squid"
killall
-TERM $SQUID_HOME/bin/squid
sleep 2
killproc
$SQUID_HOME/bin/squid
echo
rm -f
/var/lock/subsys/squid
;;
*)
echo
"Usage: squid.init {start|stop}"
exit 1
esac
exit 0
Figyeljük meg, hogy ha az első paraméter start, akkor a squid démonként fog
indulni -D opcióval, ami
azt jelenti, hogy tiltsa le a DNS tesztet. (A SQUID induláskor megnéz
néhány
jól ismert DNS-t, hogy a name szerverünk működését leellenőrizze.) A
lényegesebb opciók a következők:
-a portszám
Az
alapbeállítástól (3128) eltérő portszám használata a bejövő HTTP
kérésekhez.
Általában nem szokás változtatni.
-f fájl név Az
alapbeállítástól eltérő konfigurációs fájl neve az elérési útjával
együtt.
-h
A help
kérése.
-k reconfigure
A konfigurációs fájl újra olvastatása.
-u portszám
Az
alapbeállítástól eltérő ICP port használata.
-v
Verziószám
kiíratása.
-z
Elkészíti
a swap könyvtárakat. Első indításkor célszerű ezzel a paraméterrel
indítani a
squidot, vagy ha módosítottunk a swap szerkezeten. (Ha valamelyik
disztribúcióval együtt automatikusan kerül fel a squid, akkor
valószínűleg nem
kell ezt megtennünk első indításkor.) Ha nem működik, akkor ezt nézzük
meg
először. Ha tiszta cache-el akarjuk indítani a SQUID-ot, akkor is
használhatjuk
ezt.
-D
Nem hajtja
végre a DNS tesztet.
-V
Engedélyezi
a virtual host támogatást httpd_accelerator módban.
Az elterjedt böngésző programok fel vannak
készítve a proxyk
használatára. Van lehetőségünk kézi és automatikus konfigurálásra is.
Netsape változatokban a
/edit/preferences/advanced/proxyes
párbeszédablakban állíthatjuk be kézzel, vagy java szkript segítségével
automatikusan a proxy használatát.
Pl.: Kézi beállítás esetén a manual…
ablakot kell kinyitni
és a HTTP, GOPHER, FTP helyeken írjuk be a proxy szerverünk nevét, vagy
IP
címét és a portszámot (ami, ha másképp nem rendelkezünk, akkor 3128)
Ez itt egy minta java szkript az
automatikus
konfiguráláshoz: (Oskar Pearson munkája)
//We (www.is.co.za) run a central cache for our customers that they
//access through a firewall - thus if they want to connect to their intranet
//system (or anything in their domain at all) they have to connect
//directly - hence all the "fiddling" to see if they are trying to connect
//to their local domain.
//Replace each occurrence of company.com with your domain name
//and if you have some kind of intranet system, make sure
//that you put it's name in place of "internal" below.
//We also assume that your cache is called "cache.company.com", and
//that it runs on port 8080. Change it down at the bottom.
//(C) Oskar Pearson and the Internet Solution (http://www.is.co.za)
function FindProxyForURL(url, host)
{
//If they have only specified a hostname, go directly.
if (isPlainHostName(host))
return "DIRECT";
//These connect directly if the machine they are trying to
//connect to starts with "intranet" - ie http://intranet
//Connect directly if it is intranet.*
//If you have another machine that you want them to
//access directly, replace "internal*" with that
//machine's name
if (shExpMatch( host, "intranet*")||
shExpMatch(host, "internal*"))
return "DIRECT";
//Connect directly to our domains (NB for Important News)
if (dnsDomainIs( host,"company.com")||
//If you have another domain that you wish to connect to
//directly, put it in here
dnsDomainIs(host,"sistercompany.com"))
return "DIRECT";
//So the error message "no such host" will appear through the
//normal Netscape box - less support queries :)
if (!isResolvable(host))
return "DIRECT";
//We only cache http, ftp and gopher
if (url.substring(0, 5) == "http:" ||
url.substring(0, 4) == "ftp:"||
url.substring(0, 7) == "gopher:")
//Change the ":8080" to the port that your cache
//runs on, and "cache.company.com" to the machine that
//you run the cache on
return "PROXY cache.company.com:8080; DIRECT";
//We don't cache WAIS
if (url.substring(0, 5) == "wais:")
return "DIRECT";
else
return "DIRECT";
}
Internet Explorer használata esetén a
/nézet/beállítások/kapcsolat
ablakban jelöljük meg a „Kapcsolódás proxy kiszolgálón keresztül”
jelölő
négyzetet, majd a „beállítások…” ablakban a HTTP, GOPHER, FTP sorokban
adjuk
meg a Netscape-hez hasonló módon a proxy gép nevét (vagy IP címét) és a
port számot.
Az installáláskor keletkező squid.conf
fájl gyakorlatilag
használható bármilyen módosítás nélkül. A finomhangolás itt is ajánlott.
Mint már volt róla szó, van lehetőség gép
szerint (IP cím)
és felhasználó szerint szabályozni a hozzáférést. A feladat a
squid.conf fájl
editálásával oldható meg az ún. ACL-eken keresztül. (Access Control
List)
Az ACCESS
CONTROLS szekcióban lévő acl
soroknak a következő képpen kell kinézni:
acl név típus sztring, v. fájl név
pl:
acl
manager proto cache_object
Ez azt jelenti, hogy
manager néven
felvettünk egy proto típusú
acl-t, ami a cache_object
protokoll
használatára vonatkozik. (Cache manager használata)
acl
localhost src 127.0.0.1/255.255.255.255
Ez azt jelenti, hogy a
localhost
névvel felvettünk egy src típusú acl nevet, és ez a helyi gépet jelenti
(127.0.0.1/255.255.255.255)
acl
all src 0.0.0.0/0.0.0.0
Ez azt jelenti, hogy all
névvel
felvettünk egy src típusú acl-t, ami az egész internetet jelenti.
(0.0.0.0/0.0.0.0)
Ezt használjuk majd általános tiltásra, engedélyezésre.
Ezeket a squid.conf
alapértelmezés
szerint tartalmazza.
acl
elegvolt time 08:00-12:00
Ez azt jelenti, hogy
elegvolt néven
felvettünk egy time típusú acl-t, ami a 8 és 12 óra közötti eseményekre
vonatkozik.
acl
lanyok url_regex \.sex persiankitty whitehouse xxx aaa
Ez azt jelenti, hogy
lanyok néven
felvettünk egy url_regex típusú acl-t, ami azokra az URL-ekre
vonatkozik, amikben
szerepelnek az utána következő minták.
acl
private src 192.168.1.10/255.255.255.255 192.168.1.11/255.255.255.255
Felvettünk egy private
nevű src
típusú acl-t, amibe két gép tartozik.
acl
joido src 192.168.1.10/255.255.255.255 192.168.1.11/255.255.255.255
192.168.1.12/255.255.255.255
Felvettünk egy joido nevű
src
típusú acl-t, amibe három gép tartozik.
acl
johostok srcdomain nitro.hu
Felvettünk egy johostok
nevű
srcdomain típusú acl-t, ami a nitro.hu doménről érkező kérésekre
vonatkozik.
A nevek felvétele után a http_access sorok
jönnek a
következő formában:
http_access allow|deny [!]aclnév
pl:
http_access
deny manager !localhost
Ez megtiltja a cache
manager
használatát mindenkinek, kivéve a helyi gépnek.
http_access
deny elegvolt !joido
Ez megtiltja a WEB
hozzáférést 8 és
12 óra között mindenkinek, kivéve a joido csoportban szereplő három
gépnek. (Ők
8 és 12 között is használhatják a proxyn keresztül a WEB-et.)
http_access
deny lanyok !private
Ez megtiltja a lanyok-ban
definiált
mintákat tartalmazó URL-ek megtekintését mindenkinek, kivéve a private
csoportba tartozó két gépnek. (Ők ezeket is letölthetik.)
http_access
deny all !johostok
Ez megtilt minden
hozzáférést
mindenkinek, kivéve azoknak a gépeknek, amik a nitro.hu doménben vannak.
http_access
allow all
Ez megenged minden
hozzáférést
mindenkinek, amit eddig még nem definiáltunk.
További használható
típusok:
acl
aclname dst ip-address/netmask
...
(URL host's IP address)
acl
aclname dst ip-address/netmask
...
(URL host's IP address)
acl
aclname urlpath_regex \.gif$ ... # regex
matching on URL path only
acl
aclname port 80 70 21 ...
acl
aclname method GET POST ...
acl
aclname browser regexp
acl
aclname user username ...
# string match on ident output.
Első látásra talán kicsit nehezen érthető
és túl
bonyolultnak tűnik ez a szabályrendszer. A könnyebb érthetőség kedvéért
úgy
képzeljük el az egészet, mint egy szűrőt, ami felülről lefelé elindulva
az első
rá illeszkedő mintánál megállítja a kérés feldolgozását.
Tehát, ha valaki a cache manager cgi-jét
akarja futtatni,
akkor máris elakad a szűrő első sorában. Ez megvizsgálja, hogy a kérés
a helyi
gépről érkezett-e. Ha igen, akkor engedi a hozzáférést, ha nem, akkor
tiltó
üzenetet kap.
Ha valaki 11 órakor szeretne egy lapot
letölteni, akkor az
első sor nem áll útjában. A második viszont igen. Megnézi, hogy a kérés
az
engedélyezett három gép valamelyikéről jött-e. Ha igen, akkor engedi
tovább, ha
nem, akkor tiltó üzenetet kap. Ha történetesen a kérés a 192.168.1.12
gépről
jött és a sexben szereplő mintát talál a kért URL-ben, akkor nem engedi
tovább
a következő (3.) sor. (A 192.168.1.11 gépről tovább engedte volna)
Ha valaki 12 óra után küld egy sex-el nem
ellenkező kérést,
akkor eljut egészen a 4. sorig. Ott megnézi, hogy a kérés a nitorgen.hu
doménről jött-e. Ha onnan jött, akkor kiszolgálja. Ha nem, akkor
megfogta.
Ezzel elérhetjük például, hogy csak a name serverünkben bejegyzett
gépek
használhassák a proxynkat.
Az utolsó sornak ebben az esetben sok
jelentősége nincsen,
mert elég jól lefedtük a felmerülő lehetőségeket. Egyébként, ha egy
másképp
felépített szabályrendszerben eljut egy kérés idáig, akkor azt
teljesíti. Ha
itt http_access deny all állna, akkor minden előzőleg le nem kezelt
kérést
visszautasítana a proxy.
Ennyi magyarázat után gondolom nem fog
nehézségbe ütközni
egy saját, gépeket figyelő szabályrendszer felállítása. Többször
említettem a
magyarázat közben a tiltó üzenetet. Ha a proxy nem tud, vagy nem
szolgálhat ki
egy kérést, akkor üzenetet küld a kérelmező gépre. Van egy beépített
hibaüzenet
könyvtára a SQUID-nak, amit használ. A 2.0 verziótól kezdve ez a
könyvtár
magyarul is megtalálható. (DEBIAN rendszerben a
/usr/lib/squid/errors/Hungarian
könyvtár) Ha ezt állítjuk be az
„error_directory
/usr/lib/squid/errors/Hungarian”
opcióval, akkor magyarul kapja a
felhasználó az üzeneteket.
Van egy másik –elegánsabb- lehetőségünk is a korlátozásaink közlésére:
deny_info
http://www.nitro.hu/tilos1.html private
deny_info
http://www.nitro.hu/tilos8.html joido
deny_info
http://www.nitro.hu/tilos9.html johostok
A MISCELLANEOUS szekcióban
lévő
deny_info opció használatával megadhatunk saját URL-eket a korlátozás
indoklására. Tehát ha a gépet azért nem szolgálja ki a proxy, mert nem
tartozik
a private csoportba, akkor a tilos1.html lapot kapja figyelmeztetésül,
ahol
elmagyarázhatjuk a kíváncsiskodónak, hogy a kért anyag megtekintése nem
egyeztethető össze cégünk szemléletével…
Említettük, hogy
lehetőségünk van a
proxykat hierarchikus, vagy egyenrangú láncba fűzni.
Ezt
az OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
szekció alatt tarthatjuk
karban.
Például, ha a
proxy.datanet.hu
gépet szeretnénk használni abban az esetben, ha a mi cache-ünkben nincs
meg a
kért adat, akkor a
cache_host
proxy.datanet.hu parent 3128 3130
sort kell használnunk.
A HTTP és ICP portok
számát
megadhatjuk. Alapérték 3128 és 3130.
http_port
3128
icp_port
3130
Az OPTIONS
WHICH AFFECT THE CACHE SIZE szekcióban memória és
lemezfoglalási paramétereket
állíthatunk be.
cache_mem 32
cache_swap
200
A LOGFILE PATHNAMES AND CACHE DIRECTORIES szekcióban beállíthatjuk, hogy hol tárolja
a squid a
naplófájlokat. A naplófájlok tartalma értékes információkkal szolgál a
cache
működéséről. Érdemes nézegetni őket.
cache_dir /var/spool/squid 100 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log
emulate_httpd_log off
Az OPTIONS
FOR TUNING THE CACHE szekcióban további
finomhangolási lehetőségek vannak.
#wais_relay_host localhost
#wais_relay_port 8000
#request_size 100 KB
#reference_age 1 month
Az ADMINISTRATIVE PARAMETERS listán
találjuk meg a cache
kezelőjének beállítási lehetőségét, aki e-mailben fog üzeneteket kapni.
cache_mgr szabob@goliat.nitro.hu
A
visible_hostname goliat.nitro.hu
beállítással az üzeneteken látható nevet
állíthatjuk be.
A MISCELLANEOUS részben adhatjuk meg
többek
között, hogy mennyit áruljon el a külvilágnak a proxynk a lekérdező
gépről.
# TAG: forwarded_for on|off
Ha ez a paraméter on állásban van, akkor
ez látszik egy
lekérdezés nyomán:
# X-Forwarded-For: 192.1.2.3
#
Ha off-ra állítjuk, akkor csak ennyi:
# X-Forwarded-For: unknown
forwarded_for off
További elrejtést tudunk produkálni a
következő opcióval
# TAG: http_anonymizer
# 'off' All HTTP request headers are passed.
# 'standard' Specific headers are removed
# 'paranoid' Only specific headers are allowed.
http_anonymizer paranoid
# TAG: fake_user_agent
Ha használjuk a http_anonymizer paranoid
opciót, akkor a squid nem ad ki információt a böngészőnkről a kért
helynek.
(Ezért használjuk.) De van olyan hely, ami vissza fogja utasítani a
kérésünket,
ha nem látja, milyen kliensről jövünk. Ezen akadály kikerülésére
használjuk ezt
az opciót. Amit ebbe írunk, olyan „kliensről” támadjuk a szervert.
fake_user_agent Dummy Internyet Excooler v.1000
Megadhatjuk a magyar nyelvű hibaüzenet
könyvtárat is.
error_directory /usr/lib/squid/errors/Hungarian
A fenti lehetőségek csak egy töredékét
fedik le a squid
beállítási lehetőségeinek, de azt hiszem, a lényegesebb motívumokat
átnéztük.
Ha a Linux gépünket modem
segítségével akarjuk hálózatba kötni, akkor a legkézenfekvőbb megoldás
ehhez a
ppp csomag használata.
Van lehetőség a SLIP használatára is, de a ppp sokkal korszerűbb. Lehetőséget ad az IP címek egyeztetésére a kommunikáló oldalak között és azonosítási funkciója is van.
A PPP használatát két szinten valósítjuk
meg. Egy kernel
szintű illesztőprogram (HDLC High-level Data Link Control protokoll) és
egy
felhasználó szintű pppd program. A
használathoz szükség van még egy betárcsázást elvégző programra is. Ez
általában a chat program szokott
lenni. (Ezzel hívjuk fel a távoli számítógépet.) Ezen kívül a csomaghoz
tartoznak még a pppd beállításokat
tartalmazó konfigurációs fájlok.
(Ezek általában a /etc/ppp könyvtárban vannak.)
Ha használni akarjuk a PPP-t, akkor létezni kell a visszahurkoló interfésznek és be kell állítani a feloldót is. (Ezeket más fejezetekben ismertettük.)
Nézzük sorban a beállításhoz szükséges
lépéseket.
A kernelben engedélyezni kell a General
setup / Networkin
support menüpontot, a Networking options / TCP/IP networking-et és a
Network
device support / PPP support-ot.
Ezzel az alsó szintű kezelő protokollt
beindítottuk.
Biztosítani kell, hogy a modemhez hozzáférésünk legyen (kernelben engedélyezve legyen a soros portok használata). Ezen kívül szokásos, de nem kötelező a /dev/modem szimbolikus link megléte a modemet tartalmazó soros eszközfájlra. Tehát először nézzük meg, hogy melyik soros porton van a modemünk, majd adjuk ki az
ls –l /dev/modem parancsot. Ha látunk egy ehhez hasonló eredményt:
goliat:# ls -l /dev/modem
lrwxrwxrwx 1 root dialout 10 Sep 8 07:00 /dev/modem -> /dev/ttyS1
goliat:#
akkor csak annyi a dolgunk, hogy
eldöntsük, a modem tényleg
a COM2-en van-e. (/dev/ttyS0=COM1, /dev/ttyS1=COM2)
Ha nem talál egy /dev/ttySx-re mutató
linket a rendszerünk,
akkor gyorsan hozzuk létre:
ln –s /dev/ttyS1 /dev/modem
(Mindenhol hivatkozhatnánk direkt módon is a /dev/ttyS1-re, de általában el szokták végezni a link hozzáadását. Ez azért egyszerűbb, mert ha több program is van, ami a modemet használja és történetesen megváltoztatjuk a modem helyét –COM2 helyett COM1-en lesz- akkor csak a linket kell törölni és létrehozni még egyszer a jó soros portra csatolva. Míg ha direktben a soros portot használtatnánk az összes programunkkal, akkor ebben az esetben az összes programot egyenként át kellene konfigurálni az új helyzetnek megfelelően.)
Ezek után áttérhetünk a felhasználói
szintű pppd beállítására. Minden szükséges
konfigurációs állomány a /etc/ppp könyvtárban van. Az alábbi lista a
Debian-ban
fedi a valóságot, egyébként disztribúciótól függően lehetnek apróbb
eltérések.
(A lényeges fájlokat mindegyikben megtaláljuk.) Minden disztribúcióban
van egy
ppp-t beállító segédprogram, amit használva elkerülhetjük a fájlok
direkt módon
történő szerkesztését. (Pl. Debianban a pppconfig)
A fontosabb fájlok listája:
goliat:/etc/ppp# ls
chap-secrets
ip-down.d
no_ppp_on_boot
pap-secrets
ioptions
ip-up
options
ip-down
ip-up.d
options.ttyXX
peers
goliat:/etc/ppp#
Az általános ppp opciók az options fájlban
vannak. Ezeket
mindig használni fogja a pppd, de felülbírálhatók kapcsolatonként. Az
egyes
soros portokhoz tartozó esetleges, egyedi opciók az options.ttyXX
típusú
fájlokban vannak. (XX=S0,S1,S2,...)
Az alapbeállítások általában elégségesek,
nem gyakran kell
őket módosítani, bármelyik generáló segédprogramot is használtuk
bármely
disztribúcióban.
# /etc/ppp/options
#
# $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $
#
# Originally created by Jim Knoble
<jmknoble@mercury.interpath.net>
# Modified for Debian by alvar Bray
<alvar@meiko.co.uk>
# Modified for PPP Server setup by Christoph Lameter
<clameter@debian.org>
#
# Use the command
egrep -v '#|^ *$' /etc/ppp/options to quickly see what
# options are active in this file.
# Specify which DNS Servers the incoming Win95 or
WinNT Connection should use
# Two Servers can be remotely configured
# ms-dns 192.168.1.1
# ms-dns 192.168.1.2
# Specify which WINS
Servers the incoming connection Win95 or WinNT should use
# ms-wins 192.168.1.50
# ms-wins 192.168.1.51
# Run the executable or
shell command specified after pppd has
# terminated the
link. This script could, for example,
issue commands
# to the modem to cause
it to hang up if hardware modem control signals
# were not available.
#disconnect "chat --
\d+++\d\c OK ath0 OK"
# async character map --
32-bit hex; each bit is a character
# that needs to be
escaped for pppd to receive it.
0x00000001
# represents '\x01', and
0x80000000 represents '\x1f'.
asyncmap 0
# Require the peer to
authenticate itself before allowing network
# packets to be sent or
received.
# Please do not disable
this setting. It is expected to be standard in
# future releases of
pppd. Use the call option (see manpage) to disable
# authentication for
specific peers.
auth
# Use hardware flow
control (i.e. RTS/CTS) to control the flow of data
# on the serial port.
crtscts
# Use software flow
control (i.e. XON/XOFF) to control the flow of data
# on the serial port.
#xonxoff
# Specifies that certain
characters should be escaped on transmission
# (regardless of whether
the peer requests them to be escaped with its
# async control character
map). The characters to be escaped are
# specified as a list of
hex numbers separated by commas. Note
that
# almost any character
can be specified for the escape option, unlike
# the asyncmap option
which only allows control characters to be
# specified. The characters
which may not be escaped are
those with hex
# values 0x20 - 0x3f or
0x5e.
#escape 11,13,ff
# Don't use the modem
control lines.
#local
# Specifies that pppd
should use a UUCP-style lock on the serial device
# to ensure exclusive
access to the device.
lock
# Use the modem control
lines. On Ultrix, this option implies
hardware
# flow control, as for
the crtscts option. (This option is not
fully
# implemented.)
modem
# Set the MRU [Maximum
Receive Unit] value to <n> for negotiation. pppd
# will ask the peer to
send packets of no more than <n> bytes. The
# minimum MRU value is
128. The default MRU value is 1500. A value of
# 296 is recommended for
slow links (40 bytes for TCP/IP header + 256
# bytes of data).
#mru 542
# Set the interface
netmask to <n>, a 32 bit netmask in "decimal dot"
# notation (e.g.
255.255.255.0).
#netmask 255.255.255.0
# Disables the default
behaviour when no local IP address is specified,
# which is to determine
(if possible) the local IP address from the
# hostname. With this
option, the peer will have to supply the local IP
# address during IPCP
negotiation (unless it specified explicitly on the
# command line or in an
options file).
#noipdefault
# Enables the
"passive" option in the LCP.
With this option, pppd will
# attempt to initiate a
connection; if no reply is received from the
# peer, pppd will then
just wait passively for a valid LCP packet from
# the peer (instead of
exiting, as it does without this option).
#passive
# With this option, pppd
will not transmit LCP packets to initiate a
# connection until a
valid LCP packet is received from the peer (as for
# the "passive"
option with old versions of pppd).
#silent
# Don't request or allow
negotiation of any options for LCP and IPCP
# (use default values).
#-all
# Disable Address/Control
compression negotiation (use default, i.e.
# address/control field
disabled).
#-ac
# Disable asyncmap
negotiation (use the default asyncmap, i.e. escape
# all control
characters).
#-am
# Don't fork to become a
background process (otherwise pppd will do so
# if a serial device is
specified).
#-detach
# Disable IP address
negotiation (with this option, the remote IP
# address must be
specified with an option on the command line or in an
# options file).
#-ip
# Disable magic number
negotiation. With this option, pppd
cannot
# detect a looped-back
line.
#-mn
# Disable MRU [Maximum
Receive Unit] negotiation (use default, i.e.
# 1500).
#-mru
# Disable protocol field
compression negotiation (use default, i.e.
# protocol field
compression disabled).
#-pc
# Require the peer to
authenticate itself using PAP.
#+pap
# Don't agree to
authenticate using PAP.
#-pap
# Require the peer to
authenticate itself using CHAP [Cryptographic
# Handshake
Authentication Protocol] authentication.
#+chap
# Don't agree to
authenticate using CHAP.
#-chap
# Disable negotiation of
Van Jacobson style IP header compression (use
# default, i.e. no compression).
#-vj
# Increase debugging
level (same as -d). If this option is
given, pppd
# will log the contents
of all control packets sent or received in a
# readable form. The packets are
logged through syslog with
facility
# daemon and level debug.
This information can be directed to a file by
# setting up
/etc/syslog.conf appropriately (see syslog.conf(5)).
(If
# pppd is compiled with
extra debugging enabled, it will log messages
# using facility local2
instead of daemon).
#debug
# Append the domain name
<d> to the local host name for authentication
# purposes. For example, if
gethostname() returns the
name porsche,
# but the fully qualified
domain name is porsche.Quotron.COM, you would
# use the domain option
to set the domain name to Quotron.COM.
#domain <d>
# Enable debugging code
in the kernel-level PPP driver. The
argument n
# is a number which is
the sum of the following values: 1 to enable
# general debug messages,
2 to request that the contents of received
# packets be printed, and
4 to request that the contents of transmitted
# packets be printed.
#kdebug n
# Set the MTU [Maximum
Transmit Unit] value to <n>. Unless the peer
# requests a smaller
value via MRU negotiation, pppd will request that
# the kernel networking
code send data packets of no more than n bytes
# through the PPP network
interface.
#mtu <n>
# Enforce the use of the
hostname as the name of the local system for
# authentication purposes
(overrides the name option).
#usehostname
# Set the assumed name of
the remote system for authentication purposes
# to <n>.
#remotename <n>
# Add an entry to this
system's ARP [Address Resolution Protocol]
# table with the IP
address of the peer and the Ethernet address of this
# system.
proxyarp
# Use the system password
database for authenticating the peer using
# PAP. Note: mgetty
already provides this option. If this is specified
# then dialin from users
using a script under Linux to fire up ppp wont work.
# login
# If this option is
given, pppd will send an LCP echo-request frame to
# the peer every n
seconds. Under Linux, the echo-request is sent when
# no packets have been
received from the peer for n seconds. Normally
# the peer should respond
to the echo-request by sending an echo-reply.
# This option can be used
with the lcp-echo-failure option to detect
# that the peer is no
longer connected.
lcp-echo-interval 30
# If this option is
given, pppd will presume the peer to be dead if n
# LCP echo-requests are
sent without receiving a valid LCP echo-reply.
# If this happens, pppd
will terminate the connection. Use of
this
# option requires a
non-zero value for the lcp-echo-interval parameter.
# This option can be used
to enable pppd to terminate after the physical
# connection has been
broken (e.g., the modem has hung up) in
# situations where no
hardware modem control lines are available.
lcp-echo-failure 4
# Set the LCP restart
interval (retransmission timeout) to <n> seconds
# (default 3).
#lcp-restart <n>
# Set the maximum number
of LCP terminate-request transmissions to <n>
# (default 3).
#lcp-max-terminate
<n>
# Set the maximum number
of LCP configure-request transmissions to <n>
# (default 10).
#lcp-max-configure
<n>
# Set the maximum number
of LCP configure-NAKs returned before starting
# to send
configure-Rejects instead to <n> (default 10).
#lcp-max-failure
<n>
# Set the IPCP restart
interval (retransmission timeout) to <n>
# seconds (default 3).
#ipcp-restart <n>
# Set the maximum number
of IPCP terminate-request transmissions to <n>
# (default 3).
#ipcp-max-terminate <n>
# Set the maximum number
of IPCP configure-request transmissions to <n>
# (default 10).
#ipcp-max-configure
<n>
# Set the maximum number
of IPCP configure-NAKs returned before starting
# to send
configure-Rejects instead to <n> (default 10).
#ipcp-max-failure
<n>
# Set the PAP restart
interval (retransmission timeout) to <n> seconds
# (default 3).
#pap-restart <n>
# Set the maximum number
of PAP authenticate-request transmissions to
# <n> (default 10).
#pap-max-authreq
<n>
# Set the CHAP restart interval
(retransmission timeout for
# challenges) to
<n> seconds (default 3).
#chap-restart <n>
# Set the maximum number
of CHAP challenge transmissions to <n>
# (default 10).
#chap-max-challenge
# If this option is
given, pppd will rechallenge the peer every <n>
# seconds.
#chap-interval <n>
# With this option, pppd
will accept the peer's idea of our local IP
# address, even if the
local IP address was specified in an option.
#ipcp-accept-local
# With this option, pppd
will accept the peer's idea of its (remote) IP
# address, even if the
remote IP address was specified in an option.
#ipcp-accept-remote
# Disable the IPXCP and
IPX protocols.
# To let pppd pass IPX
packets comment this out --- you'll probably also
# want to install
ipxripd, and have the Internal IPX Network option enabled
# in your kernel.
/usr/doc/HOWTO/IPX-HOWTO.gz contains more info.
noipx
# ---<End of File>---
A lényegesebb opciók:
auth
Azonosítás
szükséges, mielőtt a hálózati forgalom megindul
crtscts
Hardveres
adatfolyam vezérlés
xonxoff Szoftveres
adatfolyam vezérlés
lock
A modemhez
ne férjen hozzá más, amíg a ppp használja
noipdefault
Nincsen
fix IP címe a modemnek, hanem a szolgáltatótól kap, amikor
bejelentkezik.
(Ideiglenes kapcsolatoknál nincs értelme foglalni olyankor is az IP
címet, ha
nem is használják mindig.)
+PAP
PAP azonosítás
szükséges
-PAP
Nem
elfogadott a PAP azonosítás
+CHAP CHAP
azonosítás
szükséges
-CHAP Nem
elfogadott
a CHAP azonosítás
login
A /etc/passwd fájlból veszi a jelszót a PAP azonosításnál.
A pap-secrets és a chap-secrets fájlok a
pap és a chap
azonosításhoz szükséges információkat őrzik.
A PAP azonosítás
A PAP azonosítás nem más, mint egy
felhasználói név és egy
jelszó elküldése a másik gépre, majd az elvégzi az azonosítást a saját
adatbázisában és elfogadja a klienst.
Ehhez az eljáráshoz egy /etc/pap-secret
fájl tartozik mindkét
gépen. (Már ha a kliens is linuxos.) Egy windows-os gépen csak be kell
állítani
az azonosítás formáját a kapcsolat beállító paneljén.
A pap-secrets fájl formája nagyon egyszerű:
felhasználó kiszolgáló titok IP
Jelentése:
Milyen felhasználó milyen kiszolgálóra
milyen titok ismeretében
léphet be milyen IP-ket, vagy nevet használva.
pl:
szabob dataender kakukk
A szabob néven beléphetünk a dataender
kiszolgálóra bárhonnan,
ha tudjuk a kakukk jelszót.
szabob * kakukk
A szabob néven beléphetünk minden gépre ha
ott ismerik ezt a
felhasználó nevet és jó a "kakukk" jelszó. Bármilyen IP-t, vagy nevet
használhatunk.
A fenti példák a mi kimenő kapcsolatunkat
biztosítják, tehát ha
mi akarunk valahova bejelentkezni.
Ha hozzánk is be akarunk engedni valakit,
akkor fel kell venni a
számára a megfelelő sort ugyanebbe a fájlba:
vendeg samson kuka 192.168.1.1
Azaz: Vendég néven be tud jönni hozzánk
valaki a 192.168.1.1
gépről, ha ismeri a kuka jelszót és a mi
gépünk neve samson.
* samson ""
Bármilyen /etc/passwd fájlban szereplő
felhasználó be tud jönni
bárhonnan, ha használja a saját jelszavát.
root hostname "*" -
Root néven sehonnan nem lehet bejönni.
A CHAP azonosítás
A chap-secrets fájl felépítése:
kliens gép kiszolgáló gép titok IP cím
samson.nitro.hu dataender.bp.hu "haho" samson.nitro.hu
dataender.bp.hu samson.nitro.hu "namivan" dataender.bp.hu
A chap azonosítás során ha a távoli gép
azonosításra szólít fel
bennünket, akkor a pppd megkeresi a chap-secrets fájlban azt az első
sort, ahol
a kliens mezőben a mi gépünk neve szerepel, a kiszolgáló mezőben a
távoli gép
neve. A titok alapján összeállít egy kódolt üzenetet a kiszolgáló
számára és
elküldi.
Ugyanakkor elküld egy másik üzenetet is
neki, hogy azonosítsa
magát ő is. Ezt úgy teszi meg, hogy kikeresi ugyanebből a fájlból azt
az első
sort, amiben a távoli gép szerepel kliensként, és a mi gépünk a
kiszolgáló. A
választ szintén ugyanebből a sorból tudja ellenőrizni. Ha megfelelő,
akkor
létrejön a kapcsolat. Tehát itt a jelszavak kódolva mennek át a telefon
vonalon. A másik biztonságot fokozó tényező, hogy ezt az ellenőrzést
többször
megteszik menet közben is, nehogy valaki átvegye a másik gép szerepét.
Használjunk teljesen minősített gépneveket!
Az egyes bekonfigurált kapcsolatok a peers
könyvtárban
vannak egy-egy fájlban.
Debianban mindig van egy gyárilag
bekonfigurált fájl, amit
nyugodtan használhatunk mintának a saját kapcsolatunkhoz.
Ezekben a fájlokban is használhatóak azok
az opciók, amik az
options fájlban vannak. Itt kapcsolatonként felülbírálhatjuk őket.
Egy kapcsolat fájl a peers könyvtárból:
# This file was generated by pppconfig. You can edit the following lines
# but please do not delete lines or the change the comments or you will
# confuse pppconfig.
noauth #pppconfig_noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/szolgáltatóm" #pppconfig_connec
debug #pppconfig_debug
/dev/ttyS1 #pppconfig_dev
115200 #pppconfig_speed
defaultroute #pppconfig_route
noipdefault #pppconfig_ipdefault
user felhasznevem #pppconfig_user
# End of pppconfig controlled lines. You can add lines below here without
# confusing pppconfig.
Ha egy kapcsolat felépül, akkor az ip-up
fájlban lévő
programok automatikusan végrehajtódnak. Ide bármit írhatunk, amit azt
akarjuk,
hogy a kapcsolat felépülésekor végrehajtódjon. Alapbeállítás szerint
beállít
pár környezeti változót és meghívja az ip-up.d könyvtárban lévő
programokat.
Egy ip-up fájl:
#!/bin/sh
#
# $Id: ip-up,v 1.2 1998/02/10 21:25:34 phil Exp $
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional ``ipparam'' value foo
# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME
# Main Script starts here
run-parts /etc/ppp/ip-up.d
# last line
Ugyanígy, ha a kapcsolat lebomlik, akkor
az ip-down fájlban
lévő programok hajtódnak végre. (pl így lehet a fetchmailt rábírni,
hogyha a
kapcsolat felépült, akkor szedje össze a leveleket, vagy kérhetünk
pontos időt
egy timeserver-ről, megmondhatjuk a levelező szerverünknek, hogy kezdje
el
kiüríteni a levélsort, stb)
Egy ip-down fájl:
#!/bin/sh
#
# $Id: ip-down,v 1.2 1998/02/10 21:21:55 phil Exp $
#
# This script is run by the pppd _after_ the link is brought down.
# It uses run-parts to run scripts in /etc/ppp/ip-down.d, so to delete
# routes, unset IP addresses etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-down.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional ``ipparam'' value foo
# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
# as an additional convienince, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME
# Main Script starts here
run-parts /etc/ppp/ip-down.d
# last line
(A
debianban ez kibővül az ip-up.d és
ip-down.d könyvtárakkal. Az ezekben lévő programokat szintén meghívja
az ip-up
és ip-down fájlok utolsó sora.) A példában éppen a leveleinket
kezeljük.
(Először kiürítjük a sort, majd a fetchmail programmal összeszedjük a
más
szervereken tárolt leveleket.)
Az ip-up.d könyvtár most 2 fájlt tartalmaz:
goliat:/etc/ppp/ip-up.d# ls
exim
fetchmail
goliat:/etc/ppp/ip-up.d#
A levél sor kiürítése így
néz ki:
goliat:/etc/ppp/ip-up.d# less exim
#!/bin/sh
# Flush exim queue
if [ -x /usr/sbin/exim ]; then
/usr/sbin/exim -qf
fi
exim (END)
A legfontosabb pppd konfigurációs fájlok
után nézzük a
kapcsolatfelvételt végző chat szkriptet. (Erre hivatkozás a peers
könyvtár
fájljaiban van:
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
Ez mutatja, hogy alapesetben a
/etc/chatscripts/provider
fájlt használja, de persze módosíthatjuk. A /etc/chatscripts könyvtár
tartalmazhat több ilyen szkriptet is.
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
"" ATDT06,22345654
ogin envagyok
word jojelszo
Az ABORT kezdetű sorok megadják a
modemnek, hogy milyen
események hatására kell megszakítani a vonalat.
Az ATDT után meg kell adni a telefonszámot.
A ’ogin’ és a ’word’ után pedig a
felhasználónév és a jelszó
következik. Ha nem sikerül felvenni a kapcsolatot, akkor lehet, hogy a
túloldal
az ’ogin’ kifejezés helyett ’sername’ kifejezést vár.
A fenti fájlokat disztribúciótól függően
rengeteg féle módon
előállíthatjuk. Ezeknek a feladata mindenütt a leírt fájlok
előállítása. Egyet
ezek közül megnézünk részletesebben.
A debian disztribúcióban a pppconfig
programot használhatjuk
a ppp kapcsolatunk beállítására. Használata végtelenül egyszerű, és
tiszta
képet ad a folyamatról.
Debian GNU/Linux PPP Configuration Utility
+--------------------------------¦ Main Menu +---------------------------------+
¦ This is the PPP configuration utility. It does not make a connection to ¦
¦ your ISP: it just configures your system so that you can connect with a ¦
¦ utility such as 'pon'. You will be asked for the username, password, and ¦
¦ phone number that your ISP gave you. If your ISP uses PAP or CHAP, that is ¦
¦ all you need. If you need to use a chat script to connect, you will need ¦
¦ to know how your ISP prompts for your username and password. If you don't ¦
¦ know what your ISP uses, try PAP. ¦
¦ ¦
¦ Use the up and down arrow keys to move around the menus. Use the TAB key ¦
¦ to move from the menu to <OK> to <CANCEL> and back. When you are ready to ¦
¦ move on to the next menu go to <OK> and hit enter. To go back to the main ¦
¦ menu go to <CANCEL> and hit enter. ¦
¦ ¦
¦ Next Create a connection ¦
¦
¦
¦
Create Create a connection
¦
¦
Quit Exit this utility
¦
¦
¦
¦
<Ok>
<Cancel>
¦
¦ ¦
A program indítása után a fenti
menürendszer fogad
bennünket. Válasszuk a Create a connection menüpontot. (Mindig
felajánlja a
következő értelmes lépést „Next”.)
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Provider Name +-------------------------------+
¦ Enter the name you wish to use to refer to this ISP. You will probably ¦
¦ want to give the default name of 'provider' to your primary ISP. That way, ¦
¦ you can dial it by just giving the command 'pon'. Give each additional isp ¦
¦ a unique name. For example, you might call your employer 'theoffice' and ¦
¦ your university 'theschool'. Then you can connect to your ISP with 'pon', ¦
¦ your office with 'pon theoffice', and your university with 'pon theschool'. ¦
¦ ¦
¦ szolgáltatóm_______________________________________________ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Írjuk be a készítendő kapcsolat nevét,
amivel majd
hivatkozunk rá. (Ilyen néven fognak megjelenni a rá vonatkozó
konfigurációs
fájlok is a peers könyvtárban és a chatscripts könyvtárban.)
Debian GNU/Linux PPP Configuration Utility
+----------------------------¦ Create Connection +-----------------------------+
¦ Please select the authentication method for this connection. PAP is the ¦
¦ method most often used in Windows 95, so if your ISP supports the NT or ¦
¦ Win95 dial-up client, try "PAP". ¦
¦ ¦
¦ PAP Password Authentication Protocol ¦
¦ Chat Use "chat" for login:/password: authentication ¦
¦ CHAP Challenge Handshake Authentication Protocol ¦
¦ ¦
¦ Quit Exit this utility ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
Ezek után ki kell választani az
azonosítási eljárást. A
leggyakoribb a PAP azonosítás. Ha nem kérjük, akkor választhatunk még
erősebb
chap azonosítást és a chat szkriptet is megkérhetjük, hogy küldje át a
login és
jelszó párosunkat.
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Enter Password +------------------------------+
¦ Backspace over the placeholder string and enter the password your ISP gave ¦
¦ you. If your password includes any space or punctuation marks enclose it ¦
¦ in single quotes like this: 'a !@# weird password'. ¦
¦ ¦
¦ enjelszom______________________________ ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Ez után be kell írni a kapcsolat
felvételéhez szükséges
jelszót.
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Configuration +-------------------------------+
¦ ¦
¦ Now you will configure some basic connection properties. ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> ¦
¦ ¦
+------------------------------------------------------------------------------+
A következő képernyőn a gép közli velünk,
hogy néhány
alapvető, a kapcsolat megteremtéséhez szükséges beállítás következik.
Debian GNU/Linux PPP Configuration Utility
+------------------------¦ Manage User Configuration +-------------------------+
¦ Backspace over the placeholder string and enter the username given to you ¦
¦ by your ISP. If your username includes any space or punctuation marks ¦
¦ enclose it in single quotes like this: 'a !@# weird name' ¦
¦ ¦
¦ felhasznevem___________________________ ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Itt meg kell adni a
felhasználói
nevet.
Debian GNU/Linux PPP Configuration Utility
+------------------------¦ Manage Port Configuration +-------------------------+
¦ Enter the port your modem is on. ¦
¦ /dev/ttyS0 is COM1 in DOS ¦
¦ /dev/ttyS1 is COM2 in DOS ¦
¦ /dev/ttyS2 is COM3 in DOS ¦
¦ /dev/ttyS3 is COM4 in DOS ¦
¦ /dev/ttyS1 is the most common. Note that this must be typed exactly as ¦
¦ shown. Capitalization is important: ttyS1 is not the same as ttys1. ¦
¦ ¦
¦ /dev/ttyS1__________________________________________________________________ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Most a modem helyét kell megadni.
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Default Route +-------------------------------+
¦ Enabling default routing tells your system that the way to reach hosts to ¦
¦ which it is not directly connected is via your ISP. This is almost certainly ¦
¦ what you want. Use the up and down arrow keys to move among the selections, ¦
¦ and press the spacebar to select one. When you are finished, use TAB to ¦
¦ select <OK> and ENTER to move on to the next item. ¦
¦ ¦
¦ (*) defaultroute Enable default route ¦
¦ ( ) "-defaultroute" Disable default route ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Ha azt akarjuk, hogy az alapútvonal a modem legyen a kapcsolat felépülése után, akkor válasszuk a defaultroute opciót. (Ez célszerű, ha az internetet csak a modemen keresztül érjük el. Akkor is ezt állítsuk be, ha egy egész hálózat ezen keresztül éri el az internetet.)
Debian GNU/Linux PPP Configuration Utility
+--------------------------------¦ Ip numbers +--------------------------------+
¦ You almost certainly do not want to change this from the default value of ¦
¦ noipdefault. This not the place for your nameserver ip numbers. It is the ¦
¦ place for your ip number if and only if your ISP has assigned you a static ¦
¦ one. If you have been given only a local static ip, enter it with a colon ¦
¦ at the end, like this: 192.168.1.2: . If you have been given both a local ¦
¦ and a remote ip, enter the local ip, a colon, and the remote ip, like this: ¦
¦ 192.168.1.2:10.203.1.2 . ¦
¦ ¦
¦ noipdefault_____________________________ ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Fontos opció az IP cím hozzárendelés. A
legtöbb szolgáltató
automatikusan a modemünkhöz rendel egy IP-t, ha felépítjük vele a ppp
kapcsolatot. Ha ilyen szolgáltatónk van, akkor a noipdefault opció
megfelelő. A
2.2-es kernel új szolgáltatása, hogy képes automatikusan felvenni a
kapcsolatot
a modem, ha arra szükség van. Ekkor meg kell adni a modemünk helyi IP
címét és
a szolgáltató távoli IP címét egymástól kettősponttal elválasztva.
Debian GNU/Linux PPP Configuration Utility
+--------------------------------¦ Set Speed +---------------------------------+
¦ Enter your modem port speed (e.g. 9600, 19200, 38400, 115200). ¦
¦ suggest that you leave it at 115200. ¦
¦ ¦
¦ 115200________________________________ ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Most a modem és a gép közötti sebességet
kell megadni. A mai
modemeknél az alapbeállítás megfelelő.
Debian GNU/Linux PPP Configuration Utility
+---------------------------¦ Modem Intialization +----------------------------+
¦ Enter modem intialization string. The default value is ATZ, which tells ¦
¦ the modem to use its default settings. As most modems are shipped from ¦
¦ the factory with default settings that are appropriate for ppp, I suggest ¦
¦ you not change this. ¦
¦ ¦
¦ ATZ__________________________________ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
A modem inicializációjára szolgáló
parancsot kell beütni. Jó
modem esetén megfelel az alapbeállítás.
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Number to dial +------------------------------+
¦ Backspace over the placeholder string and enter the number to dial. Don\'t |
¦ insert any dashes or spaces. See your modem manual if you need to do ¦
¦ anything unusual like dialing through a PBX. ¦
¦ ¦
¦ 06,51345234___________________________ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
Írjuk be a tárcsázandó telefonszámot.
Debian GNU/Linux PPP Configuration Utility
+------------------------------¦ Tone or Pulse +-------------------------------+
¦ Select method of dialing. Since almost everyone has touch-tone, you should ¦
¦ leave the dialing method set to tone unless you are sure you need ¦
¦ pulse. Use the up and down arrow keys to move among the selections, and ¦
¦ press the spacebar to select one. When you are finished, use TAB to ¦
¦ select <OK> and ENTER to move on to the next item. ¦
¦ ¦
¦ (*) ATDT tone ¦
¦ ( ) ATDP pulse ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Állítsuk be, hogy a modem pulse, vagy tone
módban
tárcsázzon.
Debian GNU/Linux PPP Configuration Utility
+--------------------------------¦ Properties +--------------------------------+
¦ ¦
¦ You will now have the chance to review or change connection properties. ¦
¦ ¦
¦ ¦
¦ ¦
¦ <Ok> ¦
¦ ¦
+------------------------------------------------------------------------------+
Hát kész is vagyunk.
Debian GNU/Linux PPP Configuration Utility
+-----------------------¦ Select A Property To Manage +------------------------+
¦ Please select the property you wish to modify, select "Cancel" to go ¦
¦ back to start over, or select "Finished" to write out the changed ¦
¦ files. ¦
¦ Modeminit Modem initialization string ¦
¦ Number Telephone number to call ¦
¦ User User name for authentication ¦
¦ Password The password for this connection ¦
¦ Speed Port speed for the modem ¦
¦ Com Serial Port the modem is on ¦
¦ Defaultroute Enable or disable default route ¦
¦ Ipdefault Set IP addresses ¦
¦ Method Authentication Method (e.g., PAP) ¦
¦ ¦
¦ Finished Write files and return to main menu. ¦
¦ Quit Exit this utility ¦
¦ ¦
¦ ¦
¦ <Ok> <Cancel> ¦
¦ ¦
+------------------------------------------------------------------------------+
Az utolsó ablakban még egyszer
megnézhetjük, vagy
módosíthatjuk beállításinkat. A végén mindenképpen válasszuk a
finished
menüpontot a beállításaink elmentéséhez.
Miután a fájlok legfontosabb funkcióit
megnéztük, és
végignéztünk egy beállító procedúrát, indítsuk el a ppp kapcsolatot.
Kézi indításra és automatikus
kapcsolatfelvételre van
lehetőségünk.
A kézi indítást a pon
parancs kiadásával érhetjük el Debian alatt. Paraméterként adjuk meg az
előbb
kialakított kapcsolat nevét.
pl.:
pon szolgaltatom
A poff kiadásával
a kapcsolatnak vége lesz.
Más disztribúció esetén is van általában
egy greafikus
felületű program az indításhoz.
Ha automatikus kapcsolatfelvételt
szeretnénk, akkor –mint
már említettük- a ppp lehetőséget ad erre, de csak ha van fix IP címünk
a
szolgáltatónál. (Ha nincs, akkor is használható ez a megoldás egy kis
hazugsággal.)
Ha megvan a fix IP és a pppconfig-gal
ennek megfelelően
konfiguráltuk a fájlokat, akkor csak ki kell adni a következő utasítást
és
máris készen vagyunk:
pppd persist demand idle 180 call szolgaltatom
A promptot rögtön visszakapjuk és a pppd fut a háttérben. (persist=maradjon aktív, ne lépjen ki; demand=tárcsázzon, ha kell; idle 180= ha nincs hozzáférés 3 percig, akkor kapcsolja le a modemet; szolgaltatom=ezzel vegye fel a kapcsolatot)
Ha nincs fix IP címünk, akkor vegyük fel a
kapcsolatot a
szolgáltatónkkal valahogy kézi kapcsolással. Például Debian alatt adjuk
ki a pon kapcsolatnév parancsot. A kapcsolat
felvétele után nézzük meg a szolgáltatónk kapcsolattartó szerverének az
IP
címét. Ezt írjuk be LOCAL IP-nek. REMOTE IP-ként pedig használjuk a
szolgáltatónk NAME SERVER címét. Az automatikus kapcsolat felvételekor
a
szolgáltató kiigazítja a nyilvánvalóan hibás címeket...
Akinek ez nem tetszik, az használhatja a
régebben
fejlesztett diald programot is.
A diald program
segítségével kényelmesebbé tehetjük a modemen keresztüli
kapcsolatfelvételt. Ha
nem akarunk minden modemhasználat esetén kézzel csatlakozni az
internetre és
nem akarjuk az új pppd-t használni, akkor van lehetőség az automatikus
kapcsoaltfelvételre a diald
programmal. A modem csak akkor veszi fel a kapcsolatot a
szolgáltatóval, ha a
rendszerünk nem tudja helyben kielégíteni az adott kérést. Ha bizonyos
ideig
nincs igény a használatra, akkor lebontja a kapcsolatot.
Ezt a programot már nagyon régóta
használhatja a linuxos
világ mind analóg modemes, mind ISDN kapcsolat felépítésére. (A két
típusú
kapcsolat a program különböző változatát igényli.) Fejlesztését már
abbahagyták. Minden disztribúcióban megtalálható.
Használatához először telepítsük fel a
programot az adott
disztribúciónak megfelelően.
Most
már csak be kell állítanunk a program konfigurációs állományait. Ebből
kettő
nagyon fontos van. Az egyik a diald.conf,
ami a fő konfigurációs paramétereket tartalmazza, a másik pedig egy
tetszőleges, modemes kapcsolatfelvételre alkalmas szkript kell, hogy
legyen. A diald.conf általában a /etc
könyvtárban kell hogy legyen, mint
a legtöbb konfigurációs állomány. Az állományt nekünk kellene
létrehozni, de
szerencsére a legtöbb disztribúció tartalmaz egy minta állományt, ami
gyakorlatilag módosítás nélkül használható. Tehát másoljuk át a /usr/doc/packages/diald könyvtárból a diald.conf
fájlt a /etc könyvtárba. (Ennek érdekében pl. adjuk ki
a következő
parancsot egy terminálablakban. cp
/usr/doc/packages/diald/diald.conf /etc)
Egy tetszőleges szövegszerkesztővel lépjünk be a fájlba és nézzük át a beállításokat.
Számunkra
a legfontosabb paraméterek:
mode
ppp:
A diald alaphelyzetben a SLIP interfészt használja. (Ha a programot
elindítjuk
és kiadjuk az ifconfig parancsot,
akkor láthatjuk, hogy tényleg így van.) Ez a bejegyzés utasítja a
diald-t, hogy
a kapcsolat felépülése után térjen át a modernebb PPP üzemmódra.
connect
/usr/lib/diald/connect: Ez
a bejegyzés mondja meg a diald-nek, hogy ha tárcsázni
kell, akkor melyik szkript fogja ezt elvégezni. A példában szereplő
szkript
létezik, csak személyre kell szabni néhány paraméterét. Ezt a
későbbiekben
tárgyaljuk.
device
/dev/ttySn:
Ez a bejegyzés mondja meg a diald-nek, hogy hol találja a modemet.
Célszerű itt
a konkrét soros eszközfájl helyett a /dev/modem bejegyzést megtenni a
konkrét
ttyS0, vagy ttyS1, mert így teljesen mindegy, hol a modem, a
konfiguráción nem
kell változtatni. (A /dev/modem mindig a megfelelő valódi soros vonali
eszközfájlra mutat.)
speed
115200:
A soros vonali sebességet mondja meg. Ezt a gépünknek megfelelő értékre
változtassuk, de általában nem kell módosítani a beállítást.
local és remote: Két darab IP címet
látunk itt. Ha
dinamikus IP címet kapunk a szolgáltatónktól (márpedig dialup kapcsolat
esetén
a szolgáltatók 99,5%-a ezt használja) akkor is be kell írni ide két
értéket.
Nyugodtan hagyjuk meg a gyári beállításokat, mert nincs jelentősége az
itt
beírt értékeknek.
defaultroute: A kapcsolat
felvétele után automatikusan erre az útvonalra állítja be az
alapértelmezett
útvonalat. Ezzel érjük el, hogy távoli rendszereket a modemen keresztül
fogja
elérni a gépünk.
Ezen
kívül érdemes még megemlíteni a disconnect-timeout és a redial-timeout
opciókat.
A disconnect-timeout
után
tudjuk megadni másodpercekben mérve azt az időt, hogy mikor kapcsoljon
ki a
modem “üresjárat” esetén. (Alapérték 60 másodperc)
A redial-timeout után lehet megadni azt az időt, hogy mennyi idő után tárcsázzon újra sikertelen kapcsolat, vagy vonalbontás esetén. (Alapérték 30 másodperc.)
accounting-log
/var/log/diald.log: Ha
használjuk az accounting-log opciót, akkor a megadott
fájlba naplózza az internetre kapcsolódásaink eseményeit.
ip-up
/usr/lib/diald/every-conn:
Ha az ip-up opció után megadunk egy fájlt, akkor minden
kapcsolódáskor lefutnak a benne lévő parancsok.
Ezek után nézzük meg a kapcsolatlétesítő
szkriptet.
Alapértelmezés a SuSE esetében a /usr/lib/diald/connect
szkript lesz.
Ebben a szkriptben szigorúan csak a
kapcsolat felvételre
szorítkozunk. A MODEM_INIT paramétert hagyhatjuk alaphelyzetben, de ha
van egy
jól bevált sztringünk, akkor használhatjuk ezt is.
A
PHONE_NUMBER paramáternél adjuk meg a telefonszámot. Ha kell, akkor
vesszőkkel
válasszuk le a külső vonal eléréséhez szükséges számot és a külső
körzet
eléréséhez szükséges számokat.
USER_NAME
paraméter határozza meg a felhasználói nevet
PASSWORD
paraméterhez a jelszót írjuk.
PROMPT, PROTOCOL_START, START_ACK paramétereket először “kommentezzük ki” egy # jellel és csak ha nem működik megfelelően a kapcsolatfelvételünk, akkor írjuk vissza megfelelő formában őket.
Ezek után már csak a névkiszolgáló
beállításainkat kell
leellenőrizni. Ha nincsen saját jól beállított névkiszolgálónk, akkor
is
állítsunk be egyet, amit az internet szolgáltatónk bocsát
rendelkezésünkre. Ha
van saját, akkor ne felejtkezzünk el a forwarders opcióról, mert
egyébként nem
helyi cím estén nem fog névfeloldást végezni, tehát nincs ami beindítsa
a
diald-t a tárcsázásra!
#!/bin/sh
# Copyright (c) 1996, Eric Schenk.
#
# This script is intended to give an example of a connection script that
# uses the "message" facility of diald to communicate progress through
# the dialing process to a diald monitoring program such as dctrl or diald-top.
# It also reports progress to the system logs. This can be useful if you
# are seeing failed attempts to connect and you want to know when and why
# they are failing.
#
# This script requires the use of chat-1.9 or greater for full
# functionality. It should work with older versions of chat,
# but it will not be able to report the reason for a connection failure.
# Configuration parameters
# The initialization string for your modem
MODEM_INIT="ATZ&C1&D2%C0"
# The phone number to dial
PHONE_NUMBER="06,40456789"
# The chat sequence to recognize that the remote system
# is asking for your user name.
USER_CHAT_SEQ="name:--name:--name:--name:--name:--name:--name:"
# The string to send in response to the request for your user name.
USER_NAME="enloginom"
# The chat sequence to recongnize that the remote system
# is asking for your password.
PASSWD_CHAT_SEQ="word:"
# The string to send in response to the request for your password.
PASSWORD="enjelszom"
# The prompt the remote system will give once you are logged in
# If you do not define this then the script will assume that
# there is no command to be issued to start up the remote protocol.
###PROMPT="annex:"
# The command to issue to start up the remote protocol
###PROTOCOL_START="ppp"
# The string to wait for to see that the protocol on the remote
# end started OK. If this is empty then no check will be performed.
###START_ACK="Switching to PPP."
# Pass a message on to diald and the system logs.
function message () {
[ $FIFO ] && echo "message $*" >$FIFO
logger -p local2.info -t connect "$*"
}
# Initialize the modem. Usually this just resets it.
message "Initializing Modem"
chat TIMEOUT 5 "" $MODEM_INIT TIMEOUT 45 OK ""
if [ $? != 0 ]; then
message "Failed to initialize modem"
exit 1
fi
# Dial the remote system.
message "Dialing system"
chat \
TIMEOUT 45 \
ABORT "NO CARRIER" \
ABORT BUSY \
ABORT "NO DIALTONE" \
ABORT ERROR \
"" ATDT$PHONE_NUMBER \
CONNECT ""
case $? in
0) message Connected;;
1) message "Chat Error"; exit 1;;
2) message "Chat Script Error"; exit 1;;
3) message "Chat Timeout"; exit 1;;
4) message "No Carrier"; exit 1;;
5) message "Busy"; exit 1;;
6) message "No DialTone"; exit 1;;
7) message "Modem Error"; exit 1;;
*)
esac
# We're connected try to log in.
message "Loggin in"
chat \
TIMEOUT 5 \
$USER_CHAT_SEQ \\q$USER_NAME \
TIMEOUT 45 \
$PASSWD_CHAT_SEQ $PASSWORD
if [ $? != 0 ]; then
message "Failed to log in"
exit 1
fi
# We logged in, try to start up the protocol (provided that the
# user has specified how to do this)
if [ $PROMPT ]; then
message "Starting Comm Protocol"
chat TIMEOUT 15 $PROMPT $PROTOCOL_START
if [ $? != 0 ]; then
message "Prompt not received"
exit 1
fi
fi
if [ $START_ACK ]; then
chat TIMEOUT 15 $START_ACK ""
if [ $? != 0 ]; then
message "Failed to start Protocol"
exit 1
fi
fi
# Success!
message "Protocol started"
Ha ez is megvan, akkor már csak el kell
indítani a diald
programot. Az egyszerűség kedvéért indítás előtt adjuk ki az ifconfig
parancsot. Most egy ilyet kell látnunk (ha van eth0 hálózati kártyánk
is
beállítva):
eth0 Link encap:Ethernet HWaddr 00:48:45:00:0E:AC
inet addr:192.168.1.1 Bcast:192.168.1.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xe400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:172 errors:0 dropped:0 overruns:0 frame:0
Ezek után adjuk ki a diald parancsot. A
promptot rögtön
visszakapjuk.
Most
is adjuk ki az ifconfig parancsot. Most valami ilyesmit kell látnunk:
eth0 Link encap:Ethernet HWaddr 00:48:45:00:0E:AC
inet addr:192.168.1.1 Bcast:192.168.1.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xe400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:172 errors:0 dropped:0 overruns:0 frame:0
TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
sl0 Link encap:Serial Line IP
inet addr:127.0.0.2 P-t-P:127.0.0.3
Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500
Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
Ha így van, akkor készen vagyunk. Most
ellenőrzés képpen
próbáljunk pingelni, vagy telnetelni, vagy böngészővel elérni egy
távoli gépet.
Ha jól dolgoztunk, akkor a modem rögtön tárcsáz és máris használhatjuk
a
szupersztrádát.
Az eddigiekben megnéztük, mit kell tenni,
ha a ppp-t kliens
oldalon használjuk.
Hogyan építsünk olyan gépet, ami ppp
szerverként működik.
Tehát arra van szükségünk, hogy modemen keresztül fel lehessen hívni és
a
szokásos IP feletti szolgáltatásokat nyújtsa.
Először is azt kell biztosítani, hogy a
modemünk válaszoljon
a telefonon érkező hívásra. Ez elég egyszerű, mindössze a
/etc/inittab-ban kell
megnézni, hogy szerepel-e a következő sor:
T3:23:respawn:/sbin/mgetty -x0 -s 115200 /dev/modem
ahol disztribúciótól függően esetleg
módosítani kell az
mgetty program helyét, modemtől függően a vonalsebességet (9600-115200)
és a
/dev/modem a megfelelő soros porta mutató link legyen.
Ez után létrehozunk egy pppuser nevű
felhasználót.
A jelszó megadása után meg kellene
editálni egy kicsit a
/etc/passwd fájlt, hogy ne egy shellt kapjon belépéskor, hanem egy
általunk
elkészített speciális szkriptet (pl legyen a /usr/sbin/ppplogin, aminek
a tartalma
az alábbiakban le van írva). Ennek a funkciója, hogy a kapcsoltat
felvétele és
a bejelentkezés után felépítse a ppp kapcsolatot és a kommunikáció már
a ppp-n
történjen.
Tehát az /etc/passwd fájlban végezzük el a
következő
módosítást:
pppuser:x:1004:1004:Modem User ,,,:/home/pppuser:/usr/sbin/ppplogin
A /usr/sbin/ppplogin így nézzen ki:
#!/bin/bash
mesg n
stty -echo
exec sudo pppd -detach silent modem crtscts
Ennek a szkriptnek futtathatónak kell
lenni. (r-xr-xr-x)
A sorok jelentése:
A shellnek szóló parancsok
A felhasználók nem írhatnak a tty-ra
A visszhangot kikapcsoljuk
Az utolsó sor pedig elindítja a pppd-t.
Nem engedjük, hogy
bontsa a vonalat (-detach). Várakoztatjuk egy csomag megérkezéséig,
mielőtt ő
küldene (silent). A modem opció mindig kell, amikor a ppp-t modemmel
használjuk. (Meghajtja a soros port modemvezérlő vonalait.) A crtscts
bekapcsolja a hardver szinkronizálását. Az options fájl egyáb opciói
természetesen ilyenkor is élnek.
A pppd program indítása root
jogosultsággal lehetséges. Ezért használjuk az „exec
sudo pppd” megoldást. Ahhoz hogy ez működjön, a /etc/sudoers
fájlban jelen kell lenni a következő sornak:
pppuser goliat=NOPASSWD: /usr/sbin/pppd
Ami azt jelenti, hogy a goliaton (a
modemes szerver gép) a
pppuser felhasználó jelszó megadása nélkül root jogosultsággal
használhatja a
pppd programot.
Már csak a /etc/ppp/pap-secrets fájlt kell
megszerkeszteni,
hogy benne legyen a következő sor:
* goliat "" *
Ez azért kell, hogy bármely felhasználó
elérhesse a goliat
nevű gépet bárhonnan, használva a szabványosan megadott jelszavát és a
/etc/passwd fájlt.
Most már csak az van hátra, hogy a kliens
gép modem
interfészének megfelelő IP-je legyen. A legegyszerűbb, ha kiosztunk
neki egy
IP-t abból a címtartományból, amiben a modemes szerver ethernet
kártyája is
van. Tehát történetesen egy win9x-es gépen a sajátgép/telefonos
hálózat/ehhez
tartozó csatlakozás/tulajdonságok lapja (jobb egérgomb
klikk)/kiszolgálótípusok/TCPIP beállítások/IP cím megadása helyen be
kell írni
az ethernet kártya IP címét és kötelezzük a felhasználóinkat erre.
Ha gondosan felépítettünk egy IP-re épülő
intranet hálózatot,
megterveztük az alhálózatainkat és fáradságos munkával végigjártuk az
összes
munkahelyet és elvégeztük a szükséges beállításokat, akkor nagy
bosszúságot és
sok új munkaórát tud okozni bármilyen módosítás a rendszerben. Ha a
hagyományos
utat követjük, akkor újra végig kell járni a munkahelyeket és elvégezni
a
módosításokat.
Ennek elkerülésére egy lehetséges megoldás
lehet a boot
protokoll használata. Használatával lehetőségünk van egy munkaállomás
szinte
minden szükséges hálózati beállítását egy központi helyről
adminisztrálni.
Működésének eredménye bizonyos szempontból hasonló a hagyományos
windows-os
környezetben elterjedt dhcp (Dynamic
Host Configuration
Protocol) megoldáshoz. A különbség annyi,
hogy míg egy DHCP kliens minden egyes kapcsolat megteremtésekor más IP
címet
kap (éppen ez a DHCP lényege, hogy ne foglalja be nem kapcsolt gép az
IP
tartományt) és ebből következően nehezen beazonosítható, a bootp-n
keresztül
kapcsolódó kliens minden egyes alkalommal ugyanazon az IP-n kapcsolódik
és így
jól nyomon követhető. Gyakorlatilag teljesen úgy viselkedik, mintha a
kliens
gépen statikusan be lenne állítva az IP hálózati adminisztrációs rész,
csak
megvan az a kényelmi szolgáltatás, hogy egy helyről, központilag
adminisztrálható az egész hálózat, anélkül, hogy a felhasználók bármit
is
tudnának az egészről. (Persze aki akarja a linuxon is használhatja a
dhcp-t,
hiszen megtalálható mind a szerver oldali, mind a kliens oldali csomag
bármelyik disztribúcióban.)
A linuxon felépített bootp szervert
használhatjuk linuxos, más
unixos és természetesen hagyományos windows-os munkaállomások
kiszolgálására
is. (A windows-os munkaállomások számára a bootp szerverünk mint egy
windows-os
DHCP szerver fog megjelenni.)
A bootp másik nagyon fontos felhasználási
területe a diszk
nélküli terminálok kiszolgálása. Ha rendszerünket diszk nélküli (persze
diszkkel együtt is lehet) terminálokból, vagy X-terminálokból akarjuk
összeállítani, akkor a terminálok indítása nem a szokványos módon
történik.
(Nem egyszerűen bekapcsoljuk a gépeket és a merevlemezükről
bebootolnak, mivel
lehet, hogy nincs is merevlemezük.) Ilyenkor általában a terminálok
hálózati
kártyáján található boot eprom segítségével (az ebbe égetett kernel
segítségével)
arra képes lesz a gép, hogy a hálózaton elérje azt a szervert, amin
megtalálja
a neki szükséges hálózati információkat és a többi, működéshez
szükséges
adatot. Ebben az esetben a legszükségesebb információkat a bootp
szervertől
kapja a kliens gép (a terminál).
Konfigurálása és indítása nagyon egyszerű.
Működéséhez egyetlen konfigurációs fájlt
kell elkészíteni. Ez
alapértelmezés szerint a /etc/bootptab fájl.
Nézzünk meg egy lehetséges fájl részletét:
#
# Boopt server config/database file.
# 8 may 1997 by Root
#
#
# These are global definitons.
#
.global:dn=nitro.hu:gw=192.168.1.1:ds=192.168.1.1:hn:ht=ethernet:sm=255.255.255.0:to=-3600:
#
# These are the hosts' own config data
#
billygate:ip=192.168.1.9:ha=0x02C00C229584:tc=.global:
feri:ip=192.168.1.11:ha=0x00E229062C46:tc=.global:
pisti:ip=192.168.1.12:ha=0x0048450038CE:tc=.global:
tamara:ip=192.168.1.18:ha=0x00E029062728:tc=.global:
viki:ip=192.168.1.23:ha=0x00E029062CA3:tc=.global:
magdi:ip=192.168.1.34:ha=0x0000C00730F7:tc=.global:
ani:ip=192.168.1.18:ha=0x00E029060A60:tc=.global:
A fájl láthatóan két részből áll. Az első
rész egy általános, több gépnél is felhasználható
tulajdonságok csoportja. Ilyen csoportot akár hányat csinálhatunk, és
bárhol
felhasználhatjuk őket. Azokat a tulajdonságokat érdemes így csoportba
szedni,
amik több gépnél is megegyeznek és nem akarjuk többször ugyanazt
leírni. Ezt
egyszerűen elnevezzük valahogy (pl .global-nak), és utána csak a
nevével kell
hivatkozni rá, amikor fel akarjuk használni valamelyik gépnél.
A második részben az egyes
gépekre vonatkozó információk vannak. Minden új sor egy-egy gépet
jelent.
A használt címkék:
dn:
a domén neve
gw
az átjáró
(gateway) gép IP címe
ds
a
névkiszolgáló IP címe
hn
nem csak a
kliens gép IP címét küldi át a kliensnek a szerver, hanem a hozzá
tartozó
gépnevet is
ht
a hálózati
interfész típusa (ethernet, ethernet3, token-ring, pronet, arcnet,
chaos,
ax.25)
sm
a géphez
tartozó netmaszk
to
a helyi idő
eltolódása az UTC-hez képest (másodpercekben mérve)
ip
a gép IP címe
ha
a gép hálózati
kártyájának hardveres ethernet címe (minden kártyának van egy gyárilag
beégetett, nem megváltoztatható egyedi azonosítója)
tc
a közös
tulajdonságokat tartalmazó rész nevét adhatjuk itt meg
A szolgáltatás indítása a szokásos két
módon történhet. Önálló,
mindig futó démonként indítva a bootpd
programot, vagy az inetd-t
használva. Kis hálózatoknál (kis igénybevételnek kitéve a bootp démont)
jó
megoldás az inetd-n keresztüli használat. Nagy gépszám esetén és főleg
hálózatról bootoló gépek esetén viszont ajánlatosabb a mindig futó
változatot
használni.
Inetd használata esetén a következő sort
írjuk be a
/etc/inetd.conf fájlba:
bootps dgram udp wait root /usr/sbin/bootpd bootpd bootptab
Önálló futtatás esetén megfelelő megoldás
lehet egy
bottpd /etc/bootptab
tartalmú
szkript indítása valamelyik rcx.d könyvtárban. Természetesen ezt kézzel
is
kiadhatjuk és indíthatjuk vele a bootp szolgáltatást.
Ne adjunk meg semmilyen beállítást a
TCP/IP lapon
A UNIX-os világban a fájlok megosztására
az NFS rendszert
használják. A linuxban ezt a funkciót egy démon és a hozzá tartozó
konfigurációs állomány valósítja meg.
A programot a szokásos két módon lehet
indítani. Inetd-n
keresztül, amikor szükség van rá és kézzel, vagy automatikusan
valamelyik rcx.d
könyvtárban lévő indítószkript segítségével.
Az utóbbi a hagyományosan
elterjedt
indítási mód. Minden Linux disztribúcióban van egy indítószkript, amit
indíthatunk
kézzel (pl DEBIAN-ban:)
/etc/init.d/nfs-server start
vagy a szkriptre hivatkozhatunk egy
linkkel a megfelelő
rcx.d könyvtárban is:
goliat:~# ls -l /etc/rc3.d/S25nfs-server
lrwxrwxrwx 1 root root 20 May 31 14:29 /etc/rc3.d/S25nfs-server -> ../init.d/nfs-server
goliat:~#
Mivel a program rendszerbetöltéskor is
indulhat, ügyelnünk
kell arra, hogy csak a portmapper
(rpc.portmap) után indítsuk, hiszen a
portmapper szükséges az RPC alapú
programok port hozzárendeléséhez.
Ha inetd-n keresztül akarjuk indítani a
szolgáltatást, amikor szükség van rá, akkor a következő két sort vegyük
fel a
/etc/inetd.conf fájlba:
nfs/2 dgram rpc/udp wait root /usr/sbin/rpc.nfsd rpc.nfsd
nfs/2 stream rpc/tcp wait root /usr/sbin/rpc.nfsd rpc.nfsd
Bármelyik indítási módot választjuk,
lehetőségünk van
különböző opciókkal együtt indítani a programot. Általában működik ezek
nélkül
is, de ha jobban meg akarjuk ismerni a szolgáltató programot, akkor nem
árt, ha
végignézzük a lehetőségeket.
-f (vagy –exports-file) Meghatározza, hogy
induláskor a
program melyik fájlból vegye a szolgáltatáshoz szükséges információkat.
Alapértelmezés szerint a /etc/exports fájlt fogja használni. Ennek
felépítését
tárgyalni fogjuk.
-d or --debug
A naplózási lehetőségeket terjeszthetjük
ki vele a jobb
nyomkövetés elérése érdekében.
A d opció után használható lehetőségek:
call naplózza az RPC
hívásokat
fhcache a fájlkezelés során a cache használatról kapunk
bővebb információt
auth Információ az
azonosításról
ugid Információ a kliens
gép user és group
aktualizálásához, ha használjuk.
A naplóinformációk a syslogon keresztül
tárolódnak, kivéve,
ha a démon előtérben fut.
-F (--foreground) A démon normál üzem
esetén leválik a
terminálról az indítás után, tehát visszakapjuk a promptot és a démon a
háttérben fut. Ha ezt az opciót használjuk, akkor a démon előtérben fog
futni.
-h (--help) Egy rövid segítséget ad a
program használatához.
-l (--log-transfers) Minden kiszolgálást
megpróbál naplózni.
A naplófájlba bekerül a kliens gép IP-je és a kért fájl neve.
-P portszám A démon alapértelmezés
szerinti portszámát lehet
vele megváltoztatni. Vegyük észre, hogy alapesetben 2049-es portot
használ, ami
azt jelenti, hogy nem szükséges a futtatásához root jogosultság.
-v (--version) A program verziószámát adja
meg a
felhasználónak.
Egy kliens gépen a szervernek csak azokat
a könyvtárait
mountolhatjuk be, amik engedélyezve vannak a kliens számára a
/etc/exports
fájlban.
A fájl formája nagyon egyszerű:
könyvtárnév gép(opció,opció,…)
gép(opció,…) …
Egy lehetséges exports fájl:
/ samson(rw) tuti(rw,no_root_squash)
/tervek terv*.nitro.hu(rw)
/usr *.nitro.hu(ro) @jok(rw)
/pub (ro,insecure,all_squash)
/pub/private (noaccess)
Az egyes sorok a következőket jelentik:
A szerver egész könyvtárszerkezetét el
lehet érni a samson gépről irható, olvasható módon. A
tuti gépről szintén írható olvasható
módon de ezen felül, ha a kliens root jogot kér, azt is megadja.
(vigyázzunk
ezzel az opcióval: Ha a kliensen root jogosultsággal hozunk létre a
szerver
fájlrendszerén valamit, akkor az ott is root
jogosultságú lesz, e nélkül nobody.
Ha ezt használjuk, akkor érdemes még a ’nosuid’ és ’nodev’ opciókat is
használni, mert ekkor nem hozhat létre a kliensről a szerveren is
érvényesülő
setuid-os és eszköz fájlokat egy –a kliens gépen- root jogú
felhasználó!) Ezt
az opciót egyébként a diszk nélküli gépeken ajánlatos használni.
A /tervek
könyvtárat
bemountolhatja írható olvasható módon minden olyan gép, aminek neve
terv-vel
kezdődik és a nitro.hu doménen van.
A /usr
könyvtárat
bemountolhatj csak olvasható módon minden gép, ami a nitro.hu doménben
van, de
ha a felhasználó a jok csoportba tartozik, akkor ő írhatja is azt.
A /pub
könyvtárat
mindenki bemountolhatja csak olvasható módon és engedélyezünk minden
gépről nem
hitelesített hozzáférést és minden kérés nobody felhasználóként lesz
kiszolgálva.
A
/pub/private
könyvtárat nem érheti el senki sehonnan, felülbírálva az előző sort.
A fájlban található opciókon kívül jól
használhatók még a
’root_squash’ opció, ami a kliensről root
joggal jövő felhasználót nobody
userré teszi. Az ’all_squash’ az előzőhöz hasonló, de az összes
usert nobody-ként
kezeli. Hasznos biztonsági funkció.
Ezzel végig is néztük a gyakran használt
opciókat.
A fenti magyarázat segítségével bárki
könnyen építhet NFS
szervert. Ezek után már csak azt kell megnézni, hogy hogyan kell egy
kliens
gépről elérni a szerver szolgáltatásait.
Az NFS
köteteket becsatolhatjuk egyszerűen a mount
parancs kiadásával megfelelő szintaktikával és a szokásos /etc/fstab
fájl
segítségével is, ami –mint már leírtuk- a bemountolandó
fájlrendszerekről
tartalmaz információkat. (Hova, milyen opciókkal csatoltuk.) Nézzük meg
először
ezt a lehetőséget.
Egy minta
fstab fájl részlete:
goliat:/usr/local/terv /terv nfs rsize=8192,wsize=8192,timeo=10,intr
A fenti
példában a goliat nevű gépről felcsatoljuk a /usr/local/terv könyvtárat
a
kliens gép fájlrendszerébe a /terv könyvtárba. Az opciók jelentése
sorban:
nfs
Megmondjuk a
csatolandó fájlrendszer típusát.
rsize=8192
Az adatblokk
mérete olvasáskor bájtokban mérve.
wsize=8192
Az adatblokk
mérete íráskor bájtokban mérve.
A fenti két
opció alapértéke 1024 bájt, de az írási-olvasási sebesség nagymértékben
meg fog
javulni, ha megnöveljük ezeket 8192 bájtra.
timeo=10
Ennyi időt fog
várni a kliens gép egy kérés teljesítésére, mielőtt újra próbálkozik a
sikertelen átvitellel. Az alapérték 7.
Tizedmásodpercekben
mér.
intr
Ha egy kérést
nem lehet kielégíteni, akkor hasznos opció ez, mert ezzel megengedjük
az NFS
átvitel próbálkozás megszakítását.
Ezen kívül
gyakran használt opció még a ’hard’ és a ’soft’.
Ha egy kérést
nem sikerül teljesíteni, akkor a ’timeo’-val megadott idő
megduplázódik. Ha ez
sem elég, akkor megint. Ez 60 másodpercig mehet fel. Ekkor kapunk egy
üzenetet
a képernyőnkre és kezdődik az egész elölről, csak dupla időközökkel. Ez
mehet a
végtelenségig, ha ’hard’ opcióval van felcsatolva a könyvtár. (ekkor jó
az
’intr’) Ha ’szoft’-tal csatoljuk fel, akkor I/O hibát kapunk 60
másodperc után.
A ’hard’ csatolás biztonságosabb olyan szempontból, hogy a programok
biztosak
lehetnek abban, hogy az írási művelet sikeres volt, míg ez ’soft’
esetén nem
igaz!
A ’rsize’ és a
’wsize’ opció a teljesítményre hatnak (kerneltől függő), a többieknek
akkor van
jelentőségük, ha a szerver valamiért nem válaszol.
Ha a mount parancsot
használjuk, akkor a
szintaktika a következő:
mount –t nfs gépnév:/könyvtárnév(mit) /könyvtárnév(hova) opciók
mount gépIPcíme:/könyvtárnév(mit) /könyvtárnév(hova) opciók
A ’–t nfs’
(ebben mondjuk meg, hogy milyen típusú fájlrendszert akarunk csatolni)
elmaradhat, mivel a parancs formája elég sajátságos és a Linux
rendszerünk fel
fogja ismerni a típust.
pl:
mount goliat:/pub /mnt/nfs
Ezzel
felcsatoljuk a /mnt/nfs könyvtárunkba a goliat gép /pub könyvtárát
semmilyen
külön opciót nem használva. A használható opciók természetesen
ugyanazok, mint
az fstab megoldás esetén.
A ma forgalomba kerülő
Linux
disztribúciók sokkal könnyebben installálhatók, mint korábbi társaik.
Néhány
disztribúció már akár magyar üzenetekkel is segíti a felhasználót. De
arra
azért ne számítsunk, hogy „csak hátra kell dőlni és élvezzük a
telepítést”, ami
magától végbe megy. Természetesen ez a folyamat is annyira változatos
tud
lenni, ahány disztribúció létezik. Az alapvető lépések minden
disztribúcióban
megegyeznek.
Be kell szerezni egy telepítő médiát. Ez
nem nehéz feladat,
hiszen majdnem minden neves számítástechnikával foglalkozó magazin
(pl.: CHIP
Magazin) CD mellékletén megjelent már és folyamatosan megjelenik
egy-egy új
verzió valamelyik disztribútortól. Boltban is vehetünk Linux-ot nem túl
drágán.
Ezen kívül letölthetők a teljes disztribúciók legfrissebb változatai a
megfelelő FTP helyekről is.
Ez után rá kell venni a gépünket, hogy bootolja be a linuxot a telepítőről. Általában ez sem túl nehéz feladat, mivel a CD-k bootolhatók. Tehát egy egyszerű IDE felületű CD meghajtóról elindíthatjuk a telepítést. A telepítőn lévő kernel nagyon sok hardvert ismer, ezért valószínűleg nem fogunk problémába ütközni sem az IDE eszközök sem az SCSI eszközök területén. Ha mégis, akkor sajnos el kell olvasni a CD-n található segítséget, hogy melyik könyvtárban vannak az alternatív kernel image-k, amiket használhatunk. Ha ezt megtaláltuk, akkor vagy egy másik linuxos gépen a dd program segítségével, vagy egy DOS (WINx) gépen a rawrite program segítségével el kell készíteni a telepítő floppyt.
dd if=/fájl of=/dev/fd0
Ahol fájl a megfelelőnek vélt image
elérési útja és neve.
A rawrite program
megtalálható minden Linux CD dosutils könyvtárában. Használata nagyon
egyszerű.
Elindítjuk, megadjuk neki a fájl elérési útját, majd a floppy egység
betűjelét
és máris elkészíti a lemezt.
Ha esetleg ez a módszer sem segít, akkor
sajnos kell
fordítani egy olyan kernelt, ami ismeri azokat a hardver elemeket, amik
a
gépünkben vannak. (Ezt természetesen egy másik linuxos gépen tudjuk
megtenni.)
Ezek után (megint csak disztribúciótól függ, hogy hogyan) el kell
készíteni
ezzel a kernellel a telepítő lemezt. Most már biztosan el tudjuk
kezdeni a
telepítést. Eddigi tapasztalatom alapján még nem találkoztam olyan
PC-vel,
amire nem lehetett feltelepíteni a Linuxot és csak egyetlen eggyel
találkoztam,
ahol az utolsó módszert kellett alkalmazni. Az esetek 99 százalékában a
CD-ről
való bootolás a megszokott eljárás.
Ha már el tudtuk indítani a telepítést,
akkor sínen vagyunk.
Ez után általában minden disztribúcióban a telepítési környezet
beállítása jön.
Itt olyan kérdésekre kell felkészülni, hogy színes-e a monitorunk,
milyen
nemzeti karakterkiosztást akarunk használni a billentyűzeten, esetleg
milyen
nyelven kérjük a telepítést (SuSE).(A magyar terjesztések között
található
Debian eleve magyar nyelven kommentálja a telepítést.)
Ha ezzel is megvagyunk, akkor jöhet a
kiszemelt winchester
partícionálása. A telepítő felajánlja a gépünkben talált
winchestereket, csak
ki kell választani a megfelelőt. A partícionálást vagy az fdisk
programmal végezhetjük a lemezekről szóló fejezetben
leírtaknak megfelelően, vagy a telepítő által felajánlott –vélhetően
sokkal
barátságosabb felülettel rendelkező- másik hasonló funkciójú
programmal. Ha nem
teljesen új winchesterünk van, hanem már léteznek rajta Linux partíciók
és azok
megfelelnek számunkra, akkor nem kell partícionálni. Ha esetleg más
rendszert
is tervezünk felrakni a gépre, akkor hagyjuk ki neki a helyet és a
partícióinak
létrehozásához használjuk a saját fdisk
programot. (Használhatjuk a linuxét is, hiszen nagyon sok fajta
partíciót
ismer, de én mindig a saját eredeti programokat javaslom.) Ha
eredetileg már
volt a winchester teljes területén egy DOS (WIN’9x) rendszer és nem
akarjuk
letörölni, akkor még a Linux telepítés előtt le kell csökkenteni a
partíció
méretét. Erre való a fips nevű
program, ami szintén a Linux CD dosutils könyvtárában található. (Lehet
vágni
vele a FAT32 partíciót is.) Először természetesen egy lemezrendező
programmal
rendezzük a lehető legjobban a fájljainkat.
Ha a partícionálással készen vagyunk,
akkor jöhet a
partíciók aktiválása. Először a swap területet fogja aktiválni. Ne
lepődjünk
meg, ha esetleg több swap partíciót hoztunk létre és csak egyet fog
használni.
Majd később, amikor már fut a rendszer, a memóriáról szóló fejezetben
leírtak
szerint aktiválhatjuk a többit is. A swap után a root partíciónak
kijelölt
következik és ha van, akkor a többi is. Meg fogja kérdezni, hogy az
egyes
partíciók hova legyenek bemountolva. A hibás blokkokat érdemes
végignézetni,
bár elég sok időt vesz igénybe.
Az ez után következő folyamat már erősen
disztribúciótól
függő. Egyiket sem szeretném részletezni, ez teljesen egyéni ízlés
kérdése, ki
melyiket szereti. Van olyan rendszer, ami először feltelepíti az
alaprendszert,
elvégez pár alapvető beállítást (hálózatba vagyunk-e kötve, milyen
csatolóval
–gép neve, domén név, ethernet, modem- IP cím, hálózati maszk,
broadcast cím,
name server, stb kérdésekre kell felkészülni) majd ezek után a kész
alaprendszerhez válogathatunk a különböző feltelepíthető csomagok
közül. Van
olyan is, amelyik egyből felajánlja a telepíthető csomagok listáját és
a
telepítés közben kérdez rá bizonyos dolgokra. Bármelyikkel is
találkozunk, az
adott rendszer végig fog vezetni bennünket egy úton.
A csomagkezelő az igazán különböző az
egyes disztribúciók
között. A Debian kezelője (a dpkg)
elsőre elég barátságtalannak tűnik, viszont nagyon jól végigvezet a
beállításokon. Mire feltelepítünk egy csomagot, az gyakorlatilag be is
van
állítva működésre készen. Kritikus pont a csomagok függőségének
kezelése. Ez
alatt azt értem, hogy mivel a linuxhoz nagyon sok program található és
ezeket
nem egy csapat fejleszti, bizonyos programok (fájlok) használhatósága
függ
mások meglététől. Szóval, ha fel akarunk telepíteni valamit és az közli
velünk,
hogy akkor még ezt is meg azt is szíveskedjünk kijelölni, akkor ne
lepődjünk
meg, legyünk engedelmesek, ha használni akarjuk. Csakhogy lehet, hogy
amiket
még felajánlott, azok működéséhez is kell valami más. És ez az, amit
nem minden
csomagkezelő old meg kifogástalanul. A SuSE kezelője a YaST
kifogástalanul
oldja meg ezt a feladatot. Kezdőknek ezért inkább a SuSE disztribúciót
ajánlanám, míg a haladóbbak próbálkozhatnak a Debian és más
disztribúciókkal
is. Sok sikert.
Miután felinstalláltuk a Linux valamelyik
disztribúcióját, új
rendszerünk a "gyárilag" telepített kernelt használja. A kernel az
operációs rendszerünk magja. A hagyományos rendszerekhez hasonlítva a
feladata
körülbelül úgy néz ki, mintha az io.sys, msdos.sys, processzek
vezérlése és a
betölthető eszközvezérlőket tartalmazó config.sys fájl tartalma lenne
együtt és
még a windows9x-hez tartozó eszközvezérlők, driverek (meghajtó
programok).
Ha a rendszer indítása után minden
hardverelemünk működik (CD,
SCSI, hangkártya, stb...), akkor nem szükséges új kernelt készíteni.
Egy profi
rendszerhez azonban profi kernel is tartozik, amit természetesen nekünk
illik
elkészíteni a saját hardverünkhöz és igényeinkhez igazítva. Tudni kell,
milyen
hardverelemeket tartalmaz a számítógépünk (processzor típusa, alaplapi
vezérlő
chipkészlet típusa, hálózati kártya, monitorvezérlő kártya, hangkártya,
ISDN
kártya, SCSI kártya, stb.). Feltételezzük, hogy ezek jellemzőivel
mindenki
teljesen tisztában van, ilyen apróságok nem hoznak zavarba senkit.
A kernelt fejlesztő csapat munkáját
dicséri, hogy nagyon jó
minőségű driverek készülnek az egyes hardver elemekhez, melyek magas
színvonalon használják ki az eszközök teljesítményét. (Ide értve a
monitorvezérlő kártyákat és a hangkártyákat is.)
A minél újabb kernel használata azért is
előnyösebb a „gyári”
kernelnél, mert lehetnek benne olyan vezérlők, ami szükséges az új
hardvereink
kezeléséhez, lehetnek benne olyan javítások, amik valamilyen
szempontból
biztonságosabbá teszik a gép működését és ezen kívül természetesen
teljesen
testre van szabva. A Linux programozói csapat népességének és a
párhuzamos
debuggingnak (hibakeresésnek, tesztelésnek) köszönhetően a kernel
nagyon
gyorsan frissül, tehát havonta, de legalább kéthavonta érdemes
beszerezni az
újabb verziót. Ez egy óriási előny a „pénzes” rendszerekkel szemben,
hiszen az
esetlegesen előforduló hibákat nagyon könnyen és gyorsan felfedezik a
nyílt
forráskód miatt, és roppant gyorsan kijavítják azt. Ezért ha mi is
kellően
odafigyelünk, akkor nem fordulhat elő az, hogy a rendszerünk hosszú
hetekig
esetleg hónapokig védtelen, vagy ki van szolgáltatva a futó programok
„jóindulatának”.
Ha kernelépítésre adtuk a fejünket, akkor
először is be kell
szerezni egy új kernelforrás csomagot. Ez letölthető a szokásos ftp
helyekről,
de a komolyabb számítógépes magazinok CD mellékletén is meg szokott
jelenni.
A másik fontos szempont, hogy stabil, vagy
fejlesztői változatot
akarunk használni. Aki a fejlesztői változatot választja, az lehet,
hogy több
újdonsághoz jut, de ennek az az ára, hogy a rendszer nem biztos, hogy
kifogástalanul működik, hiszen ez a verzió még fejlesztés alatt van.
(Aki mégis
ezt választja, az úgyis tudja mit csinál és az információkat nem ebből
a
könyvből szerzi.) Átlagos felhasználóknak, kezdőknek érdemes a stabil
verziókat
használni. Ha szervert építünk, ehhez is mindenképpen a stabil,
kiforrott
változat javasolt. Honnan tudjuk, hogy melyik a stabil és melyik a
fejlesztői
változat? Jelenleg a 2.2.14-es verzió a legújabb stabil és a 2.3.x
verzió a
fejlesztői változat. A számsorban a második szám jelzi, hogy fejlesztői
(páratlan), avagy stabil (páros) változattal van dolgunk. A harmadik
szám minél
nagyobb, annál újabb a kernel. Az első szám is a kernel korára utal. Ha
a
fejlesztők úgy érzik, hogy a fejlettségi szint már egy egészen más
kategóriába
emeli az új kernelt, amit már nem tükröz hűen a második szám ugrása,
akkor ez
is lép egyet. Tehát tegyük fel, hogy beszereztük a 2.2.14-es kernel
forrását
tömörített, archivált formában valahonnan. A fájlunk neve:
Linux-2.2.14.tar.gz, vagy
Linux-2.2.14.tar.bz2
A következőkben leírt eljárás minden
disztribúcióban ugyanúgy
működik. A forrást másoljuk be a /usr/src könyvtárba. Ebben a
könyvtárban
tárolódik a kernelforrás. Az előző verziót tartalmazó könyvtárakat
töröljük le
innen. Ez ebben a könyvtárban általában a Linux nevű alkönyvtárban
tárolódik. A
legegyszerűbb, ha az új forráson kívül mindent letörlünk.
rm -rf Linux
Miután letöröltük, csomagoljuk ki az új
kernelforrást. A
kiterjesztésekből látható, hogy a csomag úgy készült, hogy először
archiválták
az egész forrást, majd utána betömörítették. Ebben az állapotban a
kernelforrás
kb. 13MB helyet foglal. Kicsomagolva kb 70MB helyet fog foglalni a
winchesterünkön.
A legegyszerűbben a következő paranccsal tudjuk kibontani az állományt:
tar xvzf Linux-2.2.14.tar.gz
vagy a bzip2-vel csomagolt változat esetén
bzip2 –d Linux-2.2.14.tar.bz2
tar xvf Linux-2.2.14.tar
Az új kernel forrása most már a most
létrejött Linux könyvtárban
van. Lépjünk be ebbe a könyvtárba. Ha bővebben akarunk olvasni az
installálás
módjáról, akkor olvassuk el a README fájlt. Ebben találhatunk
útmutatást,
hogyan kell nem egy teljes forrást felrakni, csak egy patch-el
frissíteni a
kernelünket és ezen kívül még számos lehetséges utat tárgyal a kernel
frissítésére. Mi most a teljes kernel lecserélését nézzük végig. Adjuk
ki a
következő parancsokat:
cd /usr/src/Linux
make mrproper
Ezek után a kernelünk forrása megfelelő
módon installálva van.
Most már "csak" annyi a dolgunk, hogy az általunk összeállított
.config fájl segítségével lefordítsuk az új kernelt és azt használatba
vegyük.
A .config fájl elkészítésére több mód is van.
Megtehetjük ezt kézzel megszerkesztve
(profiknak és
önmarcangolóknak ajánlott).
Megtehetjük a make config
parancs kiadásával, amikor is párbeszédes módon a program rákérdez
minden egyes
beállítási lehetőségre. (Még mindig nem túl barátságos.)
Ha a make menuconfig
utasítást adjuk ki, akkor egy az előzőekhez képest sokkal barátságosabb
környezetben dolgozhatunk, de még karakteres menüzött felületen.
Ha van már X-Window rendszerünk akkor egy
xterminálon kiadva a make xconfig parancsot egy minden
igényt kielégítő grafikus beállító felületet kapunk, amin könnyen
beállíthatjuk
a szükséges paramétereket.
Mi a make menuconfig
paranccsal követjük végig a lényegesebb beállításokat. Lépjünk be a
/usr/src/linux könyvtárba (cd
/usr/src/linux) és adjuk ki a parancsot (make menuconfig).
Ennek hatására egy főmenübe jutunk, ahol
csoportokba szedve megtalálhatjuk a beállítási lehetőségeket tartalmazó
menüpontokat. Még mielőtt nekilátunk a menüpontok tárgyalásának,
látható, hogy
minden menüpontnak 3 beállítási lehetősége van: y (igen), m
(modul), n (nem). A nem
és az igen gondolom érthető, a modul-ról
kicsit beszélnünk kell.
Vannak bizonyára olyan hardverelemek a
gépünkben, amiket nem
használunk állandó jelleggel, sőt, elég ritkán van rá szükség. Ugyanígy
nem
minden –nem hardverre vonatkozó- kernelfunkciót használunk állandó
jelleggel.
Ezek a dolgok, amik nem létfontosságúak a működéshez, nem mindennapos a
használatuk, de azért néha jól jön, ha működik, mind mind kernelmodulba
rakhatók. Ez azért előnyös, mert a kernel
betöltődésekor nem töltődnek be azonnal, tehát nem foglalják
feleslegesen a
memóriát. Csak akkor töltődnek be, ha szükség van rájuk. Vigyázzunk,
mit rakunk
modulba! Ha pl. egy IDE winchesterről bootol a gépünk, akkor az
alaplapi IDE
vezérlő driverét NE rakjuk modulba, mert egyébként kereshetünk egy boot
lemezt
gépünk felélesztéséhez... Ugyanis nem fog elindulni a gép, mert egy
olyan
eszközvezérlőt akarunk betölteni egy olyan helyről, ami épp azon a
helyen van,
aminek a vezérlőjét be akarom tölteni...(!?) Én személy szerint egy
szervernek
szánt számítógép kernelét sem készítem modulosra egy hacker barátom
tanácsára,
aki imád azon szerverekre behatolni, ahol modulos kernelt talál maga
alatt. De
ez már önbizalom kérdése... Tehát a modulok jelentőségét most már
értjük. Ha
modulos kernelt akarunk építeni, akkor a bootoláshoz nem létfontosságú
dolgokat
nyugodtan tegyük modulba. A használatukhoz esetleg szükséges további
információkat adunk a „Függelék: Kernel paraméterek, modulok”
fejezetben.
Tehát továbbra is a /usr/src/Linux
könyvtárban állva adjuk ki a make menuconfig, vagy a make xconfig parancsot.
Ha X alatt fordítjuk a kernelt, barátságos
menü vezet végig
bennünket.
Vegyük sorba a lehetőségeket:
Code maturity level options --->
[ ] Prompt for development and/or incomplete code/drivers
Az első menüponton belül csak egy almenü
található. Ez arra
szolgál, hogy engedélyezzük, vagy tiltsuk a nem teljesen kiforrott, de
már elég
jól használható kódrészletek használatát. A tapasztalat azt mutatja,
hogy nem
szokott probléma lenni ezek használatával, de szerverek, vagy más
kritikus
munkaállomások kernelében én nem szoktam engedélyezni, már csak az
illem
kedvéért sem. Azt javaslom, hogy csak akkor használjuk, ha egy olyan
egzotikus
hardverelemünk van, amihez még csak fejlesztői meghajtót találunk.
Processor type and features --->
(Pentium/K6/TSC) Processor family
( ) 386
( ) 486/Cx486
( ) 586/K5/5x86/6x86
(X) Pentium/K6/TSC
( ) PPro/6x86MX
A következő főmenüpontban a processzorra
vonatkozó beállításokat
találjuk. 5 kategória közül választhatjuk ki, hogy a Linux mely
processzortípus
használatára legyen optimalizálva a 386-ostól a PentiumIII-Xeon típusig.
A 386 kategória azt hiszem elég világos
(AMD/Cyrix/Intel
386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2 and UMC 486SX-S.
A 486-ost használjuk AMD/Cyrix/IBM/Intel
DX4 or
486DX/DX2/SL/SX/SX2,
AMD/Cyrix
5x86, NexGen Nx586 and UMC U5D or U5S processzortípus esetén.
Az 586/K5/... kategóriát használjunk olyan
processzoroknál,
melyekben (valószínűleg) van TSC (Time Stamp Counter) regiszter.
Ha kiadjuk a
less /proc/cpuinfo
parancsot, akkor a
fájlban láthatók a processzor regiszterei.
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 6
model name : Celeron (Mendocino)
stepping : 5
cpu MHz : 400.914642
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx osfxsr
bogomips : 399.77
A Pentium/K6/TSC kategóriát válasszuk
eredeti Intel Pentium, AMD
K6- (K6-2)- (K6III) processzorok esetén.
PPro/6x86MX kategóriát használjunk
Cyrix/IBM/National
Semiconductor 6x86MX, MII, Intel Pentium II/Pentium Pro Xeon Celeron
Pentium III
esetén.
Nem baj, ha XeonIII processzort használunk
386-ra optimalizált
kernellel. Fordítva ne kövessük el ezt, mert az okozhat problémát.
(1GB) Maximum physical memory
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[ ] Symmetric multi-processing support
A 2.2.14-es
kernelben véglegesítették a „nagy” memória méretek használatát. Ezt
állíthatjuk
be egyenlőre kétállású kapcsolóval. Ha „csak” 1GB alatti memóriával
rendelkezünk, akkor hagyjuk meg a gyári beállítást.
Még mindig a processzornál maradva
állítsuk be a Math
emulation-t, ha nem tartalmaz a processzorunk matematikai koprocesszort.
Az MTRR support nagyon hasznos, ha valaki
PCI, vagy AGP buszos
kártyákat használ. Ezen kártyák sebessége megtöbbszöröződik, ha
használjuk a
funkciót. Csak bizonyos processzortípusoknál működik. Az AMD K6, K6-2,
K6-III
processzoroknak kettő ilyen regisztere is van, az Intel P6 család is
tartalmaz
ilyet és a Cyrixnek 6x86-tól felfelé van hasonló funkciót ellátó
regisztere.
A Symmetric multi-processing support-ot
kapcsoljuk be, ha egynél
több processzort tartalmaz a gépünk. (Max. 16 processzort támogat a
mostani
kernel.) Ekkor különösen vigyázzunk, hogy ne használjunk PPro-ra
optimalizált
kernelt Pentiumos multiprocesszoros rendszeren. Használhatunk egy
processzorra
fordított kernelt SMP-s rendszeren, de csak egy processzort fog
használni a
Linux. SMP-re fordított kernelt viszont ne használjunk egy
processzorral.
Loadable module support --->
[*] Enable loadable module support
[ ] Set version information on all symbols for modules
[*] Kernel module loader
A következő csoportban szabhatjuk meg,
hogy modulos kernelt
használunk, vagy nem engedélyezzük a modulok használatát. Mindenki az
igényei
és a feladat szerint döntse el, engedélyezi, vagy sem. Ha igen, akkor
az Enable
loadable module support be legyen kapcsolva. A verzió információk
beállítása a
modulokban nem ajánlott. Aki mégis megteszi, az biztosan tudja mit
csinál.
A Kernel module loader opció nagyon
hasznos. Ennek segítségével
a kernelünk automatikusan, futás közben ki-be töltögeti a moduljainkat.
General setup --->
[*] Networking support
[*] PCI support
(Any) PCI access mode
[*] PCI quirks
[*] Backward-compatible /proc/pci
[ ] MCA support
[ ] SGI Visual Workstation support
[*] System V IPC
[ ] BSD Process Accounting
[*] Sysctl support
<*> Kernel support for a.out binaries
<*> Kernel support for ELF binaries
<*> Kernel support for MISC binaries
< > Kernel support for JAVA binaries (obsolete) (NEW)
<*> Parallel port support
< > PC-style hardware
[*] Advanced Power Management BIOS support
[ ] Ignore USER SUSPEND
[*] Enable PM at boot time
[ ] Make CPU Idle calls when idle
[ ] Enable console blanking using APM
[*] Power off on shutdown
[ ] Ignore multiple suspend
[ ] Ignore multiple suspend/resume cycles
[ ] RTC stores time in GMT
[*] Allow interrupts during APM BIOS calls
A következő csoportba a buszrendszerre,
egyes speciális
architektúrákra, a BIOS-ra, a futtatható kódra vonatkozó információk
tartoznak.
[*] Networking support Engedélyezzük, ha
bármilyen hálózati
tevékenységet szeretnénk végeztetni a Linux géppel.
[*] PCI support
(Any) PCI access mode
( ) BIOS
( ) Direct
(X) Any
[*] PCI quirks
[ ] PCI bridge optimization (experimental) (NEW)
[*] Backward-compatible
Ha rendszerünk használ PCI buszrendszert,
akkor engedélyezzük a
következő csomagot.
A PCI access mode ponton beállíthatjuk,
hogy a kernel a biost
megkerülve használja a PCI eszközöket (direct), vagy a bioson keresztül
(BIOS),
vagy először próbálja meg direkt módon, majd ha úgy nem megy, akkor a
bioson
keresztül (any). Az utolsót célszerű beállítani.
A PCI quirks menüpont hasznos lehet hibás,
vagy gyenge minőségű
bios kóddal ellátott rendszereken.
A Backward-compatible opció a visszafelé
kompatibilitást segíti.
A régebbi rendszerek a /proc/pci fájlban tárolnak információkat a PCI
eszközeinkről. Néhány régebbi program igényli ennek a meglétét. Az új
rendszerek a /proc/bus/pci fájlban tárolják a PCI információt.
Az MCA és az SGI support az IBM PS/2
gépeit (MicroChannel
Architecture) és az SGI (volt Silicon Graphics) új, intel bázisú
grafikus
munkaállomásait támogatja.
[*] System V IPC A programok egymás
közötti kommunikációjára
szolgál. Mindenképpen kapcsoljuk be.
[ ] BSD Process Accounting Ha az egyes
futó processzek CPU
fogyasztásának számlázására van szükségünk, akkor kapcsoljuk be.
[*] Sysctl support Egy felületet ad a
kernel bizonyos
paramétereinek futás közbeni módosítására.
<*> Kernel support for a.out binaries
<*> Kernel support for ELF binaries
<*> Kernel support for MISC binaries
A következő opciókkal állíthatjuk be, hogy
milyen futtatható
bináris formátumokat támogasson a kernel. Mindenképpen kapcsoljuk be az
ELF
formátumot. Az új Linux programok ezt használják. A régi formátum az
a.out.
Nagyon hasznos a MISC. Ennek segítségével futtathatunk DOS, WINDOWS,
JAVA
programokat.
Ha akarunk párhuzamos portot használni
(pl.: nyomtatót), akkor
kapcsoljuk be a Parallel port support-ot.
A következő rész a "fejlett
energiagazdálkodással
rendelkező" gépekhez nyújt kernel szintű támogatást.
[*] Advanced Power Management BIOS support
[*] Enable PM at boot time
[*] Power off on shutdown
[*] Allow interrupts during APM BIOS calls
Itt mindenkinek a kísérletező kedvére
bízom a beállításokat. Én
általában a fenti beállításokat használom. Intel chipkészlettel
rendelkező
gépek szinte mindegyikén jó. A más gyártók chipkészletein is általában
működik.
Plug and Play support --->
[*] Plug and Play support
< > Auto-probe for parallel devices (NEW)
Van lehetőség néhány "plug and play"
eszköz
automatikus felismerésére is. Bár jelenleg csak a párhuzamos porton
lévő
eszközöket tudja detektálni.
Block devices --->
<*> Normal PC floppy disk support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
--- Please see Documentation/ide.txt for help/info on IDE drives
[ ] Use old disk-only driver on primary interface
<*> Include IDE/ATA-2 DISK support
<*> Include IDE/ATAPI CDROM support
<M> Include IDE/ATAPI TAPE support
<M> Include IDE/ATAPI FLOPPY support
< > SCSI emulation support
[ ] CMD640 chipset bugfix/support
[ ] RZ1000 chipset bugfix/support
[*] Generic PCI IDE chipset support
[*] Generic PCI bus-master DMA support
[ ] Boot off-board chipsets first support
[*] Use DMA by default when available
[ ] Other IDE chipset support
--- Additional Block Devices
<*> Loopback device support
< > Network block device support
[*] Multiple devices driver support
< > Linear (append) mode (NEW)
< > RAID-0 (striping) mode (NEW)
< > RAID-1 (mirroring) mode (NEW)
< > RAID-4/RAID-5 mode (NEW)
< > RAM disk support
< > XT hard disk support
< >Mylex DAC960/DAC1100 PCI RAID Controller support
< > Parallel port IDE device support
< > Compaq SMART2 Support
A Block devices csoportban a háttértárak
legkülönbözőbb fajtáit
és a vezérlő chipkészleteket állíthatjuk be.
A fenti felsorolás azt hiszem elég
egyértelmű. Talán csak néhány
opcióról kellene említést tenni.
SCSI emulation:
Hasznos lehet, ha pl. egy IDE vezérlős CD
íróval van dolgunk és
másképpen nem boldogulunk a bekonfigurálásával.
Mindenképpen említést érdemel a
Multiple devices driver support
csoport. A Linux képes szoftveresen
ellátni egy drága RAID
vezérlő funkcióit. (Természetesen a kártyás hardveres megoldás sokkal
gyorsabb
és a Linux is támogat jó néhány ilyen kártyát.) Ha van két egyforma
winchesterünk, akkor használhatjuk azokat nagy adatbiztonságú tükrözött
üzemmódban, vagy a nagyon gyors winchester elérést biztosító stripping
módban.
(Az adatokat egyszerre több winchesterre írja fel, egyben láthatóvá
téve a
teljes területet.) De természetesen a RAID5 módozat is kivitelezhető.
Ezek a
funkciók működnek drágább SCSI, de olcsó IDE winchesterekkel is.
A RAM disk opcióra általában nincs
szükség, de lemez nélküli
gépeknél mindenképpen kell. Ha a loopback device opciót befordítjuk,
akkor
bemountolhatunk egyszerű image, vagy ISO fájlokat is, mint
fájlrendszereket. A
fenti beállítások általában elégségesek egy átlagos rendszerhez.
Networking options --->
<*> Packet socket
[ ] Kernel/User netlink socket
[*] Network firewalls
[ ] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[ ] IP: multicasting
[ ] IP: advanced router
[ ] IP: kernel level autoconfiguration
[*] IP: firewalling
[*] IP: always defragment (required for masquerading)
[ ] IP: transparent proxy support
[ ] IP: masquerading
[ ] IP: optimize as router not host
< > IP: tunneling
< > IP: GRE tunnels over IP
[*] IP: aliasing support
[ ] IP: TCP syncookie support (not enabled per default)
--- (it is safe to leave these untouched)
< > IP: Reverse ARP
[*] IP: Allow large windows (not recommended if <16Mb of memory)
---
< > The IPX protocol
< > Appletalk DDP
<*> Packet socket
Az olyan programoknak hasznos lehetőség,
amik nem egy magasabb
szintű hálózati protokollon kommunikálnak. Nincs rá mindig szükség, de
jó ha
elérhető.
[*] Kernel/User netlink socket
Ezt mindenképpen kapcsoljuk be. Ezt
használják a programok a
kernel hálózati részével való kommunikációra. Szükség van rá
útválasztási
információkhoz, tűzfal riasztások esetén, arpd használatakor
(hardvercím-IP cím
táblázatok).
<*> Netlink device emulation (NEW)
Ez a funkció a visszafelé kompatibilitás
miatt van most bent a
kernelben. Most még használjuk.
[*] Network firewalls
[*] IP: firewalling
[ ] IP: firewall packet netlink device (NEW)
[*] IP: always defragment (required for masquerading)
[*] IP: transparent proxy support
[ ] IP: masquerading
A fenti opciók nem ilyen sorrendben
vannak, de működésük függ
egymástól. A Linux kernel szintű tűzfal funkcióit valósítják meg.
Lehetőség van
az IP maszkolásra, ami akkor hasznos, ha a hálózatunkon egyetlen gép
van,
aminek hivatalosan bejegyzett IP címe van és a többi gépen is szükség
van
Internet kapcsolatra. Ha nem elegendő a proxy használata (nem csak
böngészőt
futtatunk, hanem szükség van minden gépnek a telnet, ftp, IRC, Quake
stb
programok internet hálózaton való használatára), tehát úgy akarjuk
használni
gépeinket, mintha mindenkinek lenne saját bejegyzett IP címe, akkor az
IP
masquerading (IP maszkolás) funkcióra van szükségünk. Ha szabályozni
akarjuk,
hogy ki honnan milyen szolgáltatást érhet el szerverünkön, akkor is a
firewall
-t kell használni. Ennek használata elég alapos ismereteket kíván és
nem tudunk
rá kitérni e könyv keretein belül.
[*] TCP/IP networking
Ez a funkció legyen mindig bekapcsolva, ha
TCP/IP alapú
hálózatban dolgoztatjuk a gépet.
[ ] IP: multicasting
Ha a gépet egy MBONE, nagy sávszélességű
hálózatban használjuk,
kapcsoljuk be ezt a funkciót.
[*] IP: advanced router
[ ] IP: policy routing (NEW)
[ ] IP: equal cost multipath (NEW)
[ ] IP: use TOS value as routing key (NEW)
[ ] IP: verbose route monitoring (NEW)
[ ] IP: large routing tables (NEW)
Ha a gépet további útválasztási extrákkal
akarjuk felszerelni,
akkor kapcsoljuk be a fenti opciókat.
Beállítható, hogy a hagyományos
rendszerekkel szemben a
választott útvonal ne csak a címzettől függjön. (policy routing) A
verbose
route monitoring opció segít bővebb információhoz jutni az
útválasztásról
(hibásan konfigurált gépet segít felfedezni). Ha nagy forgalmú
hálózatot
üzemeltetünk, akkor a large routing tables opciót kapcsoljuk be a
64-nél több
útválasztási bejegyzés tárolására.
[*] IP: kernel level autoconfiguration
[ ] BOOTP support (NEW)
[ ] RARP support (NEW)
A fenti opció bekapcsolásával lehetőség
van arra, hogy a gép
bootp-n, vagy RARP segítségével automatikusan kapjon IP címet.
[ ] IP: optimize as router not host
Ha a gépet kimondottan routernek akarjuk
használni, akkor
kapcsoljuk be ezt a lehetőséget.
< > IP: tunneling
Ez lehetőséget ad arra, hogy egy
protokollt beágyazzunk egy
másikba. Csak IP-t tud IP-be ágyazni. Nem igazán van rá szükség.
< > IP: GRE tunnels over IP
Ez is egy beágyazási módszer.
[*] IP: aliasing support
Nagyon hasznos funkció. Egy fizikai
interfésznek lehet vele több
IP címet kiosztani. Ezzel elérhető, hogy ha a gépünkben csak egy
hálózati
interfész van, akkor az úgy viselkedjen, mintha több lenne. (eth0,
eth0:0,
eth0:1, stb néven kell az ifconfig paranccsal konfigurálni, és a
továbbiakban
így kell rájuk hivatkozni)
[ ] IP: TCP syncookie support
A védtelen szervereket (és
munkaállomásokat is) könnyen
leterhelhetjük és ezzel működésképtelenné tehetjük, ha elég gyorsan
küldünk
neki kapcsolódási kérelmeket.
Az ilyen DOS (Denial of Service Attack)
támadások kivédésére
kapcsoljuk be a fenti opciót. (nem elég bekapcsolni, hanem minden
indulás után,
amikor már a /proc fájlrendszer mountolása megtörtént, ki kell adni a
következő
parancsot:
echo 1 >/proc/sys/net/ipv4/tcp_syncookies
< > IP: Reverse ARP
Ha olyan kliensek csatlakoznak
szerverünkhöz, amik RARP-ot
használnak az IP-jük megszerzéséhez, és mi akarjuk kiszolgálni őket,
akkor
engedélyezzük ezt a funkciót.
[*] IP: Allow large windows
Ha nagy sebességű hálózatot jól ki akarjuk
használni, akkor
nagyobb adatpufferre van szüksége a küldő gépnek. Ezt engedélyezi ez az
opció.
Ha 16MB-nál kevesebb memória van a gépben, akkor ne használjuk.
<*> The IPX protocol
[ ] IPX: Full internal IPX network (NEW)
Ha Novelles IPX hálózathoz akarunk
csatlakozni (akár mint
kiszolgáló, akár mint kliens, akkor szükségünk van erre az opcióra.
A Full internal IPX network opciót csak az
használja, aki tudja
mit csinál.
<*> Appletalk DDP
Ha Apple gépekkel kell kapcsolatot
teremteni a saját
protokolljukon keresztül (fájl és nyomtató szervert akarunk üzemeltetni
Apple
gépek számára a netatalk csomaggal), akkor kapcsoljuk be az opciót.
[*] SCSI support
--- SCSI support type (disk, tape, CD-ROM)
[*] SCSI disk support (NEW)
[*] SCSI tape support (NEW)
[*] SCSI CD-ROM support (NEW)
[*] Enable vendor-specific extensions (for SCSI CDROM) (NEW)
[*] SCSI generic support (NEW)
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
[*] Probe all LUNs on each SCSI device (NEW)
[*] Verbose SCSI error reporting (kernel size +=12K) (NEW)
[*] SCSI logging facility (NEW)
SCSI low-level drivers --->
Ha SCSI eszközöket akarunk használni,
akkor engedélyezzük az
SCSI support lehetőséget és az ezzel együtt járó további alopciók közül
értelemszerűen válasszuk ki azt, amire szükségünk van. Az opciók egy
része
modulba is tehető. Természetesen, ha egy SCSI eszközről akarunk
boot-olni,
akkor az ne legyen modulban. (pl.: SCSI disk support) Érdemes külön
szólni a
Probe all LUNs on each SCSI device lehetőségről. Ez teszi lehetővé,
hogy egy CD
tömböt használhassunk mégpedig úgy, hogy külön eszközként szólíthassunk
meg
benne minden egyes CD egységet (Logical Unit Number).
(/dev/scd0,
/dev/scd1,
/dev/scd2, ...)
SCSI low-level drivers
---> Almenün belül találjuk meg a használható kártyák
meghajtó
programjait.
[ ] 7000FASST SCSI support (NEW)
[ ] ACARD SCSI support (NEW)
[ ] Adaptec AHA152X/2825 support (NEW)
[ ] Adaptec AHA1542 support (NEW)
[ ] Adaptec AHA1740 support (NEW)
[*] Adaptec AIC7xxx support (NEW)
[*] Override driver defaults for commands per LUN (NEW)
(24) Maximum number of commands per LUN (NEW)
[*] Collect statistics to report in /proc (NEW)
(5) Delay in seconds after SCSI bus reset (NEW)
[ ] AdvanSys SCSI support (NEW)
[ ] Always IN2000 SCSI support (NEW)
[ ] AM53/79C974 PCI SCSI support (NEW)
[ ] AMI MegaRAID support (NEW)
[ ] BusLogic SCSI support (NEW)
[ ] DTC3180/3280 SCSI support (NEW)
[ ] EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) sup
[ ] EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatro
[ ] EATA-PIO (old DPT PM2001, PM2012A) support (NEW)
[ ] Future Domain 16xx SCSI/AHA-2920A support (NEW)
[ ] GDT SCSI Disk Array Controller support (NEW)
[ ] Generic NCR5380/53c400 SCSI support (NEW)
[ ] Initio 9100U(W) support (NEW)
[ ] Initio INI-A100U2W support (NEW)
[ ] IOMEGA parallel port (ppa - older drives) (NEW)
[ ] IOMEGA parallel port (imm - newer drives) (NEW)
[ ] NCR53c406a SCSI support (NEW)
[ ] symbios 53c416 SCSI support (NEW)
[ ] NCR53c7,8xx SCSI support (NEW)
[ ] NCR53C8XX SCSI support (NEW)
[ ] SYM53C8XX SCSI support (NEW)
[ ] PAS16 SCSI support (NEW)
[ ] PCI2000 support (NEW)
[ ] PCI2220i support (NEW)
[ ] PSI240i support (NEW)
[ ] Qlogic FAS SCSI support (NEW)
[ ] Qlogic ISP SCSI support (NEW)
[ ] Qlogic ISP FC SCSI support (NEW)
[ ] Seagate ST-02 and Future Domain TMC-8xx SCSI support (NEW)
[ ] Tekram DC390(T) and Am53/79C974 SCSI support (NEW)
[ ] Trantor T128/T128F/T228 SCSI support (NEW)
[ ] UltraStor 14F/34F support (NEW)
[ ] UltraStor SCSI support (NEW)
.
.
.
A lista alapján látható, hogy nagyon sok
igényt ki tud elégíteni
a driver gyűjtemény. Nem csak az "egyszerű" SCSI kártyák
használhatók, hanem sok RAID kártya is.
A következő csoportban a hálózati
interfészek meghajtói
tartoznak. A lista most is minden igényt kielégít.
[*] Network device support
[*] ARCnet support
[ ] Enable arc0e (ARCnet "Ether-Encap" packet format)
[ ] Enable arc0s (ARCnet RFC1051 packet format)
[ ] ARCnet COM90xx (normal) chipset driver
[ ] ARCnet COM90xx (IO mapped) chipset driver
[ ] ARCnet COM90xx (RIM I) chipset driver
[ ] ARCnet COM20020 chipset driver
[*] Dummy net driver support
[ ] EQL (serial line load balancing) support
[*] Ethernet (10 or 100Mbit)
[*] 3COM cards
[ ] 3c501 support
[ ] 3c503 support
[ ] 3c505 support
[ ] 3c509/3c579 support
[ ] 3c515 ISA Fast EtherLink
[ ] 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
[ ] AMD LANCE and PCnet (AT1500 and NE2100) support
[*] Western Digital/SMC cards
[ ] WD80*3 support
[ ] SMC Ultra support
[ ] SMC Ultra32 EISA support
[ ] SMC 9194 support
[*] Racal-Interlan (Micom) NI cards
[ ] NI5210 support
[ ] NI6510 support
[*] Other ISA cards
[ ] AT1700/1720 support
[ ] Cabletron E21xx support
[ ] DEPCA, DE10x, DE200, DE201, DE202, DE422 support
[ ] EtherWORKS 3 (DE203, DE204, DE205) support
[*] EtherExpress 16 support
[ ] FMV-181/182/183/184 support
[ ] HP PCLAN+ (27247B and 27252A) support
[ ] HP PCLAN (27245 and other 27xxx series) support
[ ] HP 10/100VG PCLAN (ISA, EISA, PCI) support
[ ] NE2000/NE1000 support
[ ] SK_G16 support
[*] EISA, VLB, PCI and on board controllers
[ ] AMD PCnet32 (VLB and PCI) support
[ ] Apricot Xen-II on board Ethernet
[ ] CS89x0 support
[ ] Generic DECchip & DIGITAL EtherWORKS PCI/EISA
[*] DECchip Tulip (dc21x4x) PCI support
[ ] Digi Intl. RightSwitch SE-X support
[*] EtherExpressPro/100 support
[*] PCI NE2000 support
[ ] TI ThunderLAN support
[ ] VIA Rhine support
[*] Pocket and portable adaptors
[ ] AT-LAN-TEC/RealTek pocket adaptor support
[ ] D-Link DE600 pocket adaptor support
[ ] D-Link DE620 pocket adaptor support
[*] FDDI driver support
[ ] Digital DEFEA and DEFPA adapter support
[*] Frame relay DLCI support
(24) Max open DLCI
(8) Max DLCI per device
[ ] SDLA (Sangoma S502/S508) support
[ ] PLIP (parallel port) support
[*] PPP (point-to-point) support
--- CCP compressors for PPP are only built as modules.
[ ] SLIP (serial line) support
[*] Wireless LAN (non-hamradio)
[ ] STRIP (Metricom starmode radio IP) (NEW)
[ ] AT&T WaveLAN & DEC RoamAbout DS support (NEW)
[*] Token Ring driver support
[ ] IBM Tropic chipset based adaptor support
.
.
.
A legrégibb ARCNET kártyáktól a ma
használt 100Mbps-os
etherneteken keresztül egészen az FDDI(Fiber Distributed Data
Interface) és
HIPPI (HIgh Performacne Paralell Interface) 1600Mbps-os
csúcstechnikákig.
(clusterek kialakítása) (A linuxos beowulf szabad forráskódú cluster
program
segítségével építették meg az 5000 db PC-t tartalmazó
szuperszámítógépet.
PentiumIII/500MHz/512MB RAM/gép)
A listából itt is mindenki válassza ki a
neki megfelelőt.
Természetesen, ha modemet használunk, akkor is itt kell keresgélnünk.
Állítsuk
be a [*] PPP (point-to-point) support-ot. Választhatjuk a régebbi slip
támogatást is. Sőt, ha az internet kapcsolat felépítéséhez a diald
(automatikus
tárcsázásra alkalmas) démont akarjuk használni, akkor a SLIP-re is
szükségünk
van. A 2.2-es kernel újdonsága az új ppp, ami képes automatikusan
felépíteni a
modemes kapcsolatot, amikor arra szükség van. Mi is ezt fogjuk bővebben
tárgyalni.
A Wireless LAN (non-hamradio) support
bekapcsolásával
használhatjuk a mikrohullámú ethernet kártyákat is. (Általában 2Mbps
sebességűek és 2,5GHz felett működnek. Ár/teljesítmény arányuk nagyon
jó.)
Ha a hálózati kapcsolat megteremtéséhez az
amatőr rádiózás
eszközeit akarjuk használni, vagy egy egyszerű Sound Blaster
hangkártyán keresztül
akarunk kommunikálni a gépek között, akkor ezt a funkciót használjuk.
[*] Amateur Radio support
--- Packet Radio protocols
[*] Amateur Radio AX.25 Level 2 protocol (NEW)
[ ] AX.25 DAMA Slave support (NEW)
[ ] Amateur Radio NET/ROM protocol (NEW)
[ ] Amateur Radio X.25 PLP (Rose) (NEW)
--- AX.25 network device drivers
[ ] Serial port KISS driver (NEW)
[ ] Serial port 6PACK driver (NEW)
[ ] BPQ Ethernet driver (NEW)
[ ] High-speed (DMA) SCC driver for AX.25 (NEW)
[ ] Z8530 SCC driver (NEW)
[ ] BAYCOM ser12 fullduplex driver for AX.25 (NEW)
[ ] BAYCOM ser12 halfduplex driver for AX.25 (NEW)
[ ] BAYCOM picpar and par96 driver for AX.25 (NEW)
[ ] BAYCOM epp driver for AX.25 (NEW)
[ ] Soundcard modem driver (NEW)
--- Misc. hamradio protocols
[*] Shortwave radio modem driver (NEW)
[ ] HFmodem support for Soundblaster and compatible cards (NEW)
[ ] HFmodem support for WSS and Crystal cards (NEW)
.
.
.
Nem kiforrott a
támogatás, de már a stabil kernelben van az infravörös port használata.
[*] IrDA subsystem support
--- IrDA protocols
[*] IrLAN protocol (NEW)
[*] IrCOMM protocol (NEW)
[*] IrLPT protocol (NEW)
[*] IrLPT client support (NEW)
[*] IrLPT server support (NEW)
[*] IrDA protocol options (NEW)
--- IrDA options
[*] Cache last LSAP (NEW)
[*] Fast RRs (NEW)
[*] Debug information (NEW)
[*] IrLAP compression (NEW)
--- IrDA compressors
[*] Deflate compression (experimental) (NEW)
Infrared-port device drivers --->
[*] IrTTY (uses serial driver) (NEW)
--- Dongle support
[*] Serial dongle support (NEW)
[ ] ESI JetEye PC dongle (NEW)
[ ] ACTiSYS IR-220L and IR220L+ dongle (NEW)
[ ] Tekram IrMate 210B dongle (NEW)
[ ] Greenwich GIrBIL dongle (NEW)
[ ] NSC PC87108 (NEW)
[ ] Winbond W83977AF (IR) (NEW)
[ ] Sharp UIRCC (NEW)
.
.
.
A manapság igen divatos ISDN használatához
válasszuk ki a
megfelelő opciókat az alábbi listából. És telepítsük fel az ISDNutils
programcsomagot.
[*] ISDN support
[*] Support synchronous PPP (NEW)
[ ] Use VJ-compression with synchronous PPP (NEW)
[ ] Support generic MP (RFC 1717) (NEW)
[ ] Support audio via ISDN (NEW)
[ ] ICN 2B and 4B support (NEW)
[ ] isdnloop support (NEW)
[ ] PCBIT-D support (NEW)
[*] HiSax SiemensChipSet driver support (NEW)
[ ] HiSax Support for EURO/DSS1 (NEW)
[ ] HiSax Support for german 1TR6 (NEW)
[ ] HiSax Support for Teles 16.0/8.0 (NEW)
[ ] HiSax Support for Teles 16.3 or PNP or PCMCIA (NEW)
[ ] HiSax Support for Teles 16.3c (NEW)
[ ] HiSax Support for AVM A1 (Fritz) (NEW)
[ ] HiSax Support for Elsa cards (NEW)
[ ] HiSax Support for ITK ix1-micro Revision 2 (NEW)
[ ] HiSax Support for Eicon.Diehl Diva cards (NEW)
[ ] HiSax Support for ASUSCOM cards (NEW)
[ ] HiSax Support for TELEINT cards (NEW)
[ ] HiSax Support for Sedlbauer speed card/win/star (NEW)
[ ] HiSax Support for USR Sportster internal TA (NEW)
[ ] HiSax Support for MIC card (NEW)
[ ] HiSax Support for NETjet card (NEW)
[ ] HiSax Support for Niccy PnP/PCI card (NEW)
[*] AVM-B1 with CAPI2.0 support (NEW)
[ ] Verbose reason code reporting (kernel size +=7K) (NEW)
.
.
.
Mindenképpen kapcsoljuk be a Support
synchronous PPP opciót, mivel
az ISDN modemek a szinkron kapcsolatot használják az analóg modemek
aszinkron
kapcsolata helyett. Ha üzenetrögzítőként is akarjuk használni ISDN
modemünket,
akkor csak be kell kapcsolni a Support audio via ISDN opciót. (Az
aszinkron
modemeknél használt voice parancsokkal tudjuk az eszközt kezelni.)
Ha valaki esetleg még régi "kártyás" CD
olvasót
használ, annak itt be kell állítania a kívánt modellt.
[*] Support non-SCSI/IDE/ATAPI CDROM drives
[ ] Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support (NEW)
[ ] Goldstar R420 CDROM support (NEW)
[*] Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support (NEW
[ ] Matsushita/Panasonic, ... second CDROM controller support (NEW)
[*] Mitsumi (standard) [no XA/Multisession] CDROM support (NEW)
(11) MCD IRQ (NEW)
(300) MCD I/O base (NEW)
[ ] Mitsumi [XA/MultiSession] CDROM support (NEW)
[ ] Optics Storage DOLPHIN 8000AT CDROM support (NEW)
[ ] Philips/LMS CM206 CDROM support (NEW)
[ ] Sanyo CDR-H94A CDROM support (NEW)
[ ] ISP16/MAD16/Mozart soft configurable cdrom interface support (NEW
[ ] Sony CDU31A/CDU33A CDROM support (NEW)
[ ] Sony CDU535 CDROM support (NEW)
Karakteres eszközöknek nevezzük azokat az
eszközöket, melyeken
szövegesen kommunikálunk. (soros port, párhuzamos port, stb., és amik
az alábbi
felsorolásban még láthatók)
Nagyon hasznos lehetőség a virtuális
terminál használata. Azért
virtuális, mert egy fizikai eszközt tudunk úgy használni, mintha több
lenne
belőle. Ez azt jelenti, hogy van egy billentyűzetünk és egy monitorunk
és az
Alt+F1, Alt+F2, stb billentyűkombinációkkal váltogathatunk a "virtuális
képernyőink" között, mintha több lenne ezekből az eszközökből.
Természetesen
az egyes virtuális képernyőkön mást mást csinálhatunk. Van lehetőség a
"hagyományos" szöveges képernyők mellett grafikus képernyőt is
használni a Alt+Funkció billentyű alkalmazásával. Alapesetben 6 db
karakteres
termnál van definiálva a linuxon, tehát Alt+F1-től Alt+F6-ig szöveges
virtuális
termináljaim vannak és Alt+F7-re jön be a grafikus terminál (persze, ha
előtte
már elindítottuk). Visszaváltani a grafikusról a szövegesre a
Crtl+Alt+Fvalahányas kombinációval lehet. A rendszerkonzol az az
eszköz, amely
a rendszerüzeneteket fogadja és megengedi a bejelentkezést
egyfelhasználós
"szervíz" módban. Ha engedélyezzük a Support for console on virtual
terminal opciót, akkor a konzol az első elérhető virtuális terminál
lesz
(tty1). (Ez az általános, megszokott megoldás.) Ez módosítható pl a
LILO prompt
után beírva a console=tty3 paramétert.
A Standard/generic (dumb) serial
support-ot engedélyezzük, ha
használni akarjuk valamire a soros portokat. Ennek almenüjéből nyílik a
lehetőség a soros porton való konzol használatára is.
Az Extended dumb serial driver options
használatára annak van
szüksége, aki egy standard soros eszköz nem standard lehetőségeit
akarja
elérni. (IRQ megosztás, több, mint négy COM port használata, stb.)
A Non-standard serial port support
lehetőségre akkor van
szükség, ha az előbbi már nem elég.
A Unix98 PTY support
(256) Maximum number of Unix98 PTYs in use (0-2048)
lehetőség még nem igazán kiforrott és a
szabványos unix pszeudo
terminálok kezelésére szolgál.
Ha párhuzamos porton keresztül akarunk
nyomtatni, akkor
mindenképpen használjuk a Parallel printer support-ot. (A 2.2-es kernel
biztosít egy egységes felületet a nyomtatáshoz az operációs rendszer
oldalról
nézve, ami minden hardver platformon ugyanaz. (ALPHA, PPC, SPARC,
INTEL).
Ez fogja elindítani az adott hardvernek
megfelelő
hardverkezelőt.)
[*] Mouse Support (not serial mice)
Ha nem soros portra csatlakozó egeret
használunk, akkor
szükségünk van a fenti lehetőségre. Itt is mindenki válassza ki a neki
megfelelőt.
A QIC-02 tape support-ra csak akkor van
szükségünk, ha van egy
ilyen, speciális protokollt használó eszközünk.
A Watchdog Timer Support lehetőséget ad a
rendszer állapotának
figyelésére.
A /dev/nvram support lehetőséget ad a CMOS
memória elérésére
ezen az eszközfájlon keresztül.
Az Enhanced Real Time Clock Support-al a
gép rendszeróráját
kezelhetjük. Ha több processzoros gépünk van, akkor kapcsoljuk be.
A Video For Linux támogatást ad számos
video digitalizálóhoz, tv
kártyához és FMrádió kártyához.
A Joystick support is magáért beszél. Ha
esetleg van olyan Linux
használó, aki játékra akarja használni ezt a rendszert.
A floppy vezérlőt és a különböző saját
kártyákat igénylő nem túl
szabványos szalagos egységek kezelésére használható a Ftape, the floppy
tape
device driver gyűjtemény.
Character devices --->
[*] Virtual terminal
[*] Support for console on virtual terminal
[*] Standard/generic (dumb) serial support
[ ] Support for console on serial port
[ ] Extended dumb serial driver options
[ ] Non-standard serial port support
[*] Unix98 PTY support
(256) Maximum number of Unix98 PTYs in use (0-2048)
[*] Parallel printer support
[ ] Support IEEE1284 status readback
[*] Mouse Support (not serial mice)
Mice --->
[ ] ATIXL busmouse support
[ ] Logitech busmouse support
[ ] Microsoft busmouse support
[*] PS/2 mouse (aka "auxiliary device") support
[ ] C&T 82C710 mouse port support (as on TI Travelmate)
[ ] PC110 digitizer pad support
[ ] QIC-02 tape support
[*] Watchdog Timer Support
Watchdog Cards --->
[ ] Disable watchdog shutdown on close
[ ] WDT Watchdog timer
[ ] Software Watchdog
[ ] Berkshire Products PC Watchdog
[ ] Acquire SBC Watchdog Timer
[ ] /dev/nvram support
[ ] Enhanced Real Time Clock Support
Video For Linux --->
[*] Video For Linux
[ ] AIMSlab RadioTrack (aka RadioReveal) support
[ ] AIMSlab RadioTrack II support
[ ] Aztech/Packard Bell Radio
[ ] ADS Cadet AM/FM Tuner
[ ] Miro PCM20 Radio
[ ] GemTek Radio Card support
[ ] BT848 Video For Linux
[ ] Quickcam BW Video For Linux
[ ] Colour QuickCam Video For Linux (EXPERIMENTAL)
[ ] Mediavision Pro Movie Studio Video For Linux
[ ] SAA5249 Teletext processor
[ ] SF16FMI Radio
[ ] Typhoon Radio (a.k.a. EcoRadio)
[ ] Zoltrix Radio
Joystick support --->
[*] Joystick support
[ ] Classic PC analog joysticks and gamepads
[ ] FPGaming and MadCatz A3D controllers
[ ] Gravis GrIP joysticks and gamepads
[ ] Logitech Digital joysticks and gamepads
[ ] Microsoft SideWinder, Genius Digital joysticks and gamepads
[ ] ThrustMaster DirectConnect joysticks and gamepads
[ ] PDPI Lightning 4 gamecards
[ ] NES, SNES, PSX, Multisystem joysticks and gamepads
[ ] Sega, Multisystem joysticks and gamepads
[ ] TurboGraFX Multisystem joystick interface
[ ] Double Talk PC internal speech card support
Ftape, the floppy tape device driver --->
[*] Ftape (QIC-80/Travan) support
[ ] Zftape, the VFS interface
[ ] Enable procfs status report (+2kb)
(Normal) Debugging output
--- Hardware configuration
(Standard) Floppy tape controllers
--- ONLY for DEC Alpha architectures
(0) CPU clock frequency of your DEC Alpha
.
.
.
A következő nagy egység a fájlrendszerek
kezelését biztosítja. A
Linux gyakorlatilag az összes elterjedt fájlrendszerhez hozzáférést
biztosít.
Mindenki válassza ki amire szüksége van. Most csak azokról teszünk
említést,
amiket semmiképpen nem érdemes kihagyni, vagy valamilyen más szempontot
figyelembe
véve kell szót ejteni róluk.
A quota support bekapcsolásával
lehetőségünk van a felhasználók
diszkfoglalását ellenőrizni. Kernel szinten mindössze ennyit kell
beállítani a
használathoz, részletesebben egy külön fejezetben foglalkozunk vele.
A Kernel automounter support-ot kapcsoljuk
be, ha azt akarjuk,
hogy a felhasználók könnyen használhassák a floppy és a CD egységet.
(ne
kelljen a mount parancs rejtelmeibe belebonyolódniuk) A feladat nem
kernelre
tartozó részét az automount program végzi.
A /proc filesystem support-ot mindenképpen
kapcsoljuk be. Ez
tárolja az információkat a futó rendszerünkről.
A Second extended fs support-ra is
szükségünk van, hiszen ez a
Linux által használt partíció fájlrendszere.
Filesystems --->
[*] Quota support
[*] Kernel automounter support
[ ] Amiga FFS filesystem support
[ ] Apple Macintosh filesystem support (experimental)
[*] DOS FAT fs support
[*] MSDOS fs support
[*] UMSDOS: Unix-like filesystem on top of standard MSDOS filesyste
[*] VFAT (Windows-95) fs support
[*] ISO 9660 CDROM filesystem support
[*] Microsoft Joliet CDROM extensions
[ ] Minix fs support
[ ] NTFS filesystem support (read only)
[ ] OS/2 HPFS filesystem support (read only)
[*] /proc filesystem support
[ ] /dev/pts filesystem for Unix98 PTYs
[ ] ROM filesystem support
[*] Second extended fs support
[ ] System V and Coherent filesystem support
[ ] UFS filesystem support
Network File Systems --->
[ ] Coda filesystem support (advanced network fs)
[*] NFS filesystem support
[ ] Emulate SUN NFS server (NEW)
[ ] SMB filesystem support (to mount WfW shares etc.)
[ ] NCP filesystem support (to mount NetWare volumes)
Partition Types --->
[ ] BSD disklabel (BSD partition tables) support
[ ] Macintosh partition map support
[ ] SMD disklabel (Sun partition tables) support
[ ] Solaris (x86) partition table support
Native Language Support --->
[ ] Codepage 437 (United States, Canada)
[ ] Codepage 737 (Greek)
[ ] Codepage 775 (Baltic Rim)
[ ] Codepage 850 (Europe)
[*] Codepage 852 (Central/Eastern Europe)
[ ] Codepage 855 (Cyrillic)
[ ] Codepage 857 (Turkish)
[ ] Codepage 860 (Portugese)
[ ] Codepage 861 (Icelandic)
[ ] Codepage 862 (Hebrew)
[ ] Codepage 863 (Canadian French)
[ ] Codepage 864 (Arabic)
[ ] Codepage 865 (Norwegian, Danish)
[ ] Codepage 866 (Cyrillic/Russian)
[ ] Codepage 869 (Greek)
[ ] Codepage 874 (Thai)
[ ] NLS ISO 8859-1 (Latin 1; Western European Languages)
[*] NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)
[ ] NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)
[ ] NLS ISO 8859-4 (Latin 4; Estonian, Latvian, Lithuanian)
[ ] NLS ISO 8859-5 (Cyrillic)
[ ] NLS ISO 8859-6 (Arabic)
[ ] NLS ISO 8859-7 (Modern Greek)
[ ] NLS ISO 8859-8 (Hebrew)
[ ] NLS ISO 8859-9 (Latin 5; Turkish)
[ ] NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
[ ] NLS KOI8-R (Russian)
A konzol video módját tudjuk beállítani az
alábbi részben. A
hagyományos szöveges konzol használatához engedélyezzük az első
menüpontot. Ha
a szöveges konzolon engedélyezni akarjuk a különböző felbontások
használatát,
akkor a másodikra is szükségünk van. Kísérleti állapotot jelezve, de
már
elérhető a stabil kernelben is az MDA text console (dual-headed)
(EXPERIMENTAL)
ami a két monitort kezelő kártyákhoz hasznos támogatás és a [ ] Support
for
frame buffer devices (EXPERIMENTAL), amivel a VESA2 módokat ismerő
kártyákat
érdemes használni.
[*] VGA text console
[*] Video mode selection support
Az alábbi csomagot azok bogarásszák végig,
akik arra kíváncsiak,
vajon támogatott-e az általuk használt hangkártya. Valószínűleg igen...
Meg kell említeni azt is, hogy a Linux
fejlesztése során a
kernelbe befordított hangkártya drivereken kívül létezik egy még ennél
is jobb
csomag. Az ALSA (Advanced Linux Sound Architecture) driver (még ennél
is)
többet tud és -ami a lényeg- könnyebben használható.
Sound --->
[*] Sound card support
[*] Ensoniq AudioPCI (ES1370) (NEW)
[*] Joystick support at boot time (NEW)
[*] Creative Ensoniq AudioPCI 97 (ES1371) (NEW)
[*] Joystick support at boot time (NEW)
(200) Gameport I/O 200,208,210,218 (NEW)
[ ] S3 SonicVibes (NEW)
[*] Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (NE
--- Compiled-in MSND Classic support requires firmware during compila
Full pathname of MSNDINIT.BIN firmware file: "/etc/sound/msndi
Full pathname of MSNDPERM.BIN firmware file: "/etc/sound/msndp
(5) MSND Classic IRQ 5,7,9,10,11,12 (NEW)
(D0000) MSND Classic memory B0000,C8000,D0000,D8000,E0000,E8000 (NEW)
(290) MSND Classic I/O 210,220,230,240,250,260,290,3E0 (NEW)
[*] Support for Turtle Beach MultiSound Pinnacle, Fiji (NEW)
--- Compiled-in MSND Pinnacle support requires firmware during compil
Full pathname of PNDSPINI.BIN firmware file: "/etc/sound/pndsp
Full pathname of PNDSPERM.BIN firmware file: "/etc/sound/pndsp
(5) MSND Pinnacle IRQ 5,7,9,10,11,12 (NEW)
(D0000) MSND Pinnacle memory B0000,C8000,D0000,D8000,E0000,E8000 (NEW
(290) MSND Pinnacle I/O 210,220,230,240,250,260,290,3E0 (NEW)
[ ] MSND Pinnacle has S/PDIF I/O (NEW)
[*] MSND Pinnacle non-PnP Mode (NEW)
--- MSND Pinnacle DSP section will be configured to above parameters.
(250) MSND Pinnacle config port 250,260,270 (NEW)
--- Pinnacle-specific Device Configuration (0 disables)
(0) MSND Pinnacle MPU I/O (e.g. 330) (NEW)
(0) MSND Pinnacle MPU IRQ (e.g. 9) (NEW)
(0) MSND Pinnacle IDE I/O 0 (e.g. 170) (NEW)
(0) MSND Pinnacle IDE I/O 1 (e.g. 376) (NEW)
(0) MSND Pinnacle IDE IRQ (e.g. 15) (NEW)
(0) MSND Pinnacle joystick I/O (e.g. 200) (NEW)
(128) MSND buffer size (kB) (NEW)
[*] OSS sound modules (NEW)
[ ] Persistent DMA buffers (NEW)
[ ] ProAudioSpectrum 16 support (NEW)
[*] 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support
(220) I/O base for SB Check from manual of the card (NEW)
(7) Sound Blaster IRQ Check from manual of the card (NEW)
(1) Sound Blaster DMA 0, 1 or 3 (NEW)
(5) Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for
(330) MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of
--- MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.
--- Enter -1 to the following question if you have something else suc
(-1) SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of
[ ] Generic OPL2/OPL3 FM synthesizer support (NEW)
[ ] Gravis Ultrasound support (NEW)
[ ] MPU-401 support (NOT for SB16) (NEW)
[ ] PSS (AD1848, ADSP-2115, ESC614) support (NEW)
[ ] Microsoft Sound System support (NEW)
[ ] Ensoniq SoundScape support (NEW)
[ ] MediaTrix AudioTrix Pro support (NEW)
[ ] Support for OPTi MAD16 and/or Mozart based cards (NEW)
[ ] Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Mau
[ ] Support for Crystal CS4232 based (PnP) cards (NEW)
[ ] Support for Yamaha OPL3-SA2, SA3, and SAx based PnP cards (NEW)
[ ] Limited support for Turtle Beach Wave Front (Maui, Tropez) synthe
[ ] Support for Aztech Sound Galaxy (non-PnP) cards (NEW)
[ ] Support for AD1816(A) based cards (EXPERIMENTAL) (NEW)
[ ] Yamaha OPL3-SA1 audio controller (NEW)
[ ] SoftOSS software wave table engine (NEW)
[ ] FM synthesizer (YM3812/OPL-3) support (NEW)
[ ] Loopback MIDI device support (NEW)
[ ] 6850 UART support (NEW)
Additional low level sound drivers --->
[*] Additional low level sound drivers (NEW)
[*] ACI mixer (miroPCM12) (NEW)
[*] AWE32 synth (NEW)
[*] Gallant Audio Cards (SC-6000 and SC-6600 based) (NEW)
(220) I/O base for Audio Excel DSP 16 220 or 240 (NEW)
(330) I/O base for MPU401 Check from manual of the card (NEW)
--- SC-6600 Audio Cards have no jumper switches at all
[*] SC-6600 based audio cards (new Audio Excel DSP 16) (NEW)
--- SC-6600 specific configuration
[ ] Activate SC-6600 Joystick Interface (NEW)
(4) SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?) (N
(0) SC-6600 CDROM Interface I/O Address (NEW)
[*] Audio Excel DSP 16 (SBPro emulation) (NEW)
--- Audio Excel DSP 16 [Sound Blaster Pro]
(220) I/O base for Audio Excel DSP 16 220, 240 (NEW)
(7) Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11 (NEW)
(1) Audio Excel DSP 16 DMA 0, 1 or 3 (NEW)
.
.
.
Az alábbi opciót bekapcsolva az
Alt+PrintScreen+valamilyengomb
hatására különböző feladatokat tud elvégezni a kernel.
(Alt+PrintScree+Enter-re
egy listát kapunk ezekről.)
Kernel hacking --->
[*] Magic SysRq key
Az alábbi két menüpont segítségével egy
már meglévő .config
állományt tölthetünk be és nem kell végigjátszani a fenti beállításokat
(vigyázzunk, hogy a kívánt .config milyen kernel verzióhoz készült) és
a most
elkészített beállításainkat egy más néven is elmenthetjük.
Load an Alternate Configuration File
Save Configuration to an Alternate File
Miután végigrágtuk magunkat és
beállítottuk a szükséges
opciókat, kiléphetünk a konfigurátorból (az utolsó kérdésre Yes-el
válaszoljunk.)
Most nincs más hátra, hogy lefordítsuk az
új kernelt és
használatba vegyük. Ehhez adjuk ki a következő utasítássorozatot:
make dep; make clean; make bzImage
A bzImage helyett használhatunk mást is.
Pl.: zImage (Ha
biztosak vagyunk benne, hogy a kernel kisebb lesz, mint 512KB.)
Most géptől függően itt egy kis várakozás
következik, amíg az új
kernel elkészül. (3 perctől 1 óráig terjedően)
Ha elkészült, akkor a
/usr/src/Linux/arch/i386/boot könyvtárban
találjuk bzImage néven. Ezt másoljuk át a /boot könyvtárba nekünk
tetsző néven.
Itt vigyázzunk arra, hogy ebben a könyvtárban már lehet, hogy van egy
ugyanilyen nevű fájl és nem biztos, hogy felül akarjuk írni.
Ha ezzel is készen vagyunk, akkor
fordítsuk le a modulokat (ha
vannak ilyenek) és rakjuk be a megfelelő helyre:
make modules; make modules_install
A modulok egy része ezek után
automatikusan használható, van
azonban jó néhány, ami további beállítást igényel.
Végül ellenőrizzük a lilo konfigurációs
fájlját és végezzük el a
szükséges módosításokat.
A /etc/lilo.conf fájlt hívjuk meg egy
szövegszerkesztővel:
# Start LILO global Section
boot=/dev/hda
read-only
prompt
timeout=100
vga=ask
#vga = normal # force sane state
append="mem=128M"
# End LILO global section
# Linux bootable partition config begins
other = /dev/hdc1
label = win9x
table = /dev/hdc
other = /dev/hda1
label = winNT
table = /dev/hda
image = /boot/bzImage
root = /dev/hda3
label = firewall
image = /boot/otthoni
root = /dev/hda3
label = home
# Linux bootable partition config ends
Egy másik példa:
boot=/dev/sda2
root=/dev/sda2
install=/boot/boot.b
vga=normal
message=/root/uzenet.txt
delay=20
image=/boot/zUj
label=Linux
read-only
A fenti két példa nagyrészt tartalmazza a
leggyakoribb szükséges
beállításokat. Nézzük mi mit jelent.
boot=/dev/…
Megadja, hogy a lilo melyik eszköz master
boot rekordját
használja.
root=/dev/…
Megadja, hogy melyik eszközt mountolja be,
mint root
fájlrendszert. (Nem kötelező az általános részben.)
prompt
Ez az opció biztosít a számunkra egy lilo
promptot, ami hasznos
lehet, ha közölni akarunk a kernellel valamit még az indulása előtt.
delay=szám
A lilo várni fog szám*0,1 másodpercet
arra, hogy megnyomjuk a
Shift billentyűt. Erre akkor van szükség, ha a lilo nem ad promptot és
mi mégis
szeretnénk, hogy adjon és választhassunk betöltendő kernelt. Ha nem
nyomjuk meg
a Shiftet, akkor sorrendben az első megadott bootolható partíció fog
betöltődni. (A lilo.conf-ban megadott első.) Ha elfelejtettük volna,
hogy
milyen lehetőségek közül lehet választani, akkor a promptnál a
Tabulátor
megnyomásával kapunk egy listát a bootolási lehetőségekről.
message=fájlnév
Üzenetet is adhatunk a felhasználónak
ezzel a bejegyzéssel.
timeout=szám
A lilo promptnál várakozik a rendszer
szám*0,1 másodpercet,
mielőtt tovább lép. Ha nem kap más utasítást, akkor betölti a
lilo.conf-ban
elsőként megadott bootolható partíciót.
read-only
Általában használni szokás ezt az opciót.
Megadja, hogy a root
fájlrendszert csak olvashatóként mountolja be. Később persze majd
írható lesz,
de pl nem szokás egy lemezellenőrzés (fsck) során írható partíciót
ellenőrizni.
Ha lefut a lemezellenőrzés, akkor majd a boot folyamat egy későbbi
részében
írhatóvá teszi a rendszer a root partíciót is.
vga=
(normal,
extended, ask)
Fentebb volt már szó a vga opcióról. Itt
közölhetjük a
kernellel, hogy normál (80x25-ös szöveges mód), vagy extended (80x50-es
szöveges mód), vagy ask (választ vár, Enter megnyomásával kiadja a
lehetséges
értékeket).
append=”mem=128M”
Ezzel az opcióval tudomására hozzuk a
kernelnek, hogy 128MB RAM
van a gépünkben.
install=boot szektor
Megadhatjuk, hogy melyik fájlt használja,
mint boot szektor. (Ha
nem adjuk meg, akkor a /boot/boot.d –t használja.)
Ez után következik a bootolható partíciók
konfigurációja.
Tipikusan a következő két formát szokás
használni:
Linuxos rendszert bootol a partíció, vagy
nem Linux rendszert
bootol.
Az other kulcsszóval megadott rész nem
Linux rendszert fog
bootolni. És egyben megadja a bootolni kívánt eszközt is.
A label kulcsszónál megadott szóval
hivatkozhatunk a bootolni
kívánt rendszerre a lilo promptnál. (Tabulátor hatására is ezek
sorakoznak
fel.)
A table kulcsszónál megadott eszköz
tartalmazza a bootolni
kívánt rendszer partíciós tábláját. nem Linux rendszernél használjuk
ezt a
kulcsszót.
Az image kulcsszó Linux rendszert fog
bootolni és egyben
megadjuk a bootolni kívánt kernelt is. Itt célszerű megadni a root, a
label és
a read-only kulcsszavakat is.
Ha ezzel megvagyunk és igény sszerint
beállítottuk a lilo.conf
fájlt, akkor mentsük el és addjuk ki a lilo
parancsot.
goliat:~# lilo
Added Linux *
goliat:~#
Ha rendben lefut, akkor újrabootolhatjuk a
rendszert és
használhatjuk az új kernelt.
A PC hardvere számos részből áll. Ahhoz, hogy rendeltetésszerűen tudjuk használni a hardvert, szükség van egy „driver”-re (egy meghajtó programra), amivel az operációs rendszer (a Linuxban a „kernel”) elérheti azt. Általában két módja van annak, hogy integráljuk a drivereket a rendszerünkbe:
A drivert a kernel részévé tehetjük. Az
ilyen kernelt
monolitikus kernelnek is hívjuk. Néhány driver csak ilyen formában
érhető el,
ezzel is igazolva a monolitikus kernel szükségességét.
A driver betölthető kérésre is a kernelbe,
amit azután
modularizált kernelnek hívunk. Ennek az az előnye, hogy csak azok a
driverek
indulnak el, amikre ténylegesen szükség van, így a kernelben nincs
felesleges
töltelék.
A SuSE boot lemezen és CD-n megtalálhatóak
a modulok, amik
így támogathatják a legtöbb hardver konfigurációt.
Néhány
driver még nem létezik modul formában.
Függetlenül attól, hogy a driver a kernel
része vagy
modulként indul el, elképzelhető, hogy egy hardver elemet nem ismer
fel. Ha ez
történik, pontosabban is megadhatjuk ennek az eszköznek a
tulajdonságait.
A monolitikus kernelnél ezeket a
paramétereket a boot
promptnál kell megadni, vagy pedig a lilo boot loader segítségével. A
moduláris
driverekhez szükséges paraméterek az insmod vagy a modprobe paranccsal
adhatóak
meg, amelyek egyben fel is telepítik a modult.
A LILO paraméterek formátuma különbözik az
insmod és a
modprobe paramétereitől.
A legtöbb drivernek van „autoprobing”
lehetősége, vagyis
teszteli azokat a standard címeket, ahol a hardware általában
megtalálható. Az
autoprobing közben egy driver inicializálhat olyan címet is ami nem
hozzá
tartozik. Ez gépleállást okozhat.
Néhány modult úgy is lehet sikeresen
feltelepíteni, hogy a
hardver nincs is telepítve. (Pl.: a 3Com hálózati kártya driverei)
Először
próbáljuk meg az autoprobingot. A nem használt drivereket könnyen
eltávolíthatjuk. Az olyan hardvert, amit nem ismert fel a gép
automatikusan,
indítsuk el a megfelelő paraméterek megadásával.
A lehetséges kernel paraméterek teljes
bemutatása megtalálható
az installálás után a BootPrompt-HOWTO-ban a /usr/doc/howto könyvtárban
és a
/usr/src/linux/Documentation/kernel-parameters.txt fájlban.
Az
alábbi lista ebből a fájlból készült.
Az alábbi paramétereket a fent említett két módok valamelyikén adhatjuk meg. Begépelhetjük őket a „boot:” boot prompt megjelenése után, vagy megadhatjuk a /etc/lilo.conf fájlban, vagy a /etc/modules.conf fájlban.
Például egy ethernet kártyát beállító paramétert a boot promptnál megadhatunk a következő sorral:
boot: linux ether=0,0,eth0
Itt a boot: promptot a lilo adja, a ’linux’ az indítandó konfiguráció a /etc/lilo.conf fájlból és ez után jöhet a paraméterezés.
Most pedig következzen egy viszonylag
részletes leírás a
használható paraméterekről. Nem áll rendelkezésre minden paraméter
összes
lehetséges értéke, ezét csak néhány helyen térünk ki a részletes
leírásra. A
többi helyen csak utalunk a használat módjára a következő
rövidítésekkel:
A
leírás elején található szögletes zárójelben lévő szöveg megerősíti,
hogy a
kernelre vonatkozó megszorítások érvényben vannak. Az ilyen
megszorítások azt
jelentik, hogy az odaillő opciók akkor érvényesek, ha:
APIC
APIC
támogatás engedélyezett.
APM
Advanced
Power Management támogatás engedélyezett.
AX25
AX.25
támogatás engedélyezett.
CD
CD
támogatás engedélyezett.
EIDE
EIDE/ATAPI
támogatás engedélyezett.
FB
A
frame buffer eszköz támogatás engedélyezett.
HW
A
megfelelő hardware támogatás engedélyezett.
ISDN
A
megfelelő ISDN támogatás engedélyezett.
JOY A
megfelelő joystick támogatás
engedélyezett.
LPT
Printer támogatás
engedélyezett.
MCA
MCA
bus támogatás engedélyezett.
MDA
Az
MDA console támogatás engedélyezett.
MOUSE A
megfelelő egér támogatás engedélyezett.
NET
A megfelelő hálózati támogatás
engedélyezett.
NFS
Az NFS támogatás engedélyezett.
PARIDE A
ParIDE alrendszer támogatás engedélyezett.
PCI
PCI bus támogatás
engedélyezett.
PCMCIA A
PCMCIA támogatás engedélyezett.
PNP
Plug & Play támogatás
engedélyezett.
PS2
A PS/2 támogatás engedélyezett.
RAM
RAMdisc
támogatás engedélyezett.
SCSI
A
SCSI támogatás engedélyezett.
SERIAL A
soros vonalak használata engedélyezett.
SMP
A
kernel egy SMP kernel multiprocesszoros gépen.
SOUND A
hangkártya támogatás engedélyezett.
VGA
A VGA console engedélyezve lett.
VT
Virtual
terminal support támogatás engedélyezett.
XT
IBM
PC/XT MFM merev lemez támogatás engedélyezett.
Továbbá,
a következő szöveg jelzi, hogy az opció:
BUGS= a
processzor lehetséges hibáit jelzi
KNL
|s
kernel indító paraméter.
Ne felejtsük el, hogy MINDEN kernel
paraméternél számít a nagy illetve kis betű és, hogy a = jel bármely
paraméternél azt jelöli, hogy a paraméter környezeti változóként
szerepel, míg
ennek hiánya azt jelenti, hogy kernel argumentumként fog megjelenni,
amit a
/proc/cmdline-ban olvashatnak a futó programok, amint elindul a
rendszer.
53c7xx=
adb_buttons=
AdvanSys
SCSI kártya paramétere:
advansys=<addr1>,<addr2>,...,<addrN>
A
paraméter megmondja a kernelnek, hogy a kártyát a megadott címeken
keresse.
Adaptec
AHA-152061522/1510/1515/1505 SCSI kártyákhoz használható paraméter:
aha152x=<addr>,<irq>,<id>[,<rec>[,<par>]]
<id>:
az adapter SCSI ID-je (0,1)
<rec>:
reconnect (0,1) A nem eredeti 152x kártyákhoz használható A legtöbb
típushoz az
érték ’0’ legyen.
<par>
paritás (0,1)
Az
Adaptec AHA-1540/1542 SCSI kártyákhoz használható a következő paraméter:
aha1542=<addr>[,<buson>,<busoff>[,DMA
speed>]]
<buson>:
2..15
<busoff>:
1..64
<DMA
speed>: 5,6,7,8,10
Az
Adaptec AHA-274x/284x/294x kártyákhoz használható paraméter:
aic7xxx=<modifier>[,<modifier>[,...]]
<modifier>:
extended
no_reset
irq_trigger:<x>
verbose reverse_scan
7895_irq_hack:<x>
pci_parity:<x>
Az
AM53/79C974 SCSI kártya paramétere:
AM53C974=<host-id>,<target-id>,<rate>,<offset>
<host-id>:
Az adapter SCSI ID-je (általában 7)
<target-id>:
az eszköz SCSI ID-je (0..7)
<rate>:
3,5,10 MHz/s maximum átviteli sebesség
<offset>:
átviteli mód (0=asynchron)
apm=
[APM] Advanced Power Management.
arcrimi=
[HW,NET]
ataflop=
[HW, M68k]
atamouse=
[HW,MOUSE] Atari Mouse.
atascsi=
[HW,SCSI] Atari SCSI.
aztcd=
[HW,CD] Aztec CD driver.
baycom_par=
[HW,AX25] BayCom Parallel Port
AX.25
Modem.
baycom_ser_fdx=
[HW,AX25] BayCom Serial Port AX.25
Modem in Full
Duplex Mode.
baycom_ser_hdx=
[HW,AX25] BayCom Serial Port AX.25
Modem in Half
Duplex Mode.
bmouse=
[HW,MOUSE,PS2] Bus mouse.
A
BusLogic SCSI kártyához használható paraméter:
BusLogic=<addr>
BusLogic=<probing>
<addr>:
Az adapterkártya címe (pl 0x300)
<probing>:
NoProbe
NoProbeISA
NoProbePCI
NoSortPCI
MultiMasterFirst
FlashPointFirst
InhibitTargetInquiry
TraceProbe
TraceHardwareReset
TraceConfiguration
TraceErrors
cdu31a=
[HW,CD]
cm206=
[HW,CD]
com20020=
[HW,NET]
com90io=
[HW,NET]
com90xx=
[HW,NET]
console=
[KNL] output console +
comm spec (speed, control, parity)
cyclades=
[HW,SERIAL] Cyclades
multi-serial port adapter.
debug
[KNL] Enable kernel debugging
(events log level).
decnet=
[HW,NET]
digi=
[HW,SERIAL] io parameters +
enable/disable command
digiepca=
[HW,SERIAL]
dmascc=
[HW,AX25,SERIAL] AX.25
Z80SCC driver with DMA
support
available.
dmasound=
[HW,SOUND] (sound subsystem
buffers)
dtc3181e=
[HW,SCSI]
eata=
[HW,SCSI]
eda=
[HW,PS2]
edb=
[HW,PS2]
Ethernet
kártya használata esetén használhatjuk a következő paramétert:
ether=<irq>,<addr>,<dev>
<irq>:
a kártya IRQ-ja (ha ’0’, akkor automatikusan próbálkozik)
<addr>:
a kártya port címe (ha ’0’, akkor automatikusan próbálkozik)
<név>:
Az interfész eszközfájljának a neve (eth0, eth1, eth2,
)
fd_mcs=
[HW,SCSI]
Future
Domain TMC-16x0 SCSI kártyához:
fdomain=<addr>,<irq>[,<id>]
<id>:
a kártya SCSI ID-je
floppy=
[HW]
ftape=
[HW] Floppy Tape subsystem
debugging options.
gdth=
[HW,SCSI]
gscd=
[HW,CD]
gvp11=
[HW,SCSI]
A
következő paramétert IDE eszközök esetén kell használni, ha a BIOS túl
régi az
eszköz helyes felismeréséhez.
hd<x>=cdrom
hd<x>=serialize
hd<x>=<cylinders>,<heads>,<sectors>[,<write>[,<irq>]]
Az
<x> értékei:
a
master az első csatornán
b
slave az első csatornán
c
master a második csatornán
d
slave a második csatornán
hd<x>=<trouble>
<trouble>:
noprobe
none
nowerr
cdrom
autotune
slow
hfmodem=
[HW,AX25]
HiSax=
[HW,ISDN]
hisax=
[HW,ISDN]
ibmmcascsi=
[HW,MCA,SCSI] IBM MicroChannel SCSI
adapter.
icn=
[HW,ISDN]
ide<szám>=<base>[,<control>[,<irq>]]
<szám>:
az adapter száma (általában 0, 1, 3, 4)
<base>:
az adapter memóriacíme
<control>:
az adapter kontroll regiszterének címe
<irq>:
az adapter megszakítási szintje
ide<szám>=<tune>
<tune>: autotune
noautotune
serialize
idebus=<speed>
in2000=
[HW,SCSI]
init=
[KNL]
initrd=
[KNL] initial ramdisk path
ip=
[PNP]
isp16=
[HW,CD]
js_14=
[HW,JOY]
js_am=
[HW,JOY]
js_an=
[HW,JOY]
js_as=
[HW.JOY]
js_console=
[HW,JOY]
js_console2=
[HW,JOY]
js_console3=
[HW,JOY]
js_db9=
[HW,JOY]
js_db9_2=
[HW,JOY]
js_db9_3=
[HW,JOY]
js_tg=
[HW,JOY]
js_tg_2=
[HW,JOY]
js_tg_3=
[HW,JOY]
kbd-reset
[VT]
load_ramdisk= [RAM]
initrd loading boolean
lp=
[LPT] Parallel Printer.
ltpc=
[HW]
mac5380=
[HW,SCSI]
maxcpus=
[SMP] A processzorok
maximális számát adhatjuk meg itt.
Az
SCSI eszközök száma ID-nként:
max_scsi_luns=number
Például,
ha csak az első LUN-t (Logical Unit Number) akarjuk használni, akkor
max_scsi_luns=1
Tipikus
felhasználási területe a több CD-t kezelni tudó meghajtók.
mca-pentium
[BUGS=ix86]
mcd=
[HW,CD]
mcdx=
[HW,CD]
md=
[HW] RAID subsystems
devices and level
mdacon=
[MDA]
msmouse=
[HW,MOUSE] Microsoft Mouse.
NCR
5380 SCSI kártyacsalád paramétere:
ncr5380=<addr>,<irq>,<dma>
NCR
53c400 SCSI kártyacsalád paramétere:
ncr53c400=<addr>,<irq>
ncr53c400a=
[HW,SCSI]
NCR
53c406a SCSI kártyacsalád paramétere:
ncr53c406a=<addr>[,<irq>[,<fastpio>]]
<fastpio>:
0, ha nem szükséges gyors PIO mód használata
ncr53c8xx=
[HW,SCSI]
nfsaddrs=
[NFS]
nfsroot=
[NFS]
nmi_watchdog= [KNL,
BUGS=ix86] hibakövető lehetőség SMP
kernelek esetén
no387
[BUGS=ix86]
noapic
[SMP,APIC]
noasync
[HW, M68K]
nodisconnect
[HW,SCSI, M68K] Disables SCSI disconnects.
no-halt
[BUGS=ix86]
noinitrd
[RAM]
no-scroll
[VGA]
nosmp
[SMP] Megmondja egy SMP kernelnek,
hogy viselkedjen egyprocesszoros kernelként.
nosync
[HW, M68K]
optcd=
[HW,CD]
panic=
parport=
[HW,LP]
pas16=
[HW,SCSI]
pcbit=
[HW,ISDN]
pcd.
[PARIDE]
pci=
[PCI]
pd.
[PARIDE]
pf.
[PARIDE]
pg.
[PARIDE]
pirq=
[SMP,APIC] mp-table
plip=
[LP,NET] Párhuzamos porton
keresztüli hálózati kapcsolat.
profile=
prompt_ramdisk=
[RAM]
pt.
[PARIDE]
ramdisk=
[RAM]
ramdisk_size= [RAM]
ramdisk_start= [RAM]
A
Linux újraindítási lehetőségei:
reboot=
[BUGS=ix86]
A
használható értékek:
warm (bootolás
esetén nincsen memória ellenőrzés)
cold
(bootolás esetén van memória ellenőrzés)
bios
((BIOS által vezérelt reboot)
hard
(CPU teljes kiürülésével egyenértékű)
Lehetőség
memóriaszegmensek védelmére:
reserve=
Például
ha van egy hálózati kártyánk (IRQ=7), ami a 0x300-as kezdetű
címtartományt
használja egy 32 bites adatbusz elérésekor, akkor adjuk ki a következő
parancsot, ha e nélkül nem használható a kártya:
reserve=0x300,32
ether=7,0x300,eth0
riscom8=
[HW,SERIAL] multi-port
serial driver (io parameters)
ro
[KNL] Mount
root device read-only on boot.
Meghatározhatjuk
a root partíciót:
root=
Pl:
root=/dev/hda3
rw
[KNL] Mount root
device read-write on boot.
sbpcd=
[HW,CD] Soundblaster CD adapter.
scsi_logging=
[SCSI]
sjcd=
[HW,CD]
sonycd535=
[HW,CD]
sound=
[SOUND]
soundmodem=
[HW,AX25,SOUND] Sound cards used as AX.25
modems.
specialix=
[HW,SERIAL] Specialix
multi-serial port adapter.
Az
SCSI szalagos meghajtókhoz tartozó puffer méret konfigurálható:
st=buffer,threshold(,max)
buffer:
A puffer mérete (Amount 1KB blocks)
threshold:
write threshold (Amount 1KB blocks)
Pl:
st=1000,2000
Seagate
ST01/02 SCSI kártya paramétere:
st0x= <addr>,<irq>
stram_swap=
[HW]
switches=
[HW, M68K]
sym53c416=
[HW,SCSI]
sym53c8xx=
[HW,SCSI]
Trantor
T128/128F/228 SCSI kártya:
t128=<addr>,<irq>
Future
Domain TMC-885/950 SCSI kártya paramétere:
tmc8xx=<addr>,<irq>
tmscsim=
[HW,SCSI]
tp720=
[HW,PS2]
u14-34f=
[HW,SCSI]
video=
[FB]
wd33c93=
[HW,SCSI]
wd7000=
[HW,SCSI]
wdt=
[HW]
xd=
[HW,XT] Original XT 8bit
disk controllers
xd_geo=
[HW,XT]
Most nézzük meg nagy vonalakban, hogyan
dolgoznak a modulként
tölthető driverek. Ha nehézségünk támad egy driver feltöltése során
(noha
beírtuk a megfelelő paramétereket), inkább integráljuk ezt a drivert
egy
monolitikus kernelbe. Néhány drivert még nem lehet modulként
felépíteni, míg
mások csak akkor ismerik fel a hardvert, ha a kernel részét képezik. Ha
egy
drivert modulként töltünk fel, minden egyes változót felülírhatunk a
parancssorban. Itt van például az io változó az NE2000 driverben, ami a
használt I/O skálát határozza meg. Ebben az estben a helyes parancs a
modul
feltöltésére:
insmod ne io=0x300
irq=10
Vagy
esetleg a modeprobe-bal:
modeprobe ne
io=0x300 irq=10
Továbbra
sincs szóköz az = jel előtt, vagy után.
Továbbá
a hexadecimális változókat a fent megadott formában kell megadni.
Ha
egynél több paramétert szeretnénk megadni, szóközzel válasszuk el őket.
Ebben
különbözik a lilo promptnál használt paraméterektől, mert ott nem
használunk
üres helyet a paramétereken belül, ha egy driverről van szó.
A
megadott paramétereket integrálhatjuk a /etc/modules.conf-ba is. Itt
sok
paramétert rendelhetünk hozzá egy bizonyos modulhoz. Ez modulonként egy
sorban
jelenik meg. A sornak így kell kinéznie:
options <modul
név> <par1>=<érték1> …
A Linux hívők egy része most biztosan nem
ért velem egyet, de
azt kell hogy mondjam, hogy szerintem egy linuxos rendszer elsősorban
nem
grafikus felülettel ellátott munkaállomás, hanem kiváló
tulajdonságokkal bíró,
golyóálló szerver gép. Ennek ellenére olyan grafikus rendszerrel van
ellátva,
ami páratlan lehetőségeket rejt a hozzáértők számára. Jelen pillanatban
nem
ismerek olyan PC-re írt operációs rendszert, amin ennyire igényes
felületet
lehet kialakítani. Tény azonban, hogy ennek a felületnek a beállítása
több
ismeretet igényel, mint más, pillanatnyilag még elterjedtebb rendszerek
esetében.
A Linux a UNIX világban elfogadott X
Window System-et használja
grafikus felületként. Két részre kell bontani ezt a grafikus rendszert.
Az egyik az X szerver,
ami kezeli a hardvert és biztosítja az egységes, szabványos felületet a
grafikus megjelenítést igénylő programok, a kliensek
számára.
Egy speciális kliens az ablakkezelő
program. Nevezhetnénk ezt
grafikus operációs rendszernek, grafikus segédkörnyezetnek. Ez felelős
azért,
hogy milyen stílusban jelennek meg az ablakok, milyenek az ikonok, van
e tálca,
van e launch pad, stb. Ezekből az ablakkezelőkből rengeteg fajta van.
Olyan,
mintha borzasztó sok féle, "más gyártó által készített nagyon elterjedt
grafikus operációs rendszert" tudnánk futtatni a gépünkön.
Ezek és a többi kliens program is
mindösszesen annyit kér az őt
futtatni kívánó X szervertől, hogy az
ismerje az általánosan elterjedt X Window System-hez tartozó
protokollt. Az
"általánosan elterjedt" kifejezés itt annyit jelent, hogy a SCO
unixtól kezdve a HP-UX-on, IBM AIX-en és SUN SOLARIS-on keresztül
egészen a
Silicon Graphics munkaállomásokig minden X-et ismerő program
megjeleníthető egy
linuxos PC-n is. Ugyanis egy X-es kliens programnak nem
kell, hogy ugyanazon a gépen legyen, mint az X szerver, hiszen
az csak egy szabványos felületet biztosít számára, ezért mindegy hol
fut. Ha
látja maga alatt a szabványos felületet, akkor ott meg tud jelenni.
Mindössze
annyi a dolgunk, hogy megadjuk neki annak a munkaállomásnak az IP címét
és
képernyőszámát, ahol látni kívánjuk. Erre tudomásom szerint
pillanatnyilag más
grafikus rendszer nem képes (legalábbis ilyen teljesítménnyel...).
Tehát az első dolgunk az X szerver
beállítása, a második, hogy
tobzódjuk az ablakkezelők adta lehetőségekben, a harmadik, hogy
elvesszünk a
töménytelen, grafikus felülettel ellátott program között.
Az X szerver jó konfigurálása nagyon
fontos feladat, hiszen
ettől függ, hogy a továbbiakban milyen minőségben tudunk dolgozni a
grafikus
felületen. Az XFree86 rendszer ma használt verziója már kiváló
tulajdonságokkal
rendelkezik és az összes, forgalomban lévő, elterjedt monitorvezérlő
kártyát
ismeri és messzemenőkig kihasználja a teljesítményüket. (Egy "noame"
S3 Virge videochippel ellátott monitorvezérlővel is képes meghajtani
egy jó
monitort 120Hz-es képfrissítési frekvenciával, amikor az ehhez a
kártyához
adott "más rendszerhez illeszthető" driver program maximum 85Hz-re
képes.)
Az X rendszert telepítsük fel a választott
Linux disztribúcióval
együtt a Linux install médiáról. Ezek után kell választani egy beállító
programot, ami képes összeállítani nekünk egy saját hardverünkre
szabott
XF86Config állományt. Ezt a fájlt használja konfigurációs állományként
az
XFree86 rendszer. A beállító programok disztribúciótól függenek, de
minden
rendszerben biztosan megtalálható az xf86config
program. (A SuSE itt is hű marad önmagához, és egy kiváló, könnyen
kezelhető,
grafikus(!) beállító programot ad a grafikai rendszer behangolásához.
Ez a SaX. Csak indítsuk el és nagyon kevés
kérdés után elkészíti az állományt.)
Nézzük meg az általánosabban használt xf86config programot.
Indítsuk el az xf86config
parancs begépelésével.
1. Microsoft compatible (2-button protocol)
2. Mouse Systems (3-button protocol)
3. Bus Mouse
4. PS/2 Mouse
5. Logitech Mouse (serial, old type, Logitech protocol)
6. Logitech MouseMan (Microsoft compatible)
7. MM Series
8. MM HitTablet
9. Microsoft IntelliMouse
10. Acecad tablet
If you have a two-button mouse, it is most likely of type 1, and if you have
a three-button mouse, it can probably support both protocol 1 and 2. There are
two main varieties of the latter type: mice with a switch to select the
protocol, and mice that default to 1 and require a button to be held at
boot-time to select protocol 2. Some mice can be convinced to do 2 by sending
a special sequence to the serial port (see the ClearDTR/ClearRTS options).
Enter a protocol number:
Az első kérdés az egér protokolljára
vonatkozik. Válasszuk ki a
listából a nekünk megfelelőnek a számát. Általában 4 (PS/2 egér
esetén), vagy 1
(2 gombos egér esetén), vagy 2 (három gombos egér esetén) választás a
legelterjedtebb. Jól nézzük meg, hogy egerünkön van e három gombos
üzemmód
lehetőség és lehetőleg válasszuk azt.
If your mouse has only two buttons, it is recommended that you enable
Emulate3Buttons.
Please answer the following question with either 'y' or 'n'.
Do you want to enable Emulate3Buttons?
Ha két gombos az egerünk, akkor
válaszoljunk 'y' karakterrel,
hogy emulálni lehessen a harmadik gombot a két gomb egyszerre történő
lenyomásával.
Now give the full device name that the mouse is connected to, for example
/dev/tty00. Just pressing enter will use the default, /dev/mouse.
Mouse device:
Itt az egér eszközfájljára kíváncsi a
beállító program. (Soros
egér esetén /dev/ttyS0, PS/2 egér vagy tauche pad esetén /dev/psaux)
Please answer the following question with either 'y' or 'n'.
Do you want to use XKB?
Az új XFree86 3.3.5 verziójában található
a billentyűzet
kiterjesztett lehetőségeinek használata. Ha kedvünk van, próbáljuk ki.
Please answer the following question with either 'y' or 'n'.
Do you want to enable these bindings for the Alt keys?
Magyar
karakterkiosztás esetén hasznos funkció.
hsync in kHz; monitor type with characteristic modes
1 31.5; Standard VGA, 640x480 @ 60 Hz
2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)
4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz
5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11 Enter your own horizontal sync range
Enter your choice (1-11):
Most fogjuk beállítani a monitorunk
vízszintes frekvenciáját.
Régi monitor esetén óvatosan bánjunk vele, mert könnyen sérülhet, ha
nagyobbat
kap, mint amit el tud viselni. (Utólag úgyis tudjuk módosítani a
beállításainkat.)
You must indicate the vertical sync range of your monitor. You can either
select one of the predefined ranges below that correspond to industry-
standard monitor types, or give a specific range. For interlaced modes,
the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).
1 50-70
2 50-90
3 50-100
4 40-150
5 Enter your own vertical sync range
Enter your choice:
Most a függőleges frissítési frekvenciát
állítsuk be. Ugyanaz
érvényes rá, mint az előbbinél.
The strings are free-form, spaces are allowed.
Enter an identifier for your monitor definition:
Most adjuk meg a monitorunk azonosítóját,
amivel majd a fájlban
hivatkozik rá. Ez egy tetszőleges karaktersorozat lehet. Pl.
sajátmonitor
Enter the vendor name of your monitor:
A gyártó nevét
kéri. Tetszőleges karaktersorozat lehet. Pl.: DTK
Enter the model name of your monitor:
A pontosabb modell
nevet is megadhatjuk. (Tetszőleges karaktersorozat.)
Do you want to look at the card database?
Most következik a monitorvezérlő kártya
beállítása. Nézzük meg a
kártyaadatbázist, tehát 'y' a válasz.
0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+
1 3DLabs Oxygen GMX PERMEDIA 2
2 928Movie S3 928
3 AGX (generic) AGX-014/15/16
4 ALG-5434(E) CL-GD5434
5 AOPEN PA50 (null)
6 AOPEN PG80 (null)
7 AOPEN PG975 (null)
8 AOPEN PS66 (null)
9 AOPEN PT60 (null)
10 AOPEN PT70 (null)
11 AOPEN PT75 (null)
12 AOPEN PV60 (null)
13 AOPEN PV70 (null)
14 AOPEN PV75 (null)
15 ASUS 3Dexplorer RIVA128
16 ASUS PCI-AV264CT ATI-Mach64
17 ASUS PCI-V264CT ATI-Mach64
18 ASUS Video Magic PCI V864 S3 864
19 ASUS Video Magic PCI VT64 S3 Trio64
20 AT25 Alliance AT3D
21 AT3D Alliance AT3D
22 ATI 3D Pro Turbo ATI-Mach64
23 ATI 3D Pro Turbo PC2TV ATI-Mach64
24 ATI 3D Xpression ATI-Mach64
25 ATI 3D Xpression+ ATI-Mach64
26 ATI 3D Xpression+ PC2TV ATI-Mach64
27 ATI 8514 Ultra (no VGA) ATI-Mach8
28 ATI All-in-Wonder ATI-Mach64
29 ATI All-in-Wonder Pro ATI-Mach64
30 ATI Graphics Pro Turbo ATI-Mach64
31 ATI Graphics Pro Turbo 1600 ATI-Mach64
32 ATI Graphics Pro Turbo with AT&T 20C408 RAMDAC ATI-Mach64
33 ATI Graphics Pro Turbo with ATI68860 RAMDAC ATI-Mach64
34 ATI Graphics Pro Turbo with ATI68860B RAMDAC ATI-Mach64
35 ATI Graphics Pro Turbo with ATI68860C RAMDAC ATI-Mach64
36 ATI Graphics Pro Turbo with ATI68875 RAMDAC ATI-Mach64
37 ATI Graphics Pro Turbo with CH8398 RAMDAC ATI-Mach64
38 ATI Graphics Pro Turbo with STG1702 RAMDAC ATI-Mach64
39 ATI Graphics Pro Turbo with STG1703 RAMDAC ATI-Mach64
40 ATI Graphics Pro Turbo with TLC34075 RAMDAC ATI-Mach64
41 ATI Graphics Ultra ATI-Mach8
42 ATI Graphics Ultra Pro ATI-Mach32
43 ATI Graphics Xpression ATI-Mach64
44 ATI Graphics Xpression with AT&T 20C408 RAMDAC ATI-Mach64
.
.
.
346 Matrox Millennium G200 8MB mgag200
.
.
.
Közel 600 féle monitorvezérlőt ismer.
Mindenki nézze végig és
válassza ki a sajátját. Ha nem márkás kártyánk van, de ismerjük a rajta
lévő
video chipet, akkor annak alapján válasszuk ki a nekünk megfelelőt és
adjuk meg
a számát.
'346'
Your selected card definition:
Identifier: Matrox Millennium G200 8MB
Chipset: mgag200
Server: XF86_SVGA
Do NOT probe clocks or use any Clocks line.
Választásunk
alapján tájékoztat bennünket a beállított kártyáról és a használandó X
szerver
programról. (Most az XF86_SVGA szervert fogja használni)
Now you must determine which server to run. Refer to the manpages and other
documentation. The following servers are available (they may not all be
installed on your system):
1 The XF86_Mono server. This a monochrome server that should work on any
VGA-compatible card, in 640x480 (more on some SVGA chipsets).
2 The XF86_VGA16 server. This is a 16-color VGA server that should work on
any VGA-compatible card.
3 The XF86_SVGA server. This is a 256 color SVGA server that supports
a number of SVGA chipsets. On some chipsets it is accelerated or
supports higher color depths.
4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8,
XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and
XF86_S3V.
These four server types correspond to the four different "Screen" sections in
XF86Config (vga2, vga16, svga, accel).
5 Choose the server from the card definition, XF86_SVGA.
Which one of these screen types do you intend to run by default (1-5)?
Felajánlja, hogy választhatunk másik X
szerver programot, de ez
a legritkább esetben szükséges. Tehát az '5' a jó válasz.
The server to run is selected by changing the symbolic link 'X'. For example,
'rm /usr/X11R6/bin/X; ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X' selects
the SVGA server.
The directory /var/X11R6/bin exists. On many Linux systems this is the
preferred location of the symbolic link 'X'. You can select this location
when setting the symbolic link.
Please answer the following question with either 'y' or 'n'.
Do you want me to set the symbolic link?
Most felajánlja,
hogy létre hozza e a szükséges linket a választott X
szerverre. 'y'
How much video memory do you have on your video card:
1 256K
2 512K
3 1024K
4 2048K
5 4096K
6 Other
Enter your choice: 6
Mennyi video memóriánk van. A '6'
általában jó válasz a mai
kártyáknál. Úgy is felismeri használat közben...
Amount of video memory in Kbytes: 8192
... de azért adjuk
meg neki.
Your card definition is Matrox Millennium G200 8MB.
The strings are free-form, spaces are allowed.
Enter an identifier for your video card definition:
Most adjuk meg a
kártyánk azonosító karaktersorozatát, mint a monitor esetében.
A következő két
kérdés is hasonló, ezért nem írjuk le.
1 Chrontel 8391 ch8391
2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a
3 ICS2595 ics2595
4 ICS5342 (similar to SDAC, but not completely compatible) ics5342
5 ICS5341 ics5341
6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac
7 S3 SDAC (86C716) s3_sdac
8 STG 1703 (autodetected) stg1703
9 Sierra SC11412 sc11412
10 TI 3025 (autodetected) ti3025
11 TI 3026 (autodetected) ti3026
12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx
Just press enter if you don't want a Clockchip setting.
What Clockchip setting do you want (1-12)?
Megkérdezi, hogy milyen programozható
órajel chip van a
kártyánkon. Ezt általában nem tudjuk, ezért csak egy 'Enter'-t nyomjunk.
The card definition says to NOT probe clocks.
Do you want me to run 'X -probeonly' now?
Akarjuk e futtatni
az X szervert próba módban? NE akarjuk. 'n'
For each depth, a list of modes (resolutions) is defined. The default
resolution that the server will start-up with will be the first listed
mode that can be supported by the monitor and card.
Currently it is set to:
"640x480" "800x600" "1024x768" "1280x1024" for 8bpp
"640x480" "800x600" "1024x768" "1280x1024" for 16bpp
"640x480" "800x600" "1024x768" "1280x1024" for 24bpp
"640x480" "800x600" "1024x768" for 32bpp
Note that 16, 24 and 32bpp are only supported on a few configurations.
Modes that cannot be supported due to monitor or clock constraints will
be automatically skipped by the server.
1 Change the modes for 8pp (256 colors)
2 Change the modes for 16bpp (32K/64K colors)
3 Change the modes for 24bpp (24-bit color, packed pixel)
4 Change the modes for 32bpp (24-bit color)
5 The modes are OK, continue.
Enter your choice:
Felsorolja, hogy milyen színmélységet tud
felajánlani milyen
felbontások mellett. A listát később is módosíthatjuk, ezért válasszuk
az '5'
választ.
I am going to write the XF86Config file now. Make sure you don't accidently
overwrite a previously configured one.
Shall I write it to /etc/XF86Config?
Készen van a fájl
összeállításával, akarjuk e, hogy elkészítse? 'y'
És máris készen
vagyunk...
Adjuk ki az X -probeonly
parancsot, ami csak végigpróbálja a beállításainkat, de le is kapcsolja
utána
az X szervert.
Itt látható egy X
-probeonly kimenete:
XF86Config: /etc/XF86Config
(**) stands for supplied, (--) stands for probed/default values
(**) XKB: rules: "xfree86"
(**) XKB: model: "pc104"
(**) XKB: layout: "hg"
(**) Mouse: type: MouseMan, device: /dev/mouse, baudrate: 1200
(**) Mouse: buttons: 3, Chorded middle button
(**) SVGA: Graphics device ID: "Primary-Card"
(**) SVGA: Monitor ID: "Primary-Monitor"
(**) FontPath set to
"/usr/X11R6/lib/X11/fonts/misc:unscaled,/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi"
(--) SVGA: PCI: Matrox MGA G200 AGP rev 1, Memory @ 0xe8000000, 0xe4000000
(--) SVGA: Linear framebuffer at 0xE8000000
(--) SVGA: MMIO registers at 0xE4000000
(--) SVGA: Video BIOS info block at 0x000c7540
(--) SVGA: Found and verified enhanced Video BIOS info block
(--) SVGA: detected an SDRAM card
(--) SVGA: chipset: mgag200
(**) SVGA: videoram: 8192k
(**) SVGA: Option "dac_8_bit"
(**) SVGA: Using 32 bpp, Depth 24, Color weight: 888
(--) SVGA: Maximum allowed dot-clock: 250.000 MHz
(**) SVGA: Mode "800x600": mode clock = 72.800
(**) SVGA: Mode "1024x768": mode clock = 92.960
(**) SVGA: Mode "640x480": mode clock = 50.000
(**) SVGA: Virtual resolution set to 1024x768
(--) SVGA: Using hardware cursor
samson:~ #
Ha nem találtunk valamilyen gyanús
üzenetet és nem recsegett
túlságosan a monitorunk, akkor bátran kiadhatjuk a startx
parancsot és élvezhetjük a Linux grafikai teljesítményét.
A /etc/XF86Config
fájl utólagos finomhangolása nem árt.
# SaX autogenerated XF86Config file
# This file was generated from the SaX
# Version: 2.7 - sax@suse.de
# Date: Sat May 8 21:42:55 MEST 1999
# Xserver:SVGA
# MouseVendor:LOGITECH-DTK
# MouseName:M-S48
# RamDac:250
# Dac8:250
# Dac16:
# Dac24:
# Dac32:250
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
EndSection
Section "ServerFlags"
AllowMouseOpenFail
EndSection
Section "Module"
EndSection
Section "XInput"
EndSection
Section "Keyboard"
Protocol "Standard"
XkbRules "xfree86"
XkbModel "pc104"
XkbLayout "hg"
RightAlt ModeShift
EndSection
Section "Pointer"
Protocol "PS/2"
Device "/dev/psaux"
SampleRate 60
BaudRate 1200
EndSection
Section "Monitor"
Identifier "Primary-Monitor"
VendorName "DTK"
ModelName "DE-570 BA"
HorizSync 30-70
VertRefresh 50-120
Modeline "1024x768" 92.96 1024 1024 1200 1352 768 768 778 802
Modeline "800x600" 72.80 800 816 928 1056 600 600 610 626
Modeline "640x480" 50.00 640 656 720 832 480 480 489 501
EndSection
Section "Device"
Identifier "Primary-Card"
VendorName "MATROX"
BoardName "Millenium G200-AGP"
VideoRam 8192
EndSection
Section "Screen"
Driver "SVGA"
Device "Primary-Card"
Monitor "Primary-Monitor"
DefaultColorDepth 32
SubSection "Display"
Depth 32
Modes "800x600" "1024x768" "640x480"
Virtual 1024 768
EndSubSection
EndSection
Különösen érdemes odafigyelni a monitor
szekció ModeLine
soraira, melyek meghatározzák az egyes felbontásokhoz tartozó
képfrissítési
frekvenciát. Itt nyugodtan javítsunk bele az alább felsorolt
használható
beállításokkal, csak a monitorunkra vigyázzunk.
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
Modeline "1024x768" 44.9 1024 1048 1208 1264 768 776 784 817 Interlace
# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480" 31.5 640 680 720 864 480 488 491 521
# 640x480 @ 75 Hz, 37.50 kHz hsync
ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -HSync -VSync
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync
# 640x480 @ 85 Hz, 43.27 kHz hsync
Modeline "640x480" 36 640 696 752 832 480 481 484 509 -HSync -VSync
# 1152x864 @ 89 Hz interlaced, 44 kHz hsync
ModeLine "1152x864" 65 1152 1168 1384 1480 864 865 875 985 Interlace
# 800x600 @ 72 Hz, 48.0 kHz hsync
Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
# 640x480 @ 100 Hz, 53.01 kHz hsync
Modeline "640x480" 45.8 640 672 768 864 480 488 494 530 -HSync -VSync
# 1152x864 @ 60 Hz, 53.5 kHz hsync
Modeline "1152x864" 89.9 1152 1216 1472 1680 864 868 876 892 -HSync -VSync
# 800x600 @ 85 Hz, 55.84 kHz hsync
Modeline "800x600" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync
# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync
Modeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace
# 800x600 @ 100 Hz, 64.02 kHz hsync
Modeline "800x600" 69.65 800 864 928 1088 600 604 610 640 -HSync -VSync
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
# 1152x864 @ 70 Hz, 62.4 kHz hsync
Modeline "1152x864" 92 1152 1208 1368 1474 864 865 875 895
# 1280x1024 @ 61 Hz, 64.2 kHz hsync
Modeline "1280x1024" 110 1280 1328 1512 1712 1024 1025 1028 1054
# 1024x768 @ 85 Hz, 70.24 kHz hsync
Modeline "1024x768" 98.9 1024 1056 1216 1408 768 782 788 822 -HSync -VSync
# 1152x864 @ 78 Hz, 70.8 kHz hsync
Modeline "1152x864" 110 1152 1240 1324 1552 864 864 876 908
# 1280x1024 @ 70 Hz, 74.59 kHz hsync
Modeline "1280x1024" 126.5 1280 1312 1472 1696 1024 1032 1040 1068 -HSync -VSync
# 1600x1200 @ 60Hz, 75.00 kHz hsync
Modeline "1600x1200" 162 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
# 1152x864 @ 84 Hz, 76.0 kHz hsync
Modeline "1152x864" 135 1152 1464 1592 1776 864 864 876 908
# 1280x1024 @ 74 Hz, 78.85 kHz hsync
Modeline "1280x1024" 135 1280 1312 1456 1712 1024 1027 1030 1064
# 1024x768 @ 100Hz, 80.21 kHz hsync
Modeline "1024x768" 115.5 1024 1056 1248 1440 768 771 781 802 -HSync -VSync
# 1280x1024 @ 76 Hz, 81.13 kHz hsync
Modeline "1280x1024" 135 1280 1312 1416 1664 1024 1027 1030 1064
# 1600x1200 @ 70 Hz, 87.50 kHz hsync
Modeline "1600x1200" 189 1600 1664 1856 2160 1200 1201 1204 1250 -HSync -VSync
# 1152x864 @ 100 Hz, 89.62 kHz hsync
Modeline "1152x864" 137.65 1152 1184 1312 1536 864 866 885 902 -HSync -VSync
# 1280x1024 @ 85 Hz, 91.15 kHz hsync
Modeline "1280x1024" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +HSync +VSync
# 1600x1200 @ 75 Hz, 93.75 kHz hsync
Modeline "1600x1200" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
# 1600x1200 @ 85 Hz, 105.77 kHz hsync
Modeline "1600x1200" 220 1600 1616 1808 2080 1200 1204 1207 1244 +HSync +VSync
# 1280x1024 @ 100 Hz, 107.16 kHz hsync
Modeline "1280x1024" 181.75 1280 1312 1440 1696 1024 1031 1046 1072 -HSync -VSync
# 1800x1440 @ 64Hz, 96.15 kHz hsync
ModeLine "1800X1440" 230 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
# 1800x1440 @ 70Hz, 104.52 kHz hsync
ModeLine "1800X1440" 250 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
A screen szekcióban határozhatjuk meg,
hogy milyen színmélységet
használjon az X szerver és milyen felbontások között váltogathatunk a
Ctrl+Alt+'összeadás jel a numerikus billentyűzeten' megnyomásával.
Már említettük, hogy az X windows
rendszert indíthatjuk
karakteres üzemmódból a startx
parancs használatával. A másik lehetőség, ha az xdm (X Desktop Manager),
vagy a kdm (K Desktop Manager)
programot használjuk. Ennek indításával valamelyik -a futási szintnek-
megfelelő rcx.d könyvtárból elérhetjük azt, hogy a Linux már eleve
grafikus
környezettel indul és várja a felhasználók bejelentkezését. Persze
kézzel is
indíthatjuk az xdm-et (kdm-et), ha nem
akarjuk automatizálni
annak indulását. Ne felejtsük el, hogy egyikre sem vonatkozik a
hosts.allow és
hosts.deny fájlok korlátozása!
Tipikus felhasználási lehetősége az olcsó
linuxos PC-nek, hogy
egy "nagy" unixos szerver X termináljaként üzemeltethető. (Nem kell
megvenni a gyári X terminálokat 7-800 ezer forintért, elég egy jó
monitorvezérlővel és monitorral ellátott, egyébként szerény képességű
PC.)
Indítsuk az X
szerverünket a következő formában:
X -query 192.168.1.200
Ahol a
192.168.1.200 a Unixos szerver IP címe.
A képernyőnkön máris megjelent a szerver X
desktop manager-e (ha
az el van indítva rajta) és bejelentkezés után új fényben látjuk az
eddig
szürke karakteres felületű UNIX szerverünket. Ügyeljünk arra, hogy a
UNIX
szerveren engedélyezve legyen a távoli X elérés. Ez a UNIX rendszertől
függő
beállítás. Általában alapértelmezés szerint engedélyezett a belépés.
Linux
esetén alapértelmezés szerint nem engedélyezett, tehát ha egy Linuxot
használunk alkalmazásszervernek, akkor ügyelni kell az engedélyekre.
Egy másik nagyon érdekes lehetőség, hogy
lehetőségünk van úgy
indítani programot, hogy annak képernyőkimenete (ablaka, képe, stb…)
nem a mi
gépünkön van, hanem egy másikon. Ez hasznos lehet, ha van egy nagyon jó
grafikai tulajdonságokkal megáldott gép a hálózaton (21”-os LCD
monitor, Matrox
Millenium monitorvezérlő 16 MB RAM-mal, szép és jó hangrendszer, egér,
billentyűzet,
stb.) és ezen szeretnénk megjeleníteni kedvenc programunkat, mert a mi
gépünknek nincs ilyen jó grafikája, de van benne 4db PentiumIII Xeon
processzor
és 512MB memória és biztosan sokkal gyorsabban dolgozná fel az
adatokat, mint
az a másik. Ilyenkor nem kell mást tenni, mint a jó grafikájú gépen
(legyen ez
goliat) kiadni az xhost +gépnév
parancsot.
Pl: xhost +samson
Ezzel engedélyeztük a samson gép számára,
hogy használja a gép X
szerverét.
Ezek után csak el kell indítani a
samson-on a kedvenc programot
a következő formában:
prognév –display goliat:0
A prognév legyen a kívánt program, a
’–display goliat:0’ pedig
utasítja a programot, hogy a goliat gép első képernyőjén kell
megjelennie.
Így használhatjuk a goliat grafikai
képességét a samson számolási
teljesítményével. (Ne legyünk szkeptikusak a hálózaton át történő
képernyővezérlést illetően. Egy 10Mbps hálózaton és 20-30 munkaállomás
esetén
is olyan a megjelenítés, mintha helyi gépről futna. Köszönhető ez az X
Windows
System kifinomult vezérlésének. Ha „más rendszeren” már volt rossz
tapasztalatunk, arra ne alapozzunk, nem lehet összehasonlítani ezzel…)
A használható ablakkezelők, mint már
mondtuk nagy számban
léteznek. Csak a legelterjedtebbek:
kde, fwvm2, fwvm95, afterstep, olwm, mlwm,
qvwm, blackbox,
bowman, amiwm
·
Az afterstep NeXtStep stílusú.
·
Az fwvm95 Win'9x képűre szabja a desktopot
·
Ha valaki Open Look stílust szeretne,
akkor
használja az olwm-et
·
Ha a MAC OS tetszik, akkor a mlwm-et
próbálja ki.
·
Az fvwm2 a "klasszikus" X felület.
·
Szerintem a legszebb, legkomfortosabb és
legkönnyebben testre szabható a KDE, ezért mi most ezt nézzük meg egy
kicsit
részletesebben. A többi testre szabása egy kicsit nagyobb szakértelmet
követel.
Mindenki válasszon tetszés szerint pl a kdm desktop manager login
ablakában a felhasználó és a jelszó megadása után egy legördülő
listából...