Linux rendszeradminisztrátorok kézikönyve



Hasonló dokumentumok
A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Gyorskalauz SUSE Linux Enterprise Desktop 11

A L I N U X f e l é p í t é s e

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Gyorskalauz SUSE Linux Enterprise Server 11

Unix fájl-hierarchia

Operációs rendszerek gyakorlat

Gyorskalauz SUSE Linux Enterprise Server 11 SP1. Gyorskalauz. Köszönti az SUSE Linux Enterprise Server! Minimális rendszerkövetelmények

Java-s Nyomtatványkitöltő Program Súgó

Számítógépes munkakörnyezet II. Szoftver

Opensuse automatikus telepítése

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

Rendszerkezelési útmutató

BaBér bérügyviteli rendszer telepítési segédlete év

1. A Windows Vista munkakörnyezete 1

Operációs rendszerek gyakorlat

Hogyan telepíthetsz fel Arch linuxot

Hardver és szoftver követelmények

1. DVNAV letöltése és telepítése

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Oktatási cloud használata

iseries Client Access Express - Mielőtt elkezdi

Operációs rendszerek gyakorlat

FITNESS SYSTEM Telepítési útmutató

Memeo Instant Backup Rövid útmutató. 1. lépés: Hozza létre ingyenes Memeo fiókját. 2. lépés: Csatlakoztassa a tárolóeszközt a számítógéphez

MS Windows XP Professional SP2 telepítés virtuális gépre.


VisualBaker Telepítési útmutató

Ismerkedjünk meg a Linuxszal!

A telepítési útmutató tartalma

Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

F-Secure Biztonsági megoldás. Az első lépések Windows-számítógépeken

Protection Service for Business. Az első lépések Windows-számítógépeken

Operációs rendszerek gyakorlat

Digitális aláíró program telepítése az ERA rendszeren

1.2. NFS kliens telepítése és beállítása

A L i n u x r u h á j a

A WorldShip frissítése önálló vagy munkacsoporthoz tartozó munkaállomásra

5.4.2 Laborgyakorlat: A Windows XP telepítése

ALKALMAZÁSOK ISMERTETÉSE

Operációs rendszerek. Az X Window rendszer

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

italc felhasználói dokumentáció

Virtualoso Server szolgáltatás Virtuális szerver használati útmutató

Bejelentkezés az egyetemi hálózatba és a számítógépre

KISOKOS Windows TARTALOM. Vista rendszerhez

KIRA. KIRA rendszer. Telepítési útmutató v1

tovább használhatjuk a Windows-t.

Digitális aláíró program telepítése az ERA rendszeren

Telenor Webiroda. Kezdő lépések

Telepítési Kézikönyv

Hálózatok építése és üzemeltetése

Debian mint Desktop Operációs rendszer

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Linux alapok gyakorlat

3Sz-s Kft. Tisztelt Felhasználó!

G Data MasterAdmin 9 0 _ 09 _ _ # r_ e p a P ch e T 1

Ubuntu Érettségi Remix Telepítési és beállítási leírás. Informatika érettségihez

AirPrint útmutató. 0 verzió HUN

2. modul - Operációs rendszerek

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Számítógépes alapismeretek 2.

A CCL program használatbavétele

hardver-szoftver integrált rendszer, amely Xwindow alapú terminálokat szervez egy hálózatba

Alkalmazások típusai Szoftverismeretek

NIS + NFS+Automount. Összeállította: Sallai András

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

IP-címhez kötött webszolgáltatások használata idegen IP-című gépről

Tartalom. I. Rész A számítógép megosztása 5. Bevezetés 1. 1 n Saját profilt mindenkinek 7. Biztonsági programok 3 A könyvben használt jelek 4

A Cobra Sprint telepítése CobraContoLight felhasználók számára

1_Linux_bevezeto_bash

HÁLÓZATBIZTONSÁG II. rész. Összeállította: Huszár István

Külső eszközök. Felhasználói útmutató

Telepítési és indítási útmutató. DataPage+ 2013

eszemélyi Kliens Szoftvercsomag

OTOsuite. Telepítési útmutató. Magyar

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

M-Files Dokumentumkezelő telepítése

Általános áttekintés. Általános áttekintés. Általános áttekintés. Egy boot folyamat

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

A Debian, mint Desktop Operációs Rendszer

TestLine - GINOP teszt Minta feladatsor

RapidMiner telepítés i. RapidMiner telepítés

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója

MultiBoot. Felhasználói útmutató

Digitális fényképezőgép Szoftver útmutató

Adataink biztonságos tárolása és mentése

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

eszemélyi Kliens Szoftvercsomag

Köszönetnyilvánítás... xv Bevezetés az otthoni hálózatok használatába... xvii. A könyv jellegzetességei és jelölései... xxi Segítségkérés...

Általános nyomtató meghajtó útmutató

Ez a felhasználói útmutató a következő modellekre vonatkozik:

Szoftvertelepítési útmutató NPD HU

Utolsó módosítás:

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

Átírás:

Linux rendszeradminisztrátorok kézikönyve Verzió 0.8 Lars Wirzenius liw@iki.fi Joanna Oja viu@iki.fi Stephen Stafford stephen@clothcat.demon.co.uk Alex Weeks weeks_alex@yahoo.com.nospam

Linux rendszeradminisztrátorok kézikönyve: Verzió 0.8 Lars Wirzenius Joanna Oja Stephen Stafford Alex Weeks Megjelent 2003.12.03 Bevezetés egy Linux rendszer adminisztrációjába, kezdők számára. Copyright 1993-1998 Lars Wirzenius. Copyright 1998-2001 Joanna Oja. Copyright 2001-2003 Stephen Stafford. Copyright 2003-jelenleg Stephen Stafford & Alex Weeks. A védjegyek a tulajdonosaik birtokát képezik. Jelen dokumentum a GNU Free Documentation Licence, Version 1.1 (GNU Szabad Dokumentációs Licenc, 1.1 verzió) feltételei szerint másolható, terjeszthető és/vagy módosítható; állandó fejezetek, előoldali és hátoldali szövegek nélkül. A licenc egy másolata megtalálható a "GNU Free Documentation License" című fejezetben.

Tartalomjegyzék A dokumentum forráskódja (XML) és konvertált formátumai...i 1. Bevezetés...1 1.1. Magyar fordítás...2 2. Néhány szó a kézikönyvről...3 2.1. Köszönetnyilvánítás...3 2.2. A kézikönyvben használt jelölések...4 3. Egy Linux-rendszer áttekintése...5 3.1. Egy operációs rendszer különböző részei...5 3.2. A rendszermag fontos részei...5 3.3. A UNIX rendszerek fő szolgáltatásai...6 4. A könyvtárfa áttekintése...11 4.1. Háttér...11 4.2. A gyökér fájlrendszer...12 4.3. Az /etc könyvtár...14 4.4. A /dev könyvtár...17 4.5. Az /usr fájlrendszer...17 4.6. A /var fájlrendszer...18 4.7. A /proc fájlrendszer...20 5. Eszközfájlok...23 5.1. A MAKEDEV szkript...23 5.2. Az mknod parancs...23 5.3. Eszközlista...24 6. Lemezek és egyéb tárolóeszközök használata...28 6.1. Az eszközök két fajtája...28 6.2. Merevlemezek...29 6.3. Hajlékonylemezek...31 6.4. CD-ROM-ok...31 6.5. Szalagos egységek...32 6.6. Formázás...32 6.7. Partíciók...34 6.8. Fájlrendszerek...37 6.9. Fájlrendszer nélküli lemezek...49 6.10. Lemezterület foglalás...50 7. Memóriakezelés...54 7.1. Mi a virtuális memória?...54 7.2. Swap terület létrehozása...54 7.3. A swap terület használata...55 7.4. Swap területek megosztása különböző operációs rendszerek között...56 7.5. A swap terület nagysága...57 7.6. A cache puffer...58 iii

8. Rendszerindítás és leállítás...60 8.1. A rendszer indításának és leállításának áttekintése...60 8.2. A rendszerindítási folyamat közelebbről...60 8.3. A rendszerleállítás közelebbről...63 8.4. Újraindítás (reboot)...64 8.5. Egyfelhasználós (single user) mód...64 8.6. Rendszerindító-hajlékonylemez vészhelyzet esetére...64 9. init...66 9.1. Az init az első...66 9.2. Az init beállítása a getty elindítására: az /etc/inittab fájl...66 9.3. Futási szintek (run levels)...67 9.4. Speciális beállítások az /etc/inittab fájlban...68 9.5. Rendszerindítás egyfelhasználós üzemmódban...69 10. Be- és kijelentkezés...71 10.1. Bejelentkezés terminálokon keresztül...71 10.2. Bejelentkezés hálózaton keresztül...71 10.3. Mit csinál a login...72 10.4. Az X és az xdm...73 10.5. Az elérési jogok szabályozása...73 10.6. shell indítás...73 11. A felhasználói fiókok (account) menedzselése...75 11.1. Mi az a felhasználói fiók (account)?...75 11.2. Felhasználó létrehozása...75 11.3. A felhasználók tulajdonságainak megváltoztatása...77 11.4. A felhasználók törlése...78 11.5. Egy felhasználó átmeneti felfüggesztése...78 12. Biztonsági mentések (backup)...80 12.1. A biztonsági mentések fontossága...80 12.2. A biztonsági mentések adathordozójának megválasztása...80 12.3. A biztonsági mentést végző segédeszköz kiválasztása...81 12.4. Egyszerű biztonsági mentések...82 12.5. Többszintű mentések...84 12.6. Mit mentsünk?...86 12.7. Tömörített mentések...86 13. Időbeállítás...87 13.1. Időzónák...87 13.2. A hardver- és a szoftver-órák...87 13.3. Az idő beállítása és kijelzése...88 13.4. Ha rosszul jár az óra...89 13.5. NTP - Hálózati idő protokoll (Network Time Protocol)...89 13.6. Alapvető NTP beállítások...90 13.7. NTP eszközök...91 13.8. Néhány ismert NTP szerver...93 13.9. NTP-vel kapcsolatos hivatkozások...93 iv

14. Hol találsz segítséget?...94 14.1. Hírcsoportok és levelezőlisták...94 14.2. IRC...95 A. GNU Free Documentation License...98 0. PREAMBLE...98 1. APPLICABILITY AND DEFINITIONS...98 2. VERBATIM COPYING...99 3. COPYING IN QUANTITY...99 4. MODIFICATIONS...100 5. COMBINING DOCUMENTS...101 6. COLLECTIONS OF DOCUMENTS...101 7. AGGREGATION WITH INDEPENDENT WORKS...101 8. TRANSLATION...102 9. TERMINATION...102 10. FUTURE REVISIONS OF THIS LICENSE...102 How to use this License for your documents...102 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig)...104 v

A táblázatok listája 6-1. Partíció típusok (a Linux fdisk programjából)...36 9-1. Futási szintek...68 12-1. Hatékony mentési séma sok mentési szint használatával...85 Az ábrák listája 3-1. A Linux rendszermag néhány fontosabb része...5 4-1. A Unix könyvtárfa részei. A szaggatott vonalak partícióhatárokat jelölnek...11 6-1. Egy merevlemez vázlatos rajza...30 6-2. Egy példa a merevlemez particionálására...35 6-3. Három különálló fájlrendszer...43 6-4. A /home és az /usr felcsatolva...43 6-5. Példa a dumpe2fs kimenetére...49 10-1. Bejelentkezés terminálon keresztül: az init, a getty, a login és a shell kölcsönhatása....71 12-1. Példa egy többszintű mentés ütemezésére...85 vi

A dokumentum forráskódja (XML) és konvertált formátumai E könyv forráskódja és egyéb, gép által olvasható formátumok az Interneten elérhetők anonymous FTP-vel a The Linux Documentation Project honlapján http://www.tldp.org/, vagy e könyv honlapján http://www.taylexson.org/sag/ (http://www.taylexson.org/sag//). A HTML és PDF formátumok mindenképpen elérhetők. i

Fejezet 1. Bevezetés Kezdetben a fájl alaktalan és tartalom nélküli vala; és üresség vala a bitek színén. És a Szerző Ujjai lebegtek vala a billentyűzet felett. És mondá a Szerző: "Legyenek szavak", és levének szavak. Ez a kézikönyv, a Linux rendszeradminisztrátorok kézikönyve, a rendszeradminisztrációt a Linux szempontjából ismerteti. Azoknak ajánlom, akik a semminél (azaz annál, hogy mi is az? ) csak egy kicsivel tudnak többet a rendszeradminisztrációról, de legalábbis a normális használat alapjaival tisztában vannak. Ez a kézikönyv nem mondja el - többek között - azt sem, hogyan kell a Linuxot telepíteni; erről a "Telepítés és kezdő lépések" (Installation and Getting Started) szól. Lásd lejjebb a Linux kézikönyvekről szóló részt. A rendszeradminisztráció mindazon dolgok összessége, melyet valakinek meg kell csinálnia ahhoz, hogy egy számítógépes rendszert használható állapotban tartson. Ez magában foglalja a fájlok biztonsági mentését (illetve szükség esetén visszaállítását), új programok telepítését, felhasználók létrehozását (és törlését, ha már nincs rájuk szükség), a fájlrendszerek épségének ellenőrzését stb. Ha a számítógép mondjuk egy ház volna, a rendszeradminisztrációt karbantartásnak neveznénk, mely tartalmazza a takarítást, a törött ablakok javítását és más, hasonló dolgokat. E könyv szerkezete olyan, hogy a fejezetek jelentős része egymástól függetlenül is használható, így ha mondjuk a biztonsági mentésekről akarsz információkhoz jutni, csak azt a fejezetet olvasd el. Mindazonáltal ez a könyv elsősorban tankönyv, és olvasható részenként, vagy egészben is. Ezen kézikönyvet nem arra szántam, hogy egymagában használják. A Linux dokumentációjának sok más része szintén fontos a rendszeradminisztrátoroknak. Elvégre a rendszeradminisztrátor csak egy különleges előjogokkal és kötelességekkel rendelkező felhasználó. Nagyon fontos források a kézikönyv oldalak (manual pages) gyűjteménye, amelynek lapjait mindig célszerű elolvasni, ha egy parancs nem ismerős. Ha nem tudod, melyik parancsra van szükséged, akkor az apropos parancsot érdemes használni. További részletek a parancs kézikönyv oldalán olvashatók. Noha ez a könyv a Linuxról szól, általában használható lehet más UNIX alapú rendszerek esetén is. Sajnálatos módon azonban a UNIX egyes változatai közt akkora lehet az eltérés (különösen a rendszeradminisztráció tekintetében), hogy reménytelen vállalkozás lenne minden változat lefedése. Még a Linux összes lehetőségének lefedése is bonyolult a fejlesztésének természete miatt. Nincs egyetlen hivatalos Linux terjesztés (disztribúció), így különböző embereknek különbözhetnek a beállításaik, és sokan maguk alkotják meg a beállításokat. Ez a könyv nem irányul egyetlen terjesztésre sem. Hacsak lehetséges, megpróbáltam rámutatni a különbségekre, és megmagyarázni több változatot. Megpróbáltam megmagyarázni, hogyan működnek a dolgok, és nemcsak egy öt egyszerű lépés jellegű receptet adni az egyes feladatokra. Ez azt jelenti, hogy sok információ szerepel itt, melyet nem szükséges mindenkinek tudni, de ezen részeket megjelöltem, és átugorhatók, ha egy előre beállított rendszert használsz. Természetesen ha mindent elolvasol, azáltal jobban megérted a rendszert, ez a rendszeradminisztrációt és használatot élvezetesebbé teheti. 1 Mint minden Linuxszal kapcsolatos fejlesztés, e kézikönyv megírása is önkéntes alapon történt: azért csináltam, mert úgy gondoltam, szórakoztató lesz, és mert úgy éreztem, meg kell tennem. Azonban - mint minden önkéntes munka esetében - határa van annak, mennyi idővel, tudással és tapasztalattal rendelkezik egy-egy ember. Ez azt jelenti, hogy a kézikönyv nem szükségszerűen olyan jó, mintha egy varázslót szépen megfizettek volna azért, hogy megírja, és évezredek álltak volna rendelkezésére a tökéletesítésére. Tekintsd ezt figyelmeztetésnek! Az egyik fontos ok, ami miatt határvonalakat szabtam magamnak, hogy sok témát már nagyon jól dokumentáltak egyéb szabadon elérhető kézikönyvekben, így ezekre nem mindig tértem ki. Ez különösen a program-specifikus 1

Fejezet 1. Bevezetés dokumentációra vonatkozik, mint például a mkfs használatának részletei. Mindössze a program funkcióját, és e kézikönyv célkitűzéseihez mérten elengedhetetlenül szükséges tudnivalókat írtam itt le. További információért érdemes a fent említett egyéb kézikönyveket fellapozni. A hivatkozott dokumentáció rendszerint a teljes Linux-dokumentáció része. 1.1. Magyar fordítás A magyar fordítást (v0.6) Horváth András (mailto:horvatha@rs1.szif.hu_no_spam) és Murzsa Norbert készítette (1998.11.08). A fordítás pontosításában Sir Zero (mailto:zero@linux.dunaweb.hu_no_spam), Papp István (mailto:ipapp@hirado.bjkmf.hu_no_spam), Gyulai Mihály (mailto:mihaly.gyulai@vizmuvek.hu_no_spam), Németh László (mailto:nemethl@sol.cc.u-szeged.hu_no_spam) és Dragugyi Tanyiloo (mailto:varga@swh600.langen.bull.de_no_spam) működött közre. A frissítést (v0.8) Konkoly Katalin (mailto:kata[kukac]linuxforum[pont]hu) készítette (2005.03.26). A frissítés lektorálását Daczi László (mailto:dacas[kukac]fsf[pont]hu) végezte (2005.03.27). Javítva 2005.03.29.-én. A képek magyar változatát Hatala László (mailto:hatalal[kukac]gmail[pont]com) készítette (2005.01.06). A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt (http://tldp.fsf.hu/index.html) honlapján. Megjegyzések 1. A "megértés" a Linux sikeres használatának kulcsa. Ez a könyv ad ugyan néhány receptet - de mi van, ha olyan problémával találkozol, amire e könyvben nem találsz megoldást? Ha ez a kézikönyv segíteni tud a Linux logikájának megértésében, akkor nem lesz szükség receptekre, mert a megoldás kézenfekvő lesz. 2

Fejezet 2. Néhány szó a kézikönyvről 2.1. Köszönetnyilvánítás 2.1.1. Joanna köszönetnyilvánítása Lars igyekezett a lehető legjobban megírni ezt a kézikönyvet, én pedig, mint a jelenlegi karbantartó, szeretném folytatni a jó munkát. Őszintén örülnék a visszajelzéseknek, ha bárkinek van ötlete arra vonatkozóan, hogyan lehetne még jobbá tenni a könyvet. Minden érdekel: nyelvi hibák, tárgyi tévedések, további kifejtésre érdemes témák, újraírandó részek, információ arról, hogy a különböző UNIX változatok hogyan működnek. Az interneten a következő helyen vagyok elérhető: http://www.iki.fi/viu/ (http://www.iki.fi/viu/). Sokan segítettek e kézikönyv megírásában, közvetve vagy közvetlenül. Külön köszönet illeti a következőket: Matt Welsh (az inspirációért és az LDP vezetésért), Andy Oram (értékes visszajelzéseivel újabb munkára ösztönzött), Olaf Kirch (megmutatta, hogy meg lehet írni a könyvet), valamint Adam Richter at Yggdrasil és mások (mert bebizonyították nekem, hogy mások számára is érdekes lehet e munka). Stephen Tweedie, H. Peter Anvin, Remy Card, Theodore Ts o, és Stephen Tweedie kölcsönadták nekem műveiket (s így vastagabbá és jóval hatásosabbá tehettem a sajátomat): a xia és ext2 fájlrendszerek összehasonlítása, az eszközlista és az ext2 fájlrendszer leírása tartozik ezek közé. Ezek már nem részei a könyvnek. Rendkívül hálás vagyok e segítségért, és utólag kérek elnézést azért, hogy a korábbi verziókból időnként hiányzott a szerzők pontos feltüntetése. Továbbá szeretnék köszönetet mondani Mark Komarinskinak, amiért 1993-ban elküldte nekem a saját anyagát, és a Linux Journalban megjelent sok rendszeradminisztrációs cikkért, amelyek igen informatívak voltak és inspirálóan hatottak rám. Sok olvasó küldött be igen hasznos megjegyzéseket. Az archívumomban megjelent apró fekete lyuk miatt nem sorolhatom fel mindegyiküket, de álljon itt néhányuk neve ABC-rendben: Paul Caprioli, Ales Cepek, Marie-France Declerfayt, Dave Dobson, Olaf Flebbe, Helmut Geyer, Larry Greenfield és édesapja, Stephen Harris, Jyrki Havia, Jim Haynes, York Lam, Timothy Andrew Lister, Jim Lynch, Michael J. Micek, Jacob Navia, Dan Poirier, Daniel Quinlan, Jouni K Seppänen, Philippe Steindl, G.B. Stotte. Elnézést kérek mindazoktól, akiket elfelejtettem. 2.1.2. Stephen köszönetnyilvánítása Szeretném megköszönni Larsnak és Joannának, hogy olyan keményen dolgoztak az útmutatón. Egy ilyen kézikönyvben valószínűleg előfordulnak apróbb pontatlanságok, és minden bizonnyal vannak fejezetek, amelyek idővel elavulnak. Ha ezek bármelyikét észreveszed, kérlek, tudasd velem a következő e-mail címen: <bagpuss@debian.org>. Gyakorlatilag bármilyen formában elfogadom a visszajelzést (diff-ek, sima szöveg, html, bármi), mert semmiképp sem vetem meg mások segítségét egy ekkora terjedelmű szöveg karbantartásában :) Sok-sok köszönet illeti meg Helen Topping Shaw-t, amiért elővette a piros tollát és sokkal jobbá tette a szöveget, mint amilyen egyébként lett volna. Valamint köszönet illeti azért is, mert egyszerűen csodálatos. A kézikönyv jelenlegi webhelye: http://people.debian.org/~bagpuss (http://people.debian.org/~bagpuss) 3

2.1.3. Alex köszönetnyilvánítása Fejezet 2. Néhány szó a kézikönyvről Szeretném megköszönni Larsnak, Joannának és Stephennek, hogy évekig kitartóan dolgoztak ezen a dokumentumon. Csak remélhetem, hogy hozzájárulásom méltó folytatása lesz annak a munkának, amelyet elkezdtek. Sokan voltak, akiktől segítséget kaptam a "Windows-mentes" világban való utazásom során. Akinek érzésem szerint legnagyobb köszönettel tartozom, az nem más, mint első UN*X-mentorom, Mike Velasco. Akkoriban, amikor az SCO még nem számított "szitokszónak", Mike segített haladnom a tar, cpio és sok-sok más man-oldal ösvényén. Köszönöm, Mike! Te vagy a "kanapékirály" (Sofa King). 2.2. A kézikönyvben használt jelölések A kézikönyvben végig igyekeztem az egyezményes tipográfiai jelöléseket alkalmazni. Remélem, olvashatóbbá teszik a szöveget. Ha jobbító ötleteid vannak, kérlek, vedd fel velem a kapcsolatot. Fájlnevek jelölése: /usr/share/doc/foo. parancsok jelölése: fsck Email-címek jelölése: <stephen@clothcat.demon.co.uk> URL-ek jelölése: http://www.tldp.org A listát kiegészítem, amint szerkesztés közben új dolgok merülnek fel. Ha úgy gondolod, hogy ki kellene egészíteni még valamivel, kérlek, tudasd velem. 4

Fejezet 3. Egy Linux-rendszer áttekintése És látá Isten, hogy minden, amit teremtett vala, ímé igen jó. - Biblia, Károli Gáspár fordítása. 1Mózes 1:31 Ez a fejezet áttekintést nyújt egy Linux-rendszerről. Először is az operációs rendszer által nyújtott legfontosabb szolgáltatások ismertetésére kerül sor. Utána az ezen szolgáltatásokat nyújtó programok nem túl részletes leírása következik. Ennek a fejezetnek az a célja, hogy a rendszerről, mint egészről adjon képet, ezért az egyes részletek leírása máshol következik majd. 3.1. Egy operációs rendszer különböző részei Egy UNIX operációs rendszer a rendszermagból és néhány rendszerprogramból áll. Van még néhány alkalmazás is, amelyek a munkavégzéshez szükségesek. A rendszermag az operációs rendszer szíve. 1 Ez követi nyomon a lemezen lévő fájlokat, elindítja és egymással párhuzamosan futtatja a programokat, memóriát és egyéb erőforrásokat rendel különböző folyamatokhoz (processzekhez), csomagokat fogad és küld a hálózaton keresztül stb. A rendszermag ezek közül nagyon keveset végez maga, de eszközöket ad ahhoz, hogy ezek a szolgáltatások felépíthetők legyenek. Továbbá megakadályozza, hogy bárki közvetlenül elérhesse a hardvert, mindenkit a számára nyújtott eszközök használatára kényszerítve. 2 A rendszermag így bizonyos fokú védelmet is biztosít, elkülönítve a felhasználókat egymástól. A rendszermag által nyújtott szolgáltatások rendszerhívásokon (system call) keresztül érhetők el. (Lásd a UNIX kézikönyv lapok 2. fejezetét.) A rendszerprogramok a rendszermag által nyújtott eszközöket használják az operációs rendszertől elvárt szolgáltatások megvalósítására. A rendszerprogramok és minden más program is a "rendszermag legfelső szintjén" futnak, melyet felhasználói módnak (user mode) nevezünk. A rendszerprogramok illetve az alkalmazások között egy szempont szerint tehetünk különbséget: az alkalmazások hasznos dolgokat (vagy egy játékot) valósítanak meg, míg a rendszerprogramok a rendszer működését biztosítják. Egy szövegszerkesztő program - alkalmazás; a mount egy rendszerprogram. A két kategória közti határ gyakran elmosódik, habár ez csak a megrögzött kategorizálók számára fontos. Egy operációs rendszer tartalmazhat még fordító programokat (compiler) és a megfelelő programkönyvtárakat (library) (a GCC és a C programkönyvtárak a szokásosak Linux alatt), habár nem mindegyik programozási nyelv része az operációs rendszernek. Dokumentáció és néha még néhány játék is lehet az operációs rendszer része. Hagyományosan az operációs rendszert a telepítő szalag vagy lemez tartalma definiálja, de ez a Linux esetén nem olyan egyértelmű, mert a világ FTP szerverein rengeteg változata terjedt el. 3.2. A rendszermag fontos részei A Linux rendszermag több fontos részből áll: processzkezelés (process management), memóriakezelés, hardvereszköz-vezérlők (device drivers), fájlrendszer-vezérlők, hálózatkezelés és egy csomó, változatos kisebb rész. Itt 3-1 Ábra láthatunk néhányat. 5

Fejezet 3. Egy Linux-rendszer áttekintése Ábra 3-1. A Linux rendszermag néhány fontosabb része Valószínűleg a legfontosabb részek (hiszen semmi más nem működik nélkülük) a memóriakezelés és a processzkezelés. A memóriakezelés gondoskodik a memória- és swap területek processzekhez, rendszermag-részekhez és a cache pufferekhez való rendeléséről. A processzkezelés létrehozza a processzeket és megvalósítja a többfeladatúságot (multitasking) az aktív processz váltogatásával. Legalacsonyabb szinten a rendszermag mindenféle támogatott hardvereszközhöz való vezérlőt tartalmaz. Mivel a világ tele van különféle hardverrel, az eszközvezérlők száma igen nagy. Nagyon sok, egyébként hasonló részekből álló hardverelem különbözik a szoftveres ellenőrzés módjában. A hasonlóságok lehetővé teszik, hogy a vezérlőprogramokat általános csoportokba osszuk be, melyen belül a műveletek hasonlóak; a csoport minden eleme azonos kommunikációs felületet mutat a rendszermag többi része felé, de különbözik a műveletek megvalósításának módja. Például minden lemezvezérlő a rendszermag többi része felé hasonló képet mutat, azaz mindnek van "meghajtó inicializáló", "N. szektor beolvasó", "N. szektorba író" művelete. A rendszermag által nyújtott néhány szolgáltatásnak hasonló jellemzői vannak, ezért osztályokba lehet őket sorolni. Például a különféle hálózati protokollok egyetlen programozási felületbe, a "BSD socket könyvtárba" lettek 6

Fejezet 3. Egy Linux-rendszer áttekintése összegyűjtve. Másik példa a virtuális fájlrendszer (virtual filesystem; VFS) rétege, mely a megvalósítástól független, absztrakt formára hozza a fájlrendszereken végzett műveleteket. A fájlrendszer-típusok mindegyike a megfelelő fájlrendszer-műveletet tartalmazza. Amikor valami használni akarja a fájlrendszert, a kérés keresztülmegy a VFS-en, amely a megfelelő fájlrendszer-vezérlőhöz irányítja. 3.3. A UNIX rendszerek fő szolgáltatásai Ez a fejezet a legfontosabb UNIX szolgáltatások közül ismertet néhányat, nem túl részletesen. A későbbi fejezetekben finomabb leírást is adunk. 3.3.1. init Egy UNIX rendszer legfontosabb szolgáltatását az init parancs nyújtja. Ez indul minden UNIX rendszer első processzeként, mint az utolsó dolog, amit a rendszermag a rendszerindítás (boot) után csinál. Amikor az init elindul, folytatja a rendszerindítási folyamatot különböző indulási aprómunkák elvégzésével, azaz például ellenőrzi és felcsatolja (mount) a fájlrendszereket, démonokat indít stb. Azon dolgok pontos listája, amit az init végez, egy sajátos paramétertől függ, mely többértékű lehet, és a működés módját, jellegét határozza meg. Az init általában egyfelhasználós üzemmódot (single user mode) nyújt, mely esetén egyetlen felhasználó sem jelentkezhet be, csakis a root, aki a konzolon használhatja a shell-t. A szokásos üzemmód a többfelhasználós üzemmód (multiuser mode). Néhány esetben ezt általánosítják, és bevezetik a futási szinteket (run level); az egy- és többfelhasználós üzemmód két futási szintnek felel meg, de vannak mások is, mint például az X automatikus futtatása a konzolon. A Linux tíz futási szintet engedélyez (0-9), de ezek közül rendszerint csak néhányat definiálnak alapértelmezésben. A 0. futási szintet rendszerleállításként definiálták. Az 1. futási szint az egyfelhasználós üzemmód. A 6. futási szint a rendszer újraindítása. A többi futási szint attól függ, hogyan definiálta őket egyik vagy másik disztribúció, s ezek között jelentős eltérések lehetnek. Ha vetünk egy pillantást az /etc/inittab tartalmára, rendszerint tájékozódhatunk arról, melyek az előre definiált futási szintek, s miként definiálták őket. Normál működés esetén az init megbizonyosodik arról, hogy a getty program működik (azaz a felhasználók be tudnak jelentkezni), és az árva processzeket (amelyeknek a szülője meghalt) örökbe fogadja, mivel a UNIX típusú rendszerekben minden processznek egyetlen fastruktúrához kell tartoznia. Amikor a rendszer leáll (shut down), az init az, amely a többi processz leállításával foglalkozik, lecsatolja a fájlrendszereket, és leállítja a processzort, valamint egyéb dolgokat is végez, ha úgy állították be. 3.3.2. Bejelentkezés (login) terminálról A terminálokról (soros vonalon keresztül) és a konzolról (X nélkül) való bejelentkezéseket a getty program végzi el. Az init minden bejelentkezésre használható terminálhoz a getty egy-egy példányát indítja el. A getty beolvassa a felhasználó nevét és futtatja a login programot, mely a jelszót olvassa be. Ha a név és a jelszó érvényes, a login elindítja a shell-t. Ha a shell futása megszakad (mert például a felhasználó kilép), vagy ha a login leáll (mert a megadott név és a jelszó nem érvényes), ezt az init észreveszi, és a getty egy új példányát indítja el. A rendszermag egyáltalán nem tud a bejelentkezésekről, ezeket teljes egészében a rendszerprogramok kezelik. 7

3.3.3. Syslog Fejezet 3. Egy Linux-rendszer áttekintése A rendszermag és sok rendszerprogram hibaüzeneteket (error message), figyelmeztetéseket (warning) és más üzeneteket adhat. Gyakran fontos, hogy ezeket az üzeneteket később, esetleg sokkal később is meg lehessen nézni, ezért érdemes ezeket egy fájlba írni. Ezt végzi el a syslog program. Beállítható úgy, hogy az üzeneteket fontosságuk, vagy az üzenet adója szerint különböző fájlokba rendezze. Például a rendszermag üzeneteit sokszor külön fájlba irányítják, mivel ezek gyakran sokkal fontosabbak az egyéb üzeneteknél és rendszeresen olvasni kell őket a problémák kiszűrése érdekében. 3.3.4. Periodikus parancsvégrehajtás: cron és at A felhasználók és rendszeradminisztrátorok számára is gyakran szükséges bizonyos parancsok periodikus futtatása. Például a rendszeradminisztrátor időnként le szeretné törölni az ideiglenes fájloknak kijelölt könyvtárakból (ilyen például a /tmp és a /var/tmp) a régi fájlokat, hogy ne teljen be a lemez. Néhány program ugyanis nem takarít megfelelően maga után. A cron szolgáltatást éppen erre találták ki. Minden felhasználónak lehet egy crontab fájlja, ahol felsorolja a periodikusan elindítandó parancsokat és ezek végrehajtási időpontjait. A cron démon pedig arra fog ügyelni, hogy a megadott időpontban elindítsa a parancsokat. Az at szolgáltatás hasonló a cron-hoz, de csak egyszeri alkalomra szól: a parancsot egy előre megadott időpontban, egyszer indítja el. További információért lásd a cron(1), crontab(1), crontab(5), at(1) és atd(8) kézikönyv oldalakat. 3.3.5. Grafikus felhasználói felület (graphical user interface; GUI) A UNIX és a Linux nem ágyazza bele a felhasználói felületet a rendszermagba; ehelyett felhasználói szintű programokra bízza megvalósítását. Ez igaz a szöveges és a grafikus környezetekre is. Ez az elrendezés a rendszert rugalmasabbá teszi, de rendelkezik egy hátránnyal: egyszerűvé teszi azt, hogy minden programnak más felhasználói felülete legyen, ezzel viszont megnehezíti a rendszer megtanulását. A Linux által elsődlegesen használt grafikus felület az "X Window System" (rövidítve "X"). Az X maga sem valósít meg felhasználói felületet, csak egy ablakozó rendszert ad, azaz olyan eszközöket, mellyel a grafikus felhasználói felület megvalósítható. Népszerű ablakkezelők (window manager; WM): fvwm, icewm, blackbox és windowmaker. Létezik két népszerű asztali munkakörnyezet (desktop environment) is: a KDE és a Gnome. 3.3.6. Hálózatok A hálózat két vagy több számítógép oly módon való összekötését jelenti, hogy azok kommunikálni tudjanak egymással. A kapcsolatfelvétel és a kommunikáció tényleges módszerei kissé bonyolultak, de az eredmény igen hasznos. A UNIX operációs rendszerek kiterjedt hálózati lehetőségekkel rendelkeznek. A legtöbb alapvető szolgáltatás (fájlrendszerek, nyomtatás, biztonsági mentések stb.) elvégezhető hálózaton keresztül is. Ez könnyebbé teheti a rendszeradminisztrációt, hiszen megengedi a centralizált karbantartást, miközben kihasználja a számítógép ("microcomputing") és az elosztott számítások ("distributed computing") előnyeit is, azaz az alacsony költségeket és a jobb hibatűrést. 8

Fejezet 3. Egy Linux-rendszer áttekintése Mindamellett ez a kézikönyv éppen csak érinti a hálózatokat. Részletesebb információk beszerzésére a Linux Network Administrators Guide (Linux hálózati adminisztrátorok kézikönyve) http://www.tldp.org/ldp/nag2/index.html (http://www.tldp.org/ldp/nag2/index.html) című művet ajánljuk; itt a hálózatok működésének alapvető leírását is megtalálod. 3.3.7. Hálózati bejelentkezés A hálózati bejelentkezés kicsit másként működik, mint a normális bejelentkezés. Minden terminálnak, melyről be lehet jelentkezni, fizikailag különálló soros vonala van. A hálózaton bejelentkező minden egyes felhasználónak külön virtuális hálózati kapcsolata van, és ezekből bármennyi lehet. 3 Ezért nem lehetséges, hogy külön getty fusson minden lehetséges virtuális kapcsolat számára. Továbbá, a hálózati bejelentkezésnek több módja is van, mint például a TCP/IP hálózatok esetén a telnet és a rlogin. 4 Ahelyett, hogy egy egész csapat getty lenne fenntartva a hálózati bejelentkezéseknek, bejelentkezési módonként egy-egy démon figyel minden bejelentkezési kísérletet. (Például külön démon figyeli a telnet illetve rlogin használatával való bejelentkezéseket.) Amikor egy ilyen démon belépési kísérletet észlel, saját magát indítja még egy példányban azon kísérlet kezelésére, az eredeti példány pedig tovább folytatja a további próbálkozásokra való várakozást. Az új példány pedig a getty-hez hasonlóan működik. 3.3.8. Hálózati fájlrendszerek (network file system; NFS) Az egyik leghasznosabb dolog, amit a hálózatokkal tehetünk, a fájlok megosztása a hálózati fájlrendszeren keresztül. Ennek szokásos elnevezése: "Network File System", vagy röviden "NFS", melyet a Sun fejlesztett ki. A hálózati fájlrendszer segítségével minden fájlműveletet, melyet az egyik gép programja végez, a hálózaton keresztül egy másik gépre küldhetünk. Ez becsapja a programot, így az azt hiszi, hogy a másik számítógép fájljai a saját gépen vannak. Ez roppant egyszerűvé teszi az információk megosztását, hisz nem követeli meg a programok módosítását. A fájlmegosztás másik népszerű módja a Samba (http://www.samba.org). Ez a protokoll lehetővé teszi MS Windowst futtató gépekkel is a fájlmegosztást (a Network Neighbourhood segítségével). Ily módon nyomtatókat is megoszthatunk a gépek között. 3.3.9. Levelezés Az elektronikus levél (e-mail) a számítógépes kommunikáció legelterjedtebb módszere. Az elektronikus levél egy olvasható, de speciális formátumú fájlban tárolódik, és megfelelő levelezőprogramok használhatók küldésükre és olvasásukra. Minden felhasználónak van egy bejövő levelesládája (incoming mailbox); ez egy speciális formátumú fájl, ahol az új levelek tárolódnak. Amikor valaki levelet küld, a levelezőprogram megkeresi a címzett levelesládáját és a levelet hozzáfűzi a levelesláda-fájlhoz. Ha a címzett ládája másik gépen van, a levél a másik gépre lesz elküldve, amely azután a legmegfelelőbbnek látszó levelesládába kézbesíti. A levelezési rendszer sok programból áll. A helyi vagy távoli levelesládákba történő kézbesítést egy program, az úgynevezett mail transfer agent (MTA), például a sendmail vagy az smail végzi, míg a felhasználó által használt programok nagyon sokfélék lehetnek. (Ezek az úgynevezett mail user agent vagy MUA programok, mint például a pine, a mutt vagy az elm.) A levelesládák általában a /var/spool/mail könyvtárban találhatók. 9

3.3.10. Nyomtatás Fejezet 3. Egy Linux-rendszer áttekintése Egyszerre csak egy személy használhat egy nyomtatót, de nagyon gazdaságtalan, ha nem osztjuk meg a nyomtatókat a felhasználók között. A nyomtatót ezért egy olyan program vezérli, mely egy nyomtatási sort (print queue) valósít meg: minden nyomtatási feladat (job) egy várakozási sorba kerül, és valahányszor a nyomtató végzett egy feladattal, automatikusan a következő nyomtatásába kezd. Ez mentesíti a felhasználókat a várakozási sor szervezésétől és a nyomtató feletti irányításért való harctól 5 A várakozási sort szervező program puffereli (spool) a nyomtatási feladatokat a lemezre, azaz a szöveget egy fájlban tárolja, amíg a nyomtatási feladat a sorban várakozik. Ez lehetővé teszi, hogy a felhasználói programok gyorsan átdobják a nyomtatási feladatot a várakozási sort szervező programnak, így a felhasználói programnak nem kell megvárni a nyomtatás végét. Ez valóban kényelmes, hisz lehetővé teszi, hogy kinyomtassunk egy változatot, és még ennek tényleges kinyomtatása előtt teljesen átjavíthassuk a munkánkat. 3.3.11. A fájlrendszer elrendezése A fájlrendszer több részre oszlik; általában a gyökér (root) fájlrendszerben foglal helyet a /bin, /lib, /etc, /dev és még néhány könyvtár; az /usr fájlrendszerben programok és nem változó adatok; a /var fájlrendszerben változó adatok (mint például naplófájlok); és végül a /home fájlrendszer, ahol a felhasználók személyes fájljai találhatók. A hardvertől és a rendszeradminisztrátor döntésétől függően a felosztás ettől eltérhet; akár mindez egyetlen fájlrendszeren is lehet. A 4 fejezet részletesebben ismerteti a fájlrendszert; a Filesystem Hierarchy Standard pedig még jobban elmélyed a részletekben. 6 Megjegyzések 1. Tény, hogy a rendszermagot (kernel) sokszor hibásan magával az operációs rendszerrel azonosítják, pedig nem az. Egy operációs rendszer sokkal több szolgáltatást nyújt, mint a rendszermag önmagában. 2. Erre mindig úgy gondolok, mint egyfajta egységbe zártságra (encapsulation), ami talán segíthet az objektum-orientált programozói háttérrel rendelkezőknek jobban elképzelni a működését. 3. Nos, legalábbis sok. A hálózati sávszélesség még mindig szűkösnek tűnik, így a párhuzamosan létrehozható hálózati bejelentkezéseknek még mindig van egy gyakorlati felső határa. 4. Manapság sok Linux rendszeradminisztrátor nem tartja biztonságosnak a telnet és a rlogin belépést, inkább az ssh -t használják, a secure shell -t (biztonságos héjprogram), amely titkosítja a hálózaton áthaladó forgalmat, így kisebb a valószínűsége annak, hogy rosszindulatú felhasználók lehallgassák a kapcsolatot és olyan bizalmas adatokat szerezzenek meg, mint például a felhasználónevek és a hozzájuk tartozó jelszavak. Erősen ajánlott az ssh használata a telnet vagy az rlogin helyett. 5. Ehelyett a felhasználók egy új sort alkotnak a nyomtató előtt a kinyomtatott dokumentumaikra várva, mivel még senki sem látott olyan várakozási sor szervező programot, mely mindig pontosan meg tudná mondani, mikor is fejeződik be egy-egy nyomtatási feladat. Ez nagyon fellendíti a hivatalon belüli társasági kapcsolatokat. 6. http://www.pathname.com/fhs/ (http://www.pathname.com/fhs/) 10

Fejezet 4. A könyvtárfa áttekintése Két nappal később még mindig ott ült a fa ágán, lóbálta a lábát négy mézes csupor kellemes társaságában... (A.A. Milne: Micimackó; Karinthy Frigyes fordítása) Ez a fejezet a Linux szabványos könyvtárszerkezetének lényeges részeit írja le, ami a Filesystem Hierarchy Standard (FHS) szabványon alapul. Ez körvonalazza a könyvtárfa különböző fájlrendszerekre tagolásának szokásos módját és megadja a mögötte rejlő szándékokat. Nem minden Linux-disztribúció követi szolgai módon ezt a szabványt, de ahhoz elég általános, hogy áttekintést kapjunk róla. 4.1. Háttér Ez a fejezet a Filesystems Hierarchy Standard (FHS) 1 2.1-es változatán alapul, amely megkísérel létrehozni egy szabványt, amely szerint felépíthető egy könyvtárfa egy Linux-rendszerben. 2 Egy ilyen szabványos felépítésnek az az előnye, hogy könnyebb lesz írni vagy áthozni programokat Linux alá, illetve adminisztrálni egy linuxos gépet, ha minden a szokásos helyén található. Ezen szabvány mögött nem áll hatalom, amely mindenkit kényszerítene ennek betartására, de ezt támogatja a legtöbb (ha ugyan nem minden) Linux terjesztés. Nem túl jó ötlet eltérni az FHS-től nagyon alapos indok nélkül. Az FHS megpróbálja a UNIX szokásokat és az aktuális tendenciákat követni, ezáltal a Linux rendszer ismerős lesz a más Unix rendszereken gyakorlatot szerzettek számára is. Ez a fejezet nem olyan részletes, mint az FHS. A rendszeradminisztrátoroknak célszerű elolvasni az FHS-t is a teljes megértés kedvéért. Ez a fejezet nem magyaráz el minden fájlt részletesen. A cél nem minden fájl részletes leírása, hanem a rendszer áttekintése a fájlrendszer oldaláról. A fájlokról további információkat találhatunk a kézikönyvben, illetve az elektronikus kézikönyv oldalakban (man pages). A teljes könyvtárfa úgy lett megtervezve, hogy kisebb részekre lehessen bontani, melyek akár külön lemezpartíción is elhelyezkedhetnek, hogy a korlátozott lemezmérethez igazodhasson, és könnyebb legyen a biztonsági mentés, valamint egyéb rendszeradminisztrációs feladatok. A legfontosabb részek a gyökér / (root), /usr, /var és /home fájlrendszerek (lásd 4-1 Ábra). Mindegyik résznek más a feladata. A könyvtárfát úgy tervezték meg, hogy jól működjön hálózatba kötött linuxos gépek esetében is, amikor egyes részek csak olvasható módon kerülnek megosztásra, például CD-ROM-ról vagy NFS-en keresztül. Ábra 4-1. A Unix könyvtárfa részei. A szaggatott vonalak partícióhatárokat jelölnek 11

Fejezet 4. A könyvtárfa áttekintése Az egyes részek szerepeinek leírását az alábbiakban adjuk meg: A gyökér fájlrendszernek minden gépnél egyedinek kell lennie (általában egy helyi lemezen található, noha lehetne ramdiszken vagy hálózati meghajtón is), és tartalmaznia kell mindazt, ami a rendszerindításhoz kell addig a pillanatig, amikor már a többi fájlrendszer is felcsatolható (mount). Ezért a gyökér fájlrendszer tartalma csak az egyfelhasználós (single user) üzemmódhoz elegendő. Ez a rendszer tartalmazza továbbá az elromlott rendszer javításához és az elveszett fájlok biztonsági mentésből való visszaállításához szükséges eszközöket is. Az /usr fájlrendszer tartalmazza mindazokat a parancsokat, könyvtárakat, kézikönyv oldalakat és egyéb változatlan fájlokat, amelyek a normális működéshez szükségesek. Az /usr könyvtárban lévő fájlok nem specifikusak egyetlen gépre vonatkozóan sem, s nem is kell megváltoztatni őket normális működés során. Így lehetőség van a fájlok hálózaton keresztüli megosztására, ami nagyon takarékos, hisz ezzel sok lemezterület megtakarítható. (Könnyen lehet több száz megabyte-nyi, vagy akár gigabyte-nyi is az /usr tartalma.) További előny, hogy könnyebb lesz a rendszer karbantartása, mert csak a központi /usr partíción kell az alkalmazásokat frissíteni, nem minden gépen külön-külön. De még helyi lemez esetén is megtehetjük, hogy az /usr könyvtárat csak olvasható módon csatlakoztatjuk, ami csökkenti a fájlrendszer sérülésének veszélyét egy rendszerösszeomlás esetén. A /var fájlrendszer változó fájlokat tartalmaz, mint például a spool könyvtárak (a levelezéshez, hírekhez, nyomtatáshoz), naplófájlokat (log file), formázott kézikönyv oldalakat és ideiglenes fájlokat. Valaha minden, ami a /var könyvtárban van, valahol az /usr könyvtárban volt, de úgy nem lehetett az /usr könyvtárat csak olvasható módban csatlakoztatni. A /home fájlrendszer tartalmazza a felhasználók home könyvtárait, azaz minden igazi adatot a rendszerben. A home könyvtárak külön fájlrendszerbe való elkülönítése megkönnyíti a biztonsági mentéseket; a többi részt általában nem, vagy csak ritkábban kell elmenteni, mivel ritkábban változnak. Egy nagy /home fájlrendszert esetleg érdemes néhány további fájlrendszerre szétszedni, ami egy plusz elnevezési szint bevezetését követeli meg a /home alatt, mint például /home/students és /home/staff. Noha a különböző részeket fájlrendszereknek neveztük az eddigiekben, nem feltétlenül szükséges, hogy valóban külön fájlrendszereken legyenek. Egy kicsi, egyfelhasználós rendszeren akár egyetlen fájlrendszeren is tárolhatók, ami egyszerűbbé teszi a dolgokat. A könyvtárfa esetleg máshogy is felosztható fájlrendszerekre, annak függvényében, hogy mekkora lemezeink vannak és hogy hogyan foglaljuk a helyet különféle célokra. A fontos az, hogy minden szabványos név működjön, például, ha a /var és az /usr egy partíción van, az /usr/lib/libc.a és /var/log/messages neveknek működniük kell, mondjuk úgy, hogy a /var alatti fájlokat az /usr/var könyvtárba másoljuk és a /var csak egy szimbolikus hivatkozás az /usr/var könyvtárra. A Unix fájlrendszer szerkezete a fájlokat cél szerint csoportosítja, azaz például a parancsok egy helyen vannak, az adatfájlok máshol, a dokumentáció egy harmadik helyen és így tovább. Egy másik megoldás lehetne a fájlok csoportosítása aszerint, hogy melyik programhoz tartoznak, például minden Emacs-hoz tartozó fájl egy könyvtárban lenne, a TeX-hez tartozók egy másikban, és így tovább. Az utóbbi megközelítéssel az a baj, hogy megnehezítené a fájlmegosztást (a programkönyvtárak gyakran tartalmaznak statikus, megosztható és változó, nem megosztható fájlokat egyaránt), és néha még a fájlok (mondjuk a kézikönyv oldalak) megtalálása is nagyon bonyolult lenne, a karbantartóik számára pedig egyenesen rémálom. 12

Fejezet 4. A könyvtárfa áttekintése 4.2. A gyökér fájlrendszer A gyökér fájlrendszernek általában kisméretűnek kell lennie, mivel a kritikus fájlokat tartalmazza, és egy kicsi, ritkán módosított fájlrendszernek jobb esélye van a sérülések elkerülésére. Egy sérült gyökér fájlrendszer általában azt jelenti, hogy a rendszer nem képes elindulni (boot), legfeljebb különleges segítséggel (például hajlékony lemezről), és ezt nem érdemes kockáztatni. A gyökérkönyvtár (/) általában nem tartalmaz fájlokat, legfeljebb a szabványos rendszerfájlt (boot image), melynek szokásos neve /vmlinuz. Minden más fájl a gyökérkönyvtár alkönyvtáraiban helyezkedik el: /bin A rendszerindítás során szükséges parancsok, melyeket (a rendszerindítás után) a normál felhasználók is használhatnak. /sbin Hasonló a /bin könyvtárhoz, de az ebben lévő parancsokat nem a normál felhasználóknak szánták, noha szükség esetén használhatják (ha van rá engedélyük). Az /sbin rendszerint nincs benne a normál felhasználók alapértelmezett elérési útvonalában, viszont a root felhasználóéban igen. /etc Gépspecifikus konfigurációs fájlok. /root A root felhasználó home könyvtára. A rendszer többi felhasználója számára rendszerint nem elérhető. /lib Megosztott könyvtárak a gyökér fájlrendszer programjaihoz. /lib/modules Betölthető rendszermag modulok, különösen azok, melyek a rendszer indulásához (boot) szükségesek, például egy baleset utáni helyreállításkor (például hálózati és fájlrendszer vezérlők). /dev Eszközmeghajtók. A leggyakrabban használt eszközök meghajtóprogramját az 5 fejezetben vizsgáljuk meg. 13

Fejezet 4. A könyvtárfa áttekintése /tmp Ideiglenes fájlok. A rendszerindítás után futó programoknak inkább a /var/tmp használata ajánlott a /tmp helyett, mivel az előbbi valószínűleg egy nagyobb kapacitású lemezen van. A /tmp gyakran a /var/tmp könyvtárra mutató szimbolikus hivatkozás (symbolic link). /boot A rendszerbetöltő (bootstrap loader), például a LILO által használt fájlok könyvtára. A rendszermag fájl (kernel image) is gyakran itt van, nem a gyökérkönyvtárban. Ha több rendszermag fájl is van, a könyvtár gyorsan megnőhet, ezért célszerű lehet külön fájlrendszerre rakni. Egy másik ok erre az, hogy így biztosíthatjuk, hogy a rendszermag fájl az IDE lemez első 1024 cilinderén belül legyen. 3 /mnt Felcsatolási pontok a rendszergazda által létrehozott ideiglenes csatlakozásokhoz. A programoktól nem várható el, hogy automatikusan felcsatolódjanak az /mnt alá. Az /mnt felosztható további alkönyvtárakra (például /mnt/dosa lehet az MS-DOS formátumú hajlékonylemezek csatlakozási pontja, /mnt/exta pedig az ext2-es hajlékonylemezeké). /proc, /usr, /var, /home A többi fájlrendszer csatolási pontjai. 4 4.3. Az /etc könyvtár Az /etc könyvtár sok fájlt tartalmaz. Néhányat ezek közül az alábbiakban ismertetünk. A többi fájl esetében érdemes megkeresni, hogy melyik programhoz tartoznak, és elolvasni az ahhoz tartozó kézikönyv oldalakat. Sok hálózati konfigurációs fájl is található itt; ezek leírása a Networking Administrators Guide dokumentumban található meg. /etc/rc vagy /etc/rc.d vagy /etc/rc?.d Szkriptek, vagy szkripteket tartalmazó könyvtárak, melyeket induláskor vagy futási szint-váltáskor futtat a rendszer. További információ a 9 fejezetben található. 14

Fejezet 4. A könyvtárfa áttekintése /etc/passwd A felhasználók adatbázisa a következő mezőkkel: felhasználói név (username), valódi név (real name), home könyvtár, titkosított jelszó és egyéb információk. A formátum leírása megtalálható a passwd kézikönyv oldalon. A titkosított jelszavak manapság inkább az /etc/shadow fájlban találhatók. Ez azt jelenti, hogy a felhasználókkal kapcsolatos minden információ, kivéve a jelszavakat, a passwd fájlban tárolódnak. Történelmi okokból és a közmegegyezés miatt nem kívánatos a fájl nevének megváltoztatása. /etc/fdprm Hajlékonylemez paraméter-táblázat, mely leírja, hogyan néznek ki a különböző hajlékonylemezes formátumok. A setfdprm használja. Bővebb információ a setfdprm kézikönyv oldalán található. /etc/fstab Itt találhatók a rendszerindításkor automatikusan (mount -a paranccsal) felcsatolt fájlrendszerek (az /etc/rc könyvtárban, vagy más egyenértékű indítófájlban leírva). Linux alatt itt vannak az automatikusan bekapcsolandó swap területek (swapon -a) leírásai. Részletesebben lásd a 6.8.5 fejezetben, valamint a mount kézikönyv oldalán. Az /fstab -hoz is tartozik kézikönyv oldal az 5. részben. /etc/group Hasonló az /etc/passwd fájlhoz, de a csoportokat írja le, nem a felhasználókat. Lásd a group kézikönyv oldalát. /etc/inittab Az init konfigurációs fájlja. /etc/issue A getty üzenete a bejelentkezési prompt előtt. Általában egy rövid rendszerleírást vagy egy üdvözlő üzenetet tartalmaz. A tartalma a rendszeradminisztrátortól függ. /etc/magic A file parancs konfigurációs fájlja. Különböző fájlformátumok leírását tartalmazza, amely alapján a file megpróbálja kitalálni a fájl típusát. Lásd a magic és a file kézikönyv oldalakat. 15

Fejezet 4. A könyvtárfa áttekintése /etc/motd A napi üzenet, mely a sikeres bejelentkezés után automatikusan megjelenik. A tartalma a rendszeradminisztrátortól függ. Gyakran használják olyan üzenetek küldésére, melynek minden felhasználóhoz el kell jutnia, mint például a tervezett gépleállások ideje. /etc/mtab A pillanatnyilag csatlakoztatott fájlrendszerek listája. Az inicializáló szkriptek adnak neki kezdőállapotot, majd a mount frissíti automatikusan. Olyankor használatos, amikor szükség van a csatlakoztatott fájlrendszerek listájára, mint például a df parancs esetében. /etc/shadow Az árnyékjelszó-fájl (shadow password file) azokon a gépeken, amelyekre árnyékjelszavakat kezelő programokat telepítettek. Az árnyékjelszavak használata esetén a jelszavak az /etc/passwd helyett az /etc/shadow fájlban tárolódnak, amelyet csak a root olvashat. Ez megnehezíti a jelszavak feltörését. Ha az általad használt disztribúció felkínálja a választást, hogy használjon-e árnyékjelszavakat, erősen ajánlott igennel válaszolni. /etc/login.defs A login parancs konfigurációs fájlja. A login.defs fájlhoz az 5. részben található a kézikönyv oldal. /etc/printcap Ugyanaz, mint az /etc/termcap, csak a nyomtatók számára, és más szintaxissal. Ehhez is tartozik kézikönyv oldal. /etc/profile, /etc/csh.login, /etc/csh.cshrc Ezeket a fájlokat a Bourne illetve a C burok hajtja végre bejelentkezéskor vagy induláskor. Ez lehetővé teszi a rendszeradminisztrátornak, hogy minden felhasználónak azonos beállításokat adjon. Lásd a megfelelő shell kézikönyv-oldalát. /etc/securetty A biztonságos terminálokat azonosítja, tehát azokat, ahonnét a root számára engedélyezett a belépés. Általában csak a virtuális konzolok szerepelnek a listán, így lehetetlen (de legalábbis nehezebb) root jogosultságokhoz jutni a rendszer hálózaton vagy modemen keresztüli feltörésével. Ne engedélyezzük a root esetében a hálózaton keresztüli bejelentkezést! Inkább jelentkezzünk be egyszerű felhasználóként, és használjuk a su vagy a sudo parancsot a root jogosultságok megszerzéséhez. 16

Fejezet 4. A könyvtárfa áttekintése /etc/shells A megbízható shell-ek listája. A chsh parancs megengedi a felhasználóknak a bejelentkezési shell megváltoztatását olyan programra, mely szerepel ezen a listán. Az ftpd démon, amely a gép FTP-szolgáltatását biztosítja, ellenőrzi, hogy a felhasználó shell-je szerepel-e az /etc/shells listában. Amennyiben a bejelentkezési shell nem szerepel ezen a listán, a gép nem engedi a bejelentkezést. /etc/termcap A terminál lehetőségeinek adatbázisa. Azt írja le, milyen escape sorozatokkal lehet a terminálokat vezérelni. A programok ugyanis nem közvetlenül írják ki az escape sorozatokat, mert így csak egyes termináltípusokon működnének, hanem az /etc/termcap fájlból veszik a célnak megfelelő sorozatokat. Ennek eredményeként a legtöbb program a legtöbb terminálon fut. Lásd a termcap, curs_termcap és terminfo kézikönyv oldalakat. 4.4. A /dev könyvtár A /dev könyvtár a speciális eszközfájlokat tartalmazza az összes eszköz számára. Az eszközfájlok elnevezése speciális megállapodások szerint történik; ezek az 5 fejezetben találhatók meg. Az eszközfájlok a telepítéskor jönnek létre, illetve később a /dev/makedev szkript segítségével. A /dev/makedev.local egy szkript, melyet a rendszeradminisztrátor ír, és amely csak helyi használatú eszközfájlokat vagy hivatkozásokat hoz létre (azaz amelyek nem részei a szabványos MAKEDEV-nek, például olyan esetekben, amikor az eszközvezérlő nem szabványos). 4.5. Az /usr fájlrendszer Az /usr fájlrendszer gyakran nagyon nagy, mert lényegében minden programot ide telepítünk. Az /usr összes fájlja rendszerint egy Linux disztribúcióból (terjesztésből) származik; a helyileg telepített programok és egyéb anyagok az /usr/local alá kerülnek. Ez a módszer lehetővé teszi, hogy a rendszert a terjesztés egy új változatával frissítsük, vagy akár egy teljesen új terjesztéssel, anélkül, hogy minden programot újra kellene telepítenünk. Az /usr néhány alkönyvtárát az alábbiakban röviden ismertetjük (a kevésbé fontosakat kihagytuk; ezekről az FHS-ből szerezhetünk információkat). /usr/x11r6 Az X Window System minden fájlja. Az X fejlesztésének és telepítésének egyszerűsítése érdekében az X-hez tartozó fájlok nem integrálódnak be a rendszer egyéb részei közé. Az /usr/x11r6 alatt található könyvtárak szerkezete az /usr felépítéséhez hasonló. /usr/bin Majdnem minden felhasználói parancs itt van. Néhány a /bin és az /usr/local/bin -ben található. 17

Fejezet 4. A könyvtárfa áttekintése /usr/sbin Rendszeradminisztrációs programok, melyek nem szükségesek a gyökér fájlrendszer számára, például a legtöbb kiszolgáló (szerver) program. /usr/share/man, /usr/share/info, /usr/share/doc Kézikönyv oldalak, GNU Info dokumentumok és vegyes dokumentációs fájlok. (Ebben a sorrendben.) /usr/include Fejléc (header) fájlok a C programozási nyelvhez. A következetesség miatt az /usr/lib alatt kellene lenniük, de a megszokás miatt ez a név maradt használatban. /usr/lib Programokhoz és alrendszerekhez tartozó nem változó adatfájlok, többek között globális konfigurációs fájlok. A lib név a "library"-ból származik; eredetileg a programozási szubrutinok programkönyvtárai voltak elhelyezve itt. /usr/local A helyileg telepített szoftverek és egyéb fájlok helye. A terjesztések ide semmit sem telepíthetnek; kizárólag a helyi rendszeradminisztrátor használhatja. Ily módon egészen biztos lehet abban, hogy a terjesztés frissítése nem fogja felülírni azokat az extra programokat, amelyeket helyileg telepített. 4.6. A /var fájlrendszer A /var olyan adatokat tartalmaz, melyek a rendszer normális üzemelése során megváltoznak. Ez rendszerspecifikus, azaz nem osztható meg a hálózaton más számítógépekkel. /var/cache/man Az igény esetén megformázott kézikönyv oldalak számára fenntartott cache. A kézikönyv-oldalak forrása rendszerint az /usr/share/man/man? alatt található (a? a kézikönyv megfelelő szekciójára utal; például a man parancs kézikönyve a 7. szekcióban van). Néhány kézikönyv-oldal előre formázott változatban van a gépen, ezek az /usr/share/man/cat* fájlban tárolódnak. Más kézikönyv-oldalakat az első megtekintés előtt 18