Linux rendszeradminisztrátorok kézikönyve
|
|
|
- Klaudia Bogdánné
- 10 évvel ezelőtt
- Látták:
Átírás
1 Linux rendszeradminisztrátorok kézikönyve Verzió 0.8 Lars Wirzenius Joanna Oja Stephen Stafford Alex Weeks
2 Linux rendszeradminisztrátorok kézikönyve: Verzió 0.8 Lars Wirzenius Joanna Oja Stephen Stafford Alex Weeks Megjelent Bevezetés egy Linux rendszer adminisztrációjába, kezdők számára. Copyright Lars Wirzenius. Copyright Joanna Oja. Copyright 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.
3 Tartalomjegyzék A dokumentum forráskódja (XML) és konvertált formátumai...i 1. Bevezetés Magyar fordítás Néhány szó a kézikönyvről Köszönetnyilvánítás A kézikönyvben használt jelölések Egy Linux-rendszer áttekintése Egy operációs rendszer különböző részei A rendszermag fontos részei A UNIX rendszerek fő szolgáltatásai A könyvtárfa áttekintése Háttér A gyökér fájlrendszer Az /etc könyvtár A /dev könyvtár Az /usr fájlrendszer A /var fájlrendszer A /proc fájlrendszer Eszközfájlok A MAKEDEV szkript Az mknod parancs Eszközlista Lemezek és egyéb tárolóeszközök használata Az eszközök két fajtája Merevlemezek Hajlékonylemezek CD-ROM-ok Szalagos egységek Formázás Partíciók Fájlrendszerek Fájlrendszer nélküli lemezek Lemezterület foglalás Memóriakezelés Mi a virtuális memória? Swap terület létrehozása A swap terület használata Swap területek megosztása különböző operációs rendszerek között A swap terület nagysága A cache puffer...58 iii
4 8. Rendszerindítás és leállítás A rendszer indításának és leállításának áttekintése A rendszerindítási folyamat közelebbről A rendszerleállítás közelebbről Újraindítás (reboot) Egyfelhasználós (single user) mód Rendszerindító-hajlékonylemez vészhelyzet esetére init Az init az első Az init beállítása a getty elindítására: az /etc/inittab fájl Futási szintek (run levels) Speciális beállítások az /etc/inittab fájlban Rendszerindítás egyfelhasználós üzemmódban Be- és kijelentkezés Bejelentkezés terminálokon keresztül Bejelentkezés hálózaton keresztül Mit csinál a login Az X és az xdm Az elérési jogok szabályozása shell indítás A felhasználói fiókok (account) menedzselése Mi az a felhasználói fiók (account)? Felhasználó létrehozása A felhasználók tulajdonságainak megváltoztatása A felhasználók törlése Egy felhasználó átmeneti felfüggesztése Biztonsági mentések (backup) A biztonsági mentések fontossága A biztonsági mentések adathordozójának megválasztása A biztonsági mentést végző segédeszköz kiválasztása Egyszerű biztonsági mentések Többszintű mentések Mit mentsünk? Tömörített mentések Időbeállítás Időzónák A hardver- és a szoftver-órák Az idő beállítása és kijelzése Ha rosszul jár az óra NTP - Hálózati idő protokoll (Network Time Protocol) Alapvető NTP beállítások NTP eszközök Néhány ismert NTP szerver NTP-vel kapcsolatos hivatkozások...93 iv
5 14. Hol találsz segítséget? Hírcsoportok és levelezőlisták IRC...95 A. GNU Free Documentation License PREAMBLE APPLICABILITY AND DEFINITIONS VERBATIM COPYING COPYING IN QUANTITY MODIFICATIONS COMBINING DOCUMENTS COLLECTIONS OF DOCUMENTS AGGREGATION WITH INDEPENDENT WORKS TRANSLATION TERMINATION FUTURE REVISIONS OF THIS LICENSE How to use this License for your documents Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) v
6 A táblázatok listája 6-1. Partíció típusok (a Linux fdisk programjából) Futási szintek 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 A Unix könyvtárfa részei. A szaggatott vonalak partícióhatárokat jelölnek Egy merevlemez vázlatos rajza Egy példa a merevlemez particionálására Három különálló fájlrendszer A /home és az /usr felcsatolva Példa a dumpe2fs kimenetére Bejelentkezés terminálon keresztül: az init, a getty, a login és a shell kölcsönhatása Példa egy többszintű mentés ütemezésére...85 vi
7 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 vagy e könyv honlapján ( A HTML és PDF formátumok mindenképpen elérhetők. i
8 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
9 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 Magyar fordítás A magyar fordítást (v0.6) Horváth András (mailto:[email protected]_no_spam) és Murzsa Norbert készítette ( ). A fordítás pontosításában Sir Zero (mailto:[email protected]_no_spam), Papp István (mailto:[email protected]_no_spam), Gyulai Mihály (mailto:[email protected]_no_spam), Németh László (mailto:[email protected]_no_spam) és Dragugyi Tanyiloo (mailto:[email protected]_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 ( ). A frissítés lektorálását Daczi László (mailto:dacas[kukac]fsf[pont]hu) végezte ( ). Javítva én. A képek magyar változatát Hatala László (mailto:hatalal[kukac]gmail[pont]com) készítette ( ). A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt ( 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
10 Fejezet 2. Néhány szó a kézikönyvről 2.1. Köszönetnyilvánítás 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ő: ( 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 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ő címen: <[email protected]>. 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: ( 3
11 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) 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 -címek jelölése: <[email protected]> URL-ek jelölése: 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
12 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 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 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
13 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
14 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 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 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 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
15 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 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 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 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
16 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) ( című művet ajánljuk; itt a hálózatok működésének alapvető leírását is megtalálod 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 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 ( 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 Levelezés Az elektronikus levél ( ) 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
17 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 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 ( 10
18 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 Háttér Ez a fejezet a Filesystems Hierarchy Standard (FHS) 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
19 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
20 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
21 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 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
22 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 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
23 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
24 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 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) 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
25 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 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
26 Fejezet 4. A könyvtárfa áttekintése formázni kell; az így formázott változat aztán a /var/cache/man alá kerül, s ha valaki újra meg akarja nézni, már nem kell várnia arra, hogy megformázza neki a rendszer. /var/games Ide kell kerülnie minden olyan változó adatnak, amely az /usr-ben található játékokhoz tartozik. Ez abban az esetben érvényes, ha az /usr csak olvasható módon van felcsatolva. /var/lib Fájlok, melyek a normál üzem során változnak. /var/local Az /usr/local alá (azaz a rendszeradminisztrátor által) telepített programok változó adatai számára fenntartott hely. Megjegyezzük, hogy a helyileg telepített programoknak is használniuk kell a többi /var könyvtárat, ha az indokolt, például a /var/lock-ot. /var/lock Zároló (lock) fájlok. Sok program követi azt a szokást, hogy egy lezáró fájlt hoz létre ebben a könyvtárban, így jelzi azt, hogy egy adott eszközt vagy fájlt használ. Más programok ezt figyelhetik, és nem kísérlik meg annak használatát, ha a zároló fájl létezik. /var/log Naplófájlok (log files) a különböző programokhoz, különösen a login-hoz (/var/log/wtmp, amely a be- és kijelentkezéseket naplózza), a syslog-hoz (/var/log/messages, ahol minden rendszermag- és rendszerprogram üzenet tárolódik). A /var/log könyvtárban lévő fájlok gyakran hatalmasra nőnek, ezért célszerű szabályos időközönként törölni őket. /var/mail Ez az FHS által jóváhagyott helye a felhasználói postaláda-fájloknak (mailbox files). A szabvány gyakorlati alkalmazása terjesztésenként eltérhet, ezért lehet, hogy ezek a fájlok még a /var/spool/mail könyvtárban vannak. /var/run Fájlok, melyek a következő rendszerindításig érvényes rendszerinformációkat tartalmaznak. Például a /var/run/utmp a pillanatnyilag bejelentkezett felhasználókról tárol információt. 19
27 Fejezet 4. A könyvtárfa áttekintése /var/spool A hírek, nyomtatási sorok és más sorba állított feladatok könyvtára. Mindegyik várakozó feladattípusnak saját könyvtára van a /var/spool alatt, például a híreknek a /var/spool/news-ban. Megjegyezzük, hogy néhány terjesztés még nem alkalmazza teljesen az FHS szabványait, ezért a felhasználók levelesládái lehetnek a /var/spool/mail alatt. /var/tmp Nagyobb méretű ideiglenes fájlok, vagy olyan állományok, melyeknek hosszabb ideig kell létezniük, mint amit a /tmp megenged. (Igaz, lehet, hogy a rendszeradminisztrátor ez utóbbiban sem tűr meg nagyon régi fájlokat.) 4.7. A /proc fájlrendszer A /proc fájlrendszer egy látszólagos fájlrendszer. Nem is lemezen létezik, hanem a rendszermag hozza létre a memóriában. Arra használják, hogy a rendszerről (eredetileg a processzekről - innen a neve) adjon információkat. A legfontosabb fájlok és könyvtárak közül néhánynak a leírása megtalálható lentebb. Részletes leírást a proc kézikönyv oldal ad. /proc/1 Könyvtár, mely az 1-es számú processzről ad információkat. Minden processznek saját könyvtára van a /proc alatt a processzazonosító számmal megegyező néven. /proc/cpuinfo Processzorinformációk, mint például típus, modell, sebesség. /proc/devices Az aktuálisan futó rendszermag eszközvezérlőinek listája. /proc/dma Megmutatja, mely DMA csatornák vannak pillanatnyilag használatban. 20
28 Fejezet 4. A könyvtárfa áttekintése /proc/filesystems A rendszermagban beállított fájlrendszerek. /proc/interrupts Megmutatja, mely megszakítások vannak pillanatnyilag használatban, és összesen hány van belőlük. /proc/ioports Megmutatja, mely I/O portok vannak pillanatnyilag használatban. /proc/kcore A rendszer fizikai memóriájának képe. Ez pontosan akkora, mint a fizikai memória, de igaziból nem használ akkora területet; a rendszermag röptében generálja a tartalmát, ahogyan a programok éppen hozzáférnek. (Emlékezzünk: ha nem másoljuk máshova, a /proc alatti fájlok nem foglalnak lemezterületet.) /proc/kmsg A rendszermag kimenő üzenetei. Ezek a syslog felé is át vannak irányítva. /proc/ksyms A rendszermag szimbólumtáblázata. /proc/loadavg A rendszer átlagos terhelési (load average) értéke; három jelentés nélküli szám, mely a rendszer pillanatnyilag elvégzendő feladatainak mennyiségét jellemzi. /proc/meminfo Információk a memóriahasználatról. (A fizikai és a swap memóriáról is.) /proc/modules A pillanatnyilag betöltött rendszermag-modulok listája. 21
29 Fejezet 4. A könyvtárfa áttekintése /proc/net A hálózati protokollok állapotának információi. /proc/self Szimbolikus hivatkozás azon program processzkönyvtárára, amelyik épp a /proc -ot olvassa. Amikor több processz nézi a /proc -ot, különböző hivatkozásokat kapnak. Ez főként kényelmi szempontokat elégít ki, hisz könnyebbé teszi a programoknak saját processzkönyvtáruk megtalálását. /proc/stat Különféle statisztikák, mint például a lapozási hibák (page fault) száma a rendszerindítás óta. /proc/uptime A rendszer folyamatos működési idejét mutatja. /proc/version A rendszermag verziószáma. Megjegyzendő, hogy bár az előbbi fájlok többnyire könnyen olvasható szöveges fájlok, néha a formátumuk olyan, hogy nehezen értelmezhetők. Sok olyan parancs van, amely gyakorlatilag csak ezeket olvassa, majd könnyebben emészthetővé teszi. Ilyen például a free, amely a /proc/meminfo-t olvassa és a byte-okat kilobyte-tá alakítja, valamint néhány plusz információt is ad. Megjegyzések 1. (hhtp:// 2. Vagy bármilyen UNIX-szerű rendszerben, például a BSD-származékokban. 3. Ez az 1024 cilinderes korlátozás többnyire már nem érvényes. A modern BIOS-ok és a LILO (a LInux LOader; Linux-betöltő) újabb verziói lehetővé teszik, hogy átugorjuk az 1024 cilinderes határt az LBA (logical block addressing; logikai blokkcímzés) segítségével. A lilo kézikönyv oldalain több információt is találsz erről. 4. Jóllehet a /proc a valóságban nem található egyetlen lemezen sem. Lásd a fejezet későbbi részében a /proc bekezdést. 22
30 Fejezet 5. Eszközfájlok Ebben a fejezetben áttekintjük, mi az eszközfájl és hogyan kell létrehozni, valamint felsoroljuk a leggyakoribb eszközfájlokat. Az eszközfájlok kanonizált listája megtalálható az /usr/src/linux/documentation/devices.txt fájlban, amennyiben a Linux rendszermag forráskódja is telepítve van a rendszeren. Az itt felsorolt eszközfájlok a rendszermag es verziójától fogva érvényesek A MAKEDEV szkript A legtöbb eszközfájl már a Linux telepítésekor elkészül és azonnal kész a használatra. Ha valamilyen oknál fogva olyan eszközfájlra van szükséged, ami nincs a rendszeren, akkor először érdemes megpróbálni készíteni egyet a MAKEDEV szkript segítségével. Ez rendszerint a /dev/makedev-ben található, de lehet róla másolat (vagy szimbolikus hivatkozás) a /sbin/makedev-ben. Ha nincs benne az elérési útvonalban, akkor külön meg kell adni hozzá az elérési utat. Általában a következő formában használjuk a parancsot: # /dev/makedev -v ttys0 create ttys0 c 4 64 root:dialout 0660 Ez karakteres eszközként létrehozza a /dev/ttys0 eszközfájlt, amely főcsomópont-száma (major node) 4, alcsomópont-száma (minor node) 64, 0660-as hozzáférési jogokkal, tulajdonosa a root, és a dialout csoportba tartozik. A ttys0 soros port. Az al- és főcsomópont számokat a rendszermag értelmezi. A rendszermag ugyanis számokkal hivatkozik a hardvereszközökre, nekünk viszont ezeket nagyon nehéz lenne megjegyezni, ezért inkább fájlneveket használunk. A 0660-as hozzáférési jog azt jelenti, hogy a tulajdonos (ez esetben a root) írhatja és olvashatja, a csoport (ez esetben a "dialout") tagjai szintén írhatják és olvashatják, rajtuk kívül azonban senki más nem férhet hozzá Az mknod parancs A MAKEDEV a legkedveltebb módja a hiányzó eszközfájlok létrehozásának, de előfordulhat, hogy a MAKEDEV szkript nem ismeri fel a létrehozni kívánt eszközt. Ez esetben jól jön a mknod parancs. Használatához ismernünk kell a létrehozandó eszközhöz tartozó fő- és alcsomópont számokat. A rendszermag forrásának dokumentációjában, a devices.txt fájlban megtaláljuk az ehhez szükséges adatokat. Lássunk egy példát! Tegyük fel, hogy a MAKEDEV gépünkön lévő verziója nem tudja létrehozni a /dev/ttys0 eszközfájlt, ezért a mknod-ot kell használnunk. Miután belenéztünk a devices.txt fájlba, tudjuk, hogy karakteres eszköznek kell lennie, a főcsomópont-száma 4, az alcsomópont-száma 64. Így mindent tudunk, ami a fájl létrehozásához szükséges. # mknod /dev/ttys0 c 4 64 # chown root.dialout /dev/ttys0 # chmod 0644 /dev/ttys0 # ls -l /dev/ttys0 crw-rw root dialout 4, 64 Oct 23 18:23 /dev/ttys0 23
31 Fejezet 5. Eszközfájlok Mint látható, jóval több lépés kell a fájl létrehozásához. Ebben a példában valamelyest érzékelni lehet a szükséges lépések folyamatát. Rendkívül valószínűtlen, hogy a MAKEDEV ne tudná létrehozni a ttys0 fájlt, a példa csak az illusztrációt szolgálta Eszközlista A következő lista semmiképp sem törekszik a teljességre, sem a maximális részletességre. A felsorolt eszközök némelyike csak akkor működik, ha a rendszermagba fordítják a megfelelő támogatást. Egy-egy adott eszközre vonatkozóan érdemes elolvasni a rendszermag dokumentációját. Ha úgy gondolod, hogy további eszközöknek is fel kellene kerülniük a listára, kérlek, jelezd nekem, és igyekszem beletenni a következő kiadásba. /dev/dsp Digitális jelprocesszor. Ez az alapvető felület, amelyen keresztül a hangkártyád és a hangokat létrehozó program kommunikál. Karaktereszköz, főcsomópont-száma 14, alcsomópont-száma 3. /dev/fd0 Ez az első hajlékonylemez meghajtó. Ha több is van, akkor folyamatos számozást kapnak. Karaktereszköz, főcsomópont-száma 2, alcsomópont-száma 0. /dev/fb0 Az első framebuffer-eszköz. A framebuffer egy absztrakciós réteg a programok és a grafikus hardver között. Tehát az alkalmazásoknak nem kell tudniuk arról, hogy milyen hardvered van; elég annyi, hogyan kommunikáljanak a framebuffer meghajtó jól definiált és szabványosított API-jával (Application Programming Interface). A framebuffer karaktereszköz, főcsomópont-száma 29, alcsomópont-száma 0. /dev/hda A /dev/hda az elsődleges IDE vezérlőn (controller) lévő master IDE meghajtó. A /dev/hdb a slave meghajtó ugyanitt. A /dev/hdc és a /dev/hdd a másodlagos vezérlőn (controller) lévő master és slave meghajtók (ebben a sorrendben). Minden lemez partíciókra tagolódik. Az 1-4-ig tartó partíciók az elsődleges partíciók, az 5.-től kezdődően pedig a logikai partíciók vannak a kiterjesztett partíciókon belül. Ezért az egyes partíciókra hivatkozó eszközfájlok több részből állnak. Például a /dev/hdc9 a 9-es partíciót jelenti (logikai partíció egy kiterjesztetten belül) a másodlagos IDE vezérlő master IDE meghajtóján. A fő- és alcsomópont-számok némileg összetettek. Az első IDE vezérlőn minden partíció blokkeszköz, a főcsomópont-száma 3. A /dev/hda master meghajtó alcsomópont-száma 0, a /dev/hdb slave meghajtó alcsomópont-száma 64. A meghajtón belül minden partíciónál hozzáadjuk a partíciószámot a meghajtó alcsomópont-számához. Így például a /dev/hdb5 esetén a főcsomópont száma 3, az alcsomópont száma 69 (64+5=69). A másodlagos vezérlőn lévő meghajtókat ugyanígy kezeljük, csak az alcsomópont-száma 22 lesz. 24
32 Fejezet 5. Eszközfájlok /dev/ht0 Az első IDE szalagos meghajtó. A sorban következő meghajtók a ht1 stb. számozást kapják. Ezek is karaktereszközök, főcsomópont-száma 37, alcsomópont-száma 0 lesz a ht0 esetében, 1 lesz a ht1-nél, és így tovább. /dev/js0 Az első analóg botkormány. Az egymást követő botkormányok a js1, js2 stb. számozást kapják. A digitális botkormányok elnevezése djs0, djs1 és így tovább. Ezek karaktereszközök, a főcsomópont-szám 15. Az analóg botkormány alcsomópont-száma 0-ánál kezdődik, a maximális szám 127 lehet (ez több, mint elég, még a legfanatikusabb gamernek is). A digitális botkormányok alcsomópont-száma 128-nál kezdődik. /dev/lp0 Az első párhuzamos nyomtató. A sorban következő nyomtatók a lp1, lp2 stb. neveket kapják. Karaktereszközök, a főcsomópont-szám 6, az alcsomópont-szám 0-nál kezdődik és folyamatos számozást kap. /dev/loop0 Az első loopback (vizsgálóhurok) eszköz. A loopback eszközök olyan fájlrendszerek felcsatolására használatosak, amelyek nem valamelyik blokkeszközön (például lemezen) helyezkednek el. Ha például szeretnél felcsatolni egy ISO9660-as CD-ROM képmást (image) anélkül, hogy CD-re írnád, akkor a a loopback eszközt kell erre használni. Ez általában látható a felhasználó számára, és a mount parancs kezeli. Lásd a mount és a losetup parancsok kézikönyv oldalait. A loopback blokkeszköz, főcsomópont-száma 7, alcsomópont-száma 0-ánál kezdődik és folyamatos számozást kap. /dev/md0 Az első metadiszk (metadisc) csoport. A metalemezek a RAID-lemezekkel (Redundant Array of Independent Disks) kapcsolatosak. Részleteket az LDP-n található különféle RAID-HOGYANokban olvashatunk. A metalemez blokkeszköz, főcsomópont-száma 9, alcsomópont-száma 0-nál kezdődik, és folyamatos számozást kap. /dev/mixer Az OSS (Open Sound System; nyílt hangrendszer) része. Lásd az OSS dokumentációját a webhelyen. Karaktereszköz, főcsomópont-száma 14, alcsomópont-száma 0. /dev/null Ez az eszköz a "bit-szemetes". Vagyis egy fekete lyuk, ahová olyan adatokat küldhetsz, amiket soha többé nem akarsz viszontlátni. Bármi, amit ide küldesz, eltűnik, megsemmisül. Ez például akkor lehet hasznos, ha futtatni 25
33 akarsz egy parancsot, de nem akarsz semmilyen visszajelzést a terminálon. Ez is karaktereszköz, főcsomópont-száma 1, alcsomópont-száma 3. Fejezet 5. Eszközfájlok /dev/psaux A PS/2 egérport. Karaktereszköz, főcsomópont-száma 10, alcsomópont-száma 1. /dev/pda Párhuzamos portra csatlakozó IDE lemezek. Elnevezésük hasonló a belső IDE vezérlőre csatlakozó lemezekéhez (/dev/hd*). Blokkeszközök, főcsomópont-számuk 45. Az alcsomópont-számok némi magyarázatra szorulnak ez esetben. Az első eszköz a /dev/pda és az alcsomópont-száma 0. Ezen az eszközön úgy találjuk meg a partíciókat, hogy hozzáadjuk a partíció számát az eszköz alcsomópont-számához. Mindegyik eszközön maximum 15 partíció lehet (ellentétben a belső IDE lemezek 63-as korlátjával). A /dev/pdb alcsomópont-száma 16-nál kezdődik, a /dev/pdc-é 32-nél, a /dev/pdd-é pedig 48-nál. Így tehát a /dev/pdc6 alcsomópont-száma 38 lesz (32+6=38). Ez a séma maximum 4 párhuzamos lemezt engedélyez, egyenként 15 partícióval. /dev/pcd0 Párhuzamos portra csatlakozó CD-ROM meghajtók, 0-tól kezdődő számozással. Mind blokkeszköz, főcsomópont-számuk 46. A /dev/pcd0 alcsomópont-száma 0, a következő meghajtók sorban kapják az 1, 2, 3-as stb. alcsomópont-számokat. /dev/pt0 Párhuzamos portra csatlakozó szalagos eszközök. A szalagos meghajtókon nincsenek partíciók, így ezeket egyszerűen csak sorban megszámozzuk. Karaktereszközök, főcsomópont-számuk 96. Az alcsomópont-szám 0-tól kezdődik: 0 a /dev/pt0-nek, 1 a /dev/pt1-nek és így tovább. /dev/parport0 Feldolgozatlan párhuzamos portok. A legtöbb ide csatlakoztatott eszköznek saját meghajtója van. Ezek a port közvetlen elérésére szolgáló eszközök. Karaktereszközökről van szó, a főcsomópont-szám 99, az alcsomópont-szám 0. A sorban egymás után következő eszközök az alcsomópont számát fokozatosan növelve számozódnak. /dev/random vagy /dev/urandom Ezek a rendszermag véletlenszám-generátorai. A /dev/random nem-determinisztikus generátor, azaz a következő szám értékét nem lehet kitalálni az előzőekből. A rendszer hardverelemeinek entrópiáját használja fel a számok generálására. Ha elfogy a használható entrópia, akkor várnia kell, amíg újra összegyűlik annyi, hogy újabb számokat olvashasson ki belőle. A /dev/urandom hasonló elv szerint működik. Kezdetben ez is a 26
34 Fejezet 5. Eszközfájlok rendszerhardver entrópiáját használja, de ha ez elfogy, akkor is folytatja a számok küldését, egy ál-véletlenszám-generátor képlet segítségével. Ezt a módszert kevésbé biztonságosnak tartják, ha olyan életbe vágóan fontos célokról van szó, mint például titkos kulcspárok generálása. Ha a biztonság az elsődleges szempontod, akkor használd a /dev/random-ot, ha viszont a gyorsaság fontosabb, akkor megteszi a /dev/urandom is. Mindkettő karaktereszköz, főcsomópont-száma 1, alcsomópont-száma 8 a /dev/random eszköznek, és 9 a /dev/urandom eszköznek. /dev/zero Ennek segítségével egyszerűen juthatunk sok nullához. Valahányszor ezt az eszközt olvasod, 0-át ad vissza. Ez olyankor lehet hasznos, ha például fix hosszúságú fájlra van szükséged, de nem számít, mi a tartalma. Karaktereszköz, főcsomópont-száma 1, alcsomópont-száma 5. 27
35 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Üres lemezen az örökkévalóságig keresgélhetsz. Amikor telepíted vagy frissíted a rendszeredet, sok munkát kell végezned a lemezeiddel. Fájlrendszereket kell létrehoznod lemezeiden oly módon, hogy a fájlok tárolására alkalmasak legyenek, és be kell osztani a helyet a rendszer különböző részei számára. Ez a fejezet leírja mindezeket a kezdeti tennivalókat. Általában, ha egyszer a rendszert működőképessé tetted, nem kell még egyszer megcsinálni mindezt, kivéve a hajlékonylemezek esetében. Igazából akkor szükséges visszatérni ehhez a fejezethez, ha új lemezt adsz a rendszerhez, vagy finomítani szeretnéd a lemezhasználatot. A lemezek adminisztrálásának alapvető feladatai: A lemez formázása. Ez különféle dolgok előkészítését jelenti, mint például a hibás szektorok ellenőrzése. (Az (alacsony szintű) formázás mostanában nem szükséges a legtöbb merevlemez esetében.) A merevlemez particionálása. Ez akkor szükséges, ha több olyan célra szeretnéd használni, melyek feltehetően nem befolyásolják egymást. A particionálás egyik oka lehet különböző operációs rendszerek tárolása azonos lemezen. Másik ok lehet a felhasználók fájljainak elkülönítése a rendszerfájloktól, ami egyszerűsíti a biztonsági mentéseket és védi a rendszerfájlokat a sérüléstől. Megfelelő típusú fájlrendszer készítése az egyes partíciókon. A lemez semmit sem jelent a Linuxnak, amíg nincs rajta fájlrendszer; csak azután hozhatók létre és használhatók fájlok a lemezen. A különböző fájlrendszerek felcsatolása (mount) egyetlen fastruktúrába, akár automatikusan, akár kézzel. (A kézzel felcsatolt fájlrendszereket valószínűleg kézzel is kell lecsatolni.) A 7 fejezetben találhatunk információkat a virtuális memóriáról és a lemez gyorstárazásról (disk caching), melyeket szintén ismerni kell a lemezkezeléshez Az eszközök két fajtája A UNIX, és így a Linux is, két eszközfajtát ismer: a véletlen elérésű blokkeszközöket (mint például a lemezek) és a karaktereszközöket (mint például a szalagok vagy a soros vonalak), melyek közül egyesek soros-, mások véletlen elérésűek. Mindegyik támogatott eszközt a fájlrendszerben egy eszközfájl (device file) képviseli. Amikor egy eszközfájlba írsz vagy olvasol, az adat a megfelelő eszközhöz megy, illetve onnan jön. Ily módon nem szükséges speciális program (illetve programozási technika, mint például megszakítás elfogás, vagy a soros portok lekérdezése) az eszközök elérésére; például egy fájlt a nyomtatóra a következőképp is kiküldhetünk: $ cat filename > /dev/lp1 $ Az iménti sor kinyomtatja a fájlt (persze csak akkor, ha a nyomtató megérti a fájl formátumát). Ámbár az is igaz, hogy nem jó ötlet közvetlenül a nyomtatóra küldeni a fájt, mert ha ezt egyszerre többen teszik, az gondot okozhat. Ezért egy programot szokás használni a fájlok nyomtatóra küldésére. (Ez rendszerint a lpr nevet viseli.) Ez a program gondoskodik arról, hogy egyszerre csak egy fájl legyen nyomtatás alatt, és automatikusan küldi a következő 28
36 Fejezet 6. Lemezek és egyéb tárolóeszközök használata fájlt a nyomtatóra, mihelyt az előzővel végzett. Valami hasonló szervezés természetesen a legtöbb eszközhöz szükséges. Valójában ritkán kell magukkal az eszközfájlokkal közvetlenül dolgozni. Mivel az eszközök a fájlrendszer fájljaiként jelennek meg (a /dev könyvtárban), könnyű megnézni, milyen eszközfájlok léteznek, az ls vagy hasonló programmal. Az ls -l kimenete az első oszlopban a fájl típusát és engedélyeit tartalmazza. Például a rendszerem egyik soros eszközét megvizsgálva, ez kapjuk: $ ls -l /dev/ttys0 crw-rw-r-- 1 root dialout 4, 64 Aug 19 18:56 /dev/ttys0 $ Az első oszlop első karaktere, azaz a "c" a fenti "crw-rw-rw-"-ből a tájékozott felhasználónak elárulja, hogy ez egy karaktereszköz (character device). A hagyományos fájlok esetében ez az első karakter a "-", könyvtárakra (directory) "d", és blokkeszközökre "b". (Lásd az ls kézikönyv-oldalait.) Megjegyzendő, hogy általában minden lehetséges eszközfájl létezik, még akkor is, ha az eszköz ténylegesen nincs is beszerelve. Így ha például a rendszereden van egy /dev/sda fájl, ez önmagában még nem jelenti azt, hogy valóban van SCSI merevlemezed. Az összes eszközfájl létezése egyszerűbbé teszi a telepítőprogramok működését, és az új hardver hozzáadását, hisz nem kell a megfelelő paramétereket megkeresni az új eszközfájl létrehozásához Merevlemezek Ez az alfejezet a merevlemezekkel kapcsolatos szakkifejezések használatába vezet be. Ha már tisztában vagy ezekkel, nyugodtan átugorhatod ezt a részt. A 6-1 Ábra egy merevlemez fontos részeinek vázlatos rajza. A merevlemez egy vagy több korongból (platter) áll. 1 Ezen korongok egyik, vagy mindkét felülete (surface) egy mágneses tulajdonságokkal rendelkező anyaggal van bevonva, mely az adatokat rögzíti. Mindegyik felszínhez tartozik egy író-olvasó fej (read-write head), amely olvassa vagy módosítja a rögzített adatokat. A korongok közös tengelyen forognak; általában 5400 vagy 7200 fordulat/perc sebességgel, de a nagy sebességű merevlemezek ennél gyorsabban is foroghatnak, régebbi lemezek pedig lassabban. A fejek a korongok sugarának irányában mozognak; a fejek mozgása és a lemezek forgása együttesen lehetővé teszik, hogy a fejek a felszín tetszőleges pontját elérjék. A processzor (CPU) és a merevlemez a lemezvezérlőn (disk controller) keresztül kommunikálnak egymással. Ez mentesíti a számítógép többi részét attól, hogy tudniuk kelljen, hogyan kell a merevlemezzel kommunikálni, hisz a vezérlők segítségével az eltérő típusú merevlemezek egy egységes felületen keresztül érhetők el a számítógép többi része irányából. Ezért a számítógépnek csak azt kell mondania, hogy Hé, lemez! Addsza, amit akarok!, ahelyett, hogy egy hosszú és összetett elektromos jelsorozatot adna le, ami a fejet a megfelelő pozícióba viszi, és megvárná, hogy a lemez a megfelelő pozícióba forduljon a fej alatt stb. (Valójában a vezérlő illesztési felülete még így is elég összetett, de sokkal kevésbé, mint a közvetlen vezérlés lenne.) A vezérlőnek lehetnek még további feladatai is, például pufferelés, hibás szektorok automatikus cseréje. A fenti hardverismeretek általában elégségesek a legtöbb ember számára. Egy csomó más dolog is van még, mint például a motor, amely a korongokat forgatja és mozgatja a fejeket, az elektronika, amely a mechanikus részeket vezérli, de ezek általában nem tartoznak a legfontosabb dolgok közé a merevlemez működésének alapszintű megértését illetően. A felületek általában koncentrikus körökre, úgynevezett sávokra (track) vannak osztva, ezek pedig szektorokra (sector) oszlanak. A felosztás a merevlemezen való helymegadás és a lemezterület fájloknak történő lefoglalásában játszik szerepet. A merevlemez egy helyének meghatározásához mondhatjuk például, hogy 3. felület, 5. sáv, 7. szektor. Általában a szektorok száma minden sávon azonos, de néhány merevlemez több szektort helyez a külső 29
37 Fejezet 6. Lemezek és egyéb tárolóeszközök használata sávokra, mert ott azonos méretű szektorból több fér el. Általában egy szektor 512 byte-nyi adatot tartalmaz. A lemez nem képes ennél kevesebb adatot kezelni. Ábra 6-1. Egy merevlemez vázlatos rajza Mindegyik korong felülete azonos módon oszlik sávokra és szektorokra. Ez azt jelenti, hogy amikor az egyik felülethez tartozó fej egy sávon van, a többi felület fejei is az annak megfelelő sávon találhatók. Ezért az így összetartozó sávokat együttesen cilindernek (cylinder) nevezzük. Időbe telik, amíg a fejek egyik cilindertől a másikig elérnek, ezért célszerű az összetartozó adatokat (mondjuk egy fájl blokkjait) lehetőleg egy cilinderen elhelyezni, hogy ne kelljen ezen adatok olvasása közben a fejet mozgatni. Ez javítja a teljesítményt. Azonban nyilván nem mindig lehet így elhelyezni a fájlokat. Azokat a fájlokat, melyeknek különböző részei több cilinderen helyezkednek el, töredezettnek (fragmented) nevezzük. A felületek (illetve fejek), a cilinderek és a szektorok száma nagyon változatos; ezen számok megadása jelenti a merevlemez geometriájának definiálását. A geometria általában egy speciális, elemről táplált memóriaelemben van 30
38 Fejezet 6. Lemezek és egyéb tárolóeszközök használata tárolva, amit CMOS RAM-nak nevezünk. Innét veszi az operációs rendszer a meghajtóprogram inicializálásához szükséges információkat a rendszerindításkor. (A legtöbb modern BIOS-ban beállítható automatikus felismerés is, ekkor mindig a gép indulásakor érvényes értékek állítódnak be. - a lektor) Szerencsétlen módon a BIOS-nak 2 tervezési korlátai vannak, ami lehetetlenné teszi 1024-nél nagyobb számú sáv megadását a CMOS RAM-ban, ez az érték pedig általában nem elegendő a nagy merevlemezekhez. Ezt kikerülendő, a merevlemez-vezérlő hazudik a geometriával kapcsolatban és címfordítást végez olyan alakra, amit a számítógép el tud fogadni. Például egy merevlemeznek lehet 8 feje, 2048 sávja és sávonként 35 szektora. 3 A lemezvezérlő azt hazudhatja a számítógépnek, hogy 16 feje, 1024 sávja és sávonként 35 szektora van. Így nem haladja meg az 1024-es sávhatárt, de le kell fordítania a számítógép által megadott adatokat: felezi a fejszámot és duplázza a sávszámot. A számítások ennél bonyolultabbak is lehetnek a gyakorlatban, mert a számok nem mindig jönnek ki olyan kerek értékre, mint a példában, de ezek a részletek nem fontosak az alapelvek szempontjából. Ez a fordítás eltorzítja az operációs rendszer látását a lemez elrendezésével kapcsolatban, így használhatatlanná teszi a fentebb említett "minden adat egy cilinderen" sebességjavító trükköt. A fordítás csak az IDE lemezek problémája. Az SCSI lemezek soros szektorszámozást használnak, azaz a vezérlő egyetlen sorszámot fordít egy fej-cilinder-szektor hármasra, és a processzor is teljesen másként kommunikál a vezérlővel, így nem lép fel ez a probléma. Azt azért megjegyezzük, hogy a számítógépnek egyáltalán nem is kell tudnia az SCSI lemezek valódi geometriájáról. Mivel a Linux gyakran semmit sem tud a lemez valódi geometriájáról, a fájlrendszerei nem is próbálják a fájlokat egy cilinderen belül tartani. Ehelyett egymást követő sorszámú szektorokat próbálnak adni a fájlok részeinek, ami majdnem mindig hasonló teljesítményt ad. Ezt a kérdést tovább bonyolítja a merevlemez-vezérlő beépített gyorstár memóriája (cache memory), és az automatikus előreolvasás esetleges megléte. Mindegyik merevlemezt különálló eszközfájl jeleníti meg. Általában 2 vagy 4 IDE merevlemez lehet egy rendszerben. Ezek rendre a /dev/hda, /dev/hdb, /dev/hdc és /dev/hdd eszközfájlokon keresztül érhetők el. Az SCSI merevlemezek eszközfájljai a /dev/sda, /dev/sdb stb. Hasonló elnevezési szokások léteznek a többi merevlemez-típusra is; erről bővebben a 5 fejezet. Megjegyzendő, hogy a merevlemez eszközfájlok az egész lemezhez engedélyezik a hozzáférést, nem törődve a partíciókkal (lásd lentebb), ezért könnyű a partíciókat és az adatokat összezavarni, ha nem vagy óvatos. A lemez eszközfájlokat általában csak a "master boot record" (MBR) elérésére használják (lásd lentebb) Hajlékonylemezek A hajlékonylemez tulajdonképpen egy hajlékony membrán, melynek egyik vagy mindkét oldala a merevlemezéhez hasonló mágneses anyaggal van bevonva. A hajlékonylemeznek önmagában nincs író-olvasó feje, az a meghajtó részét képezi. A hajlékonylemez megfelel a merevlemez egy korongjának, de kivehető, és egy meghajtó különböző hajlékonylemezek olvasására is alkalmas, míg a merevlemez egy oszthatatlan egység. Akárcsak a merevlemez, a hajlékonylemez is sávokra és szektorokra oszlik (és a két oldalán levő, egymásnak megfelelő sávot együttesen cilindernek nevezzük), de sokkal kevesebb van belőlük, mint a merevlemezek esetében. Egy hajlékonylemez meghajtó rendszerint többféle típusú lemezt képes kezelni; például egy 3,5 hüvelykes meghajtó 720 kb és 1.44 MB kapacitású lemezeket is tud írni és olvasni. Mivel az operációs rendszernek ismernie kell a lemez méretét, sok eszközfájl van a hajlékonylemezek kezelésére, mindegyik típus/meghajtó kombinációra egy-egy. Így például ha a /dev/fd0h1440 az első hajlékonylemezes egység (fd0), akkor ennek egy 3,5 hüvelykes meghajtónak kell lennie, melyben egy megfelelő méretű nagy sűrűségű (high density, HD) lemez van, 1440 kb kapacitással (1440), azaz egy normál 3,5 hüvelykes HD hajlékonylemez. 31
39 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Bár a hajlékonylemez meghajtók nevei bonyolultak, a Linuxnak egy speciális hajlékonylemez eszköztípusa van, mely automatikusan észleli a meghajtóbeli lemez típusát. Ez úgy működik, hogy az újonnan betett hajlékonylemez első szektorát próbálja újraolvasni különböző formátumok feltételezése mellett, amíg a megfelelő paraméterekre nem talál. Ez természetesen megköveteli, hogy a hajlékonylemez előzetesen formázva legyen. Az automatikus eszközök: /dev/fd0, /dev/fd1 stb. Az automatikus eszköz által használt paramétereket a setfdprm paranccsal állíthatjuk be. Ez akkor lehet hasznos, ha olyan lemezeket használunk, melyeknek a megszokottól eltérő szektorszámuk van, vagy az automatikus érzékelés valamiért sikertelen és a megfelelő eszközfájl hiányzik. A Linux képes kezelni a nem szabványos formátumú hajlékonylemezeket is. Ezek némelyike speciális formázóprogramot igényel. Ezeket a lemeztípusokat most nem tárgyaljuk, de érdemes megnézni az /etc/fdprm fájlt, melyben a setfdprm által ismert beállítások vannak. Az operációs rendszernek tudnia kell arról, ha lemezt cserélünk a hajlékonylemez meghajtóban, például azért, hogy az egyikről a pufferbe került információ ne keveredjen a másik tartalmával. Sajnálatos módon azonban az erre használt jelző vonal néha hibás, vagy ami még rosszabb nem is mindig észlelhető, amikor MS-DOS-on belülről használjuk az egységet. Ha furcsa problémák adódnak a hajlékonylemezek használatakor, ez lehet a hiba oka. Az egyetlen megoldást a meghajtó javítása jelenti CD-ROM-ok A CD-ROM meghajtó műanyaggal bevont lemezeket olvas optikai úton. Az információ a lemez felületén 4 kis "lyukak" formájában tárolódik, melyek spirálisan helyezkednek el a középponttól a peremig terjedően. A meghajtó lézernyalábot irányít a spirálra, és a visszavert fény alapján dönti el, hogy az adott pontban volt-e lyuk vagy sem. Ily módon könnyen lehet biteket, azaz információt kódolni. A többi már gyerekjáték, színtiszta mechanika. A CD-ROM eszközök a merevlemezekhez képest lassúak. Egy átlagos merevlemeznek 15 ms elérési ideje van, míg egy gyors CD-ROM-nak is tizedmásodpercek szükségesek a pozicionáláshoz. Az adatátviteli sebesség elég magas; több száz kilobyte lehet másodpercenként. A lassúság azt jelenti, hogy a CD-ROM meghajtókat kényelmetlenebb használni merevlemez helyett, de azért lehetséges. (Néhány Linux terjesztés "élő" (live) fájlrendszereket is kínál CD-ROM-on. Ezáltal feleslegessé válik a fájlok merevlemezre másolása, ami megkönnyíti a telepítést, és kisebb lesz a helyfoglalás is. Ennek ára a lassabb működés, és persze a lefoglalt CD-ROM.) Új szoftver telepítésekor a CD-ROM nagyon jó, mert ilyenkor a nagy sebesség nem annyira fontos. Adatokat sokféleképpen rendezhetünk el egy CD-ROM-on. A legnépszerűbb módot az ISO 9660 nemzetközi szabvány határozza meg. Ez egy nagyon minimális fájlrendszert ad meg, amely még az MS-DOS fájlrendszerénél is durvább. Másrészről ezt a minimumot minden operációs rendszer képes leképezni a saját fájlrendszerére. Normális UNIX-os célokra az ISO 9660 fájlrendszer nem használható, ezért kifejlesztették ezen szabvány egy kiterjesztését, melyet Rock Ridge kiterjesztésnek nevezünk. A Rock Ridge hosszabb fájlneveket, szimbolikus hivatkozásokat (symbolic link), és sok hasznos dolgot enged meg, melyek által a CD-ROM többé-kevésbé egy modern UNIX fájlrendszernek megfelelően használható. További előny, hogy a Rock Ridge fájlrendszer egyben érvényes ISO 9660 fájlrendszer is, így a nem UNIX rendszerek is tudják használni. A Linux támogatja az eredeti ISO 9660 és a Rock Ridge kiterjesztésű fájlrendszereket is; a kiterjesztés meglétét automatikusan észleli. A fájlrendszer azonban csak a problémák egyik része. A legtöbb, nem Linux alá szánt CD-ROM speciális programokat igényel az adatok elérésére, és ezek a programok többnyire nem futnak Linux alól. (Hacsak nem a Linux MS-DOS emulátora, a "dosemu", vagy a "wine" nevű Windows-emulátor alól. 5 Létezik még a VMware is, ami kereskedelmi termék, és szoftveresen emulál egy teljes x86-os gépet. 6 ). 32
40 Fejezet 6. Lemezek és egyéb tárolóeszközök használata A CD-ROM eszközöket a megfelelő eszközfájlon keresztül érhetjük el. Sok módja lehetséges a CD-ROM számítógéphez való csatlakoztatásának: SCSI-n, hangkártyán, EIDE-csatolón keresztül. A részletes információk kívül esnek ezen könyv keretein, de a kapcsolat típusa meghatározza az eszközfájlt Szalagos egységek A szalagos egységek a normál zenei magnószalaghoz hasonló 7 szalagokat használnak. A szalag természeténél fogva soros elérésű, ami azt jelenti, hogy egy adott részének eléréséhez először át kell jutni az előtte levő adatokon. Ezzel ellentétben egy lemez véletlenszerűen is elérhető, azaz közvetlenül ugorhatunk a lemez tetszőleges részére. A soros elérés így érthetően lassabbá teszi a szalagok használatát. Másrészt azonban a szalagokat viszonylag olcsó előállítani, mivel nem fontos, hogy gyorsak legyenek. Viszonylag könnyen növelhető a szalag hossza, azaz nagy tárolókapacitásúvá is tehetők. Ez alkalmassá teszi a szalagokat olyan feladatokra, mint például az archiválás, biztonsági mentés, melyek nem kívánnak nagy sebességet, de előnyösebbek, ha olcsón tudunk nagy adattömeget tárolni Formázás A formázás az a folyamat, melynek során a mágneses adathordozóra jeleket írunk, melyek a sávokat és szektorokat jelölik meg. Egy lemez formázása előtt a mágneses felszín csak össze-vissza jeleket tartalmaz. A formázás bizonyos rendet visz ebbe a káoszba oly módon, hogy lényegében vonalakat húz a sáv- és szektorhatárokra. A pontos részletek ettől egy kicsit eltérnek, de most ez lényegtelen. Az viszont fontos, hogy formázás nélkül nem használhatók a lemezek. A szóhasználat kicsit zavaros itt: MS-DOS és MS Windows alatt a "formázás" a fentieken kívül még a fájlrendszer létrehozását (lásd lentebb) is jelenti. Ott a két folyamat gyakran keveredik, különösen a hajlékonylemezek esetében. Ha a kettőt fontos megkülönböztetni, akkor a valódi formázást alacsony szintű formázásnak, a fájlrendszer létrehozását magas szintű formázásnak nevezik. Unixos körökben ezeket a folyamatokat formázásnak illetve fájlrendszer létrehozásnak nevezik. Ezt a szóhasználatot követjük a továbbiakban. IDE és SCSI lemezeknél a formázást többnyire már a gyárban elvégzik, és sosem kell megismételni, így általában nem is kell vele törődni. A merevlemezek "házi" formázása rosszabb eredményekhez vezethet, mert például a lemezt speciálisan kell formázni, hogy a hibás szektorok automatikus áthelyezése működhessen. A merevlemezek, melyeket meg kell vagy meg lehet formázni, gyakran igényelnek speciális programot, mivel a formázás meghajtón belüli logikája meghajtóról meghajtóra más és más. A formázó program gyakran a vezérlőben lévő BIOS-ban van, vagy egy MS-DOS program; egyik sem használható könnyen Linux alól. (Igaz, többnyire nincs is rájuk szükség.) A formázás során rossz "foltokat" észlelhetünk a lemezen, amit hibás blokknak vagy hibás szektornak nevezünk. Ezeket néha maga a meghajtó is tudja kezelni, de még ebben az esetben is tennünk kell valamit, hogy biztosan elkerüljük a hibás részek használatát, ha a hibás szektorok száma nagyon megnövekszik. Ennek logikája bele van építve a fájlrendszerbe; a hibás szektorokról szóló információ megadásáról lásd a lentieket. Egy másik lehetőség, hogy létrehozunk egy olyan partíciót, amely csak a lemez rossz részeit fedi le; ez jó ötlet lehet, ha a hibás rész nagyon nagy, mivel ez megzavarhatja a fájlrendszerek működését. A hajlékonylemezeket az fdformat paranccsal formázhatjuk. A megadott hajlékonylemez eszközfájl az egyetlen paraméter. Például a következő parancs egy 3,5 hüvelykes HD hajlékonylemezt formáz meg az első meghajtóban: $ fdformat /dev/fd0h
41 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kb. Formatting... done Verifying... done $ Megjegyzendő, hogy ha automatikusan érzékelő eszközfájlt akarunk használni (mint például a /dev/fd0), először a setfdprm paranccsal be kell állítani az eszköz paramétereit. A fentivel egyező eredmény érhető el az alábbi módon: $ setfdprm /dev/fd0 1440/1440 $ fdformat /dev/fd0 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kb. Formatting... done Verifying... done $ Általában kényelmesebb a megfelelő eszközfájlt használni. Megjegyezzük, hogy nem bölcs dolog egy hajlékonylemezt nagyobb kapacitásúra formázni, mint amire tervezve lett. Az fdformat érvényesíti is a hajlékonylemezt, azaz megkeresi a hibás blokkokat. Többször ki is próbálja mindegyiket, ami jól hallhatóan megváltoztatja a meghajtó hangját. Ha a lemez csak kicsit hibás (mert például poros az író/olvasó fej), az fdformat nem törődik vele, de egy valódi probléma megszakítja az érvényesítési folyamatot. A rendszermag ekkor naplóüzenetet (log message) küld minden egyes megtalált I/O hibáról; ezek az üzenetek a konzolra vagy a syslog használata esetén az /usr/adm/messages fájlba kerülnek. Maga az fdformat nem mondja meg, hol van a hiba, ami többnyire nem probléma, mert a hajlékonylemezek elég olcsók, és már egy hibás blokk miatt is érdemes inkább kidobni őket, mintsem kockáztatni az adatbiztonságot. $ fdformat /dev/fd0h1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kb. Formatting... done Verifying... read: Unknown error $ A badblocks parancs arra használható, hogy egy merev- vagy hajlékonylemezen, esetleg egy partíción a hibás blokkokat megkeressük. Ez nem formázza a lemezt, így egy már létező fájlrendszer esetén is használható. Például egy normál hajlékonylemez esetén két hibás blokkal a következőt kapjuk: $ badblocks /dev/fd0h $ A badblocks parancs a megtalált hibás blokkok sorszámát adja meg. A legtöbb fájlrendszer képes kikerülni a hibás blokkok használatát: egy listát tartanak fenn az ismert hibás szektorokról, amely a fájlrendszer létrehozásakor veszi fel kezdőállapotát, és a rendszer később is képes módosítani azt. A hibás blokkok kezdeti keresése az mkfs paranccsal is elvégezhető (ez hozza létre a fájlrendszert), de későbbi ellenőrzést a badblocks paranccsal kezdeményezhetünk, és az esetleges új hibás blokkokat az fsck paranccsal adhatjuk hozzá a listához. Később részletesen szólunk az mkfs és fsck parancsokról. Sok modern lemez automatikusan észleli a hibás blokkokat, és megkísérli kijavítani egy speciális, e célra fenntartott jó blokk használatba vételével. Ez az operációs rendszer számára észrevétlenül zajlik. Ha kíváncsi vagy, képes-e erre 34
42 Fejezet 6. Lemezek és egyéb tárolóeszközök használata a merevlemezed, a hozzá mellékelt kézikönyvben nézz utána. Persze még az ilyen lemezek is hibázhatnak, ha a hibás blokkok száma nagyon megnő, de jó eséllyel ez már csak akkor következik be, amikor a lemez amúgy is teljesen használhatatlanná vált Partíciók A merevlemezek több partícióra oszthatók, melyek mindegyike külön merevlemezként viselkedik. Az alapötlet az, hogy ha egy merevlemezed van, de mondjuk két operációs rendszered, a lemezt két partícióra oszthatod az egyes operációs rendszerek számára. Az operációs rendszerek csak a saját partíciójukat használják, a másikról nem vesznek tudomást, így képesek békésen egymás mellett élni azonos merevlemezen. (Ugyanakkor például a Linux képes más rendszerek [FAT32, NTFS stb.] partícióit használni, valamint komolyabb Linux rendszer maga is több partíción helyezkedik el. - a lektor) A partíciók nélkül külön merevlemez kellene minden operációs rendszer számára. A hajlékonylemezeket nem particionáljuk. Ugyan nincs technikai ok, mely ez ellen szólna, de olyan kicsik, hogy nem lenne értelme tovább osztani őket. A CD-ROM-ok rendszerint szintén nem particionáltak, mivel egyszerűbb egyetlen nagy lemezként használni őket, s csak igen ritkán kell több operációs rendszert egyetlen CD-ROM-ra feltenni. (A több menetben írt CD lemez nem tévesztendő össze a több partícióval. - a lektor) Az MBR, a rendszerindító szektorok és a partíciós tábla A merevlemez particionálásáról szóló információk a lemez első szektorában (azaz az első lemezfelület első sávjának első szektorában) tárolódnak. Ez a legelső szektor a lemez master boot record-ja (MBR); ezt a szektort olvassa be a BIOS és indítja el tartalmát, amikor a számítógép elindul. Az MBR egy kis programot tartalmaz, mely beolvassa a partíciós táblát, ellenőrzi, melyik partíció az aktív (azaz melyiken van rendszerindító jelzés), és beolvassa annak az első szektorát, amit rendszerindító szektornak (boot sector) nevezünk. (Az MBR szintén egy rendszerindító szektor, de különleges státusza, és emiatt különleges neve van.) Ez a szektor egy másik kis programot tartalmaz, mely beolvassa az operációs rendszer első részeit az adott partícióról (ha indítható), és elindítja azt. A particionálási séma nincs beépítve a hardverbe vagy a BIOS-ba. Ez csak egy megállapodás, amelyet sok operációs rendszer követ. Vannak ugyan kivételek, amelyek nem követik, de ezek ritkák. Néhány operációs rendszer támogatja a partíciókat, de lefoglal magának egy partíciót, és a saját belső particionálási módszerét használja ezen belül. Ez utóbbiak békésen együtt tudnak működni a többi operációs rendszerrel (például a Linuxszal), de a partíciókat nem támogatók nem tudnak egy lemezen megférni egy másik operációs rendszerrel. Óvintézkedésként jó ötlet leírni a partíciós táblát egy darab papírra, így még ha teljesen össze is zavarodik minden, nem veszted el az összes fájlodat. A szükséges információkhoz az fdisk -l paranccsal juthatunk hozzá, majd szükség esetén a rossz partíciós táblát az fdisk paranccsal tudjuk helyreállítani. $ fdisk -l /dev/hda Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders Units = cylinders of 855 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda Linux swap /dev/hda Linux native /dev/hda Linux native /dev/hda Extended /dev/hda Linux native /dev/hda Linux native 35
43 Fejezet 6. Lemezek és egyéb tárolóeszközök használata $ Kiterjesztett (extended) és logikai partíciók A PC-s merevlemezek eredeti particionálási sémája csak négy partíciót engedett meg. Ez hamarosan kevésnek bizonyult: részben azért, mert néha négynél több operációs rendszert kellett egy lemezre telepíteni (Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD vagy Windows/NT, hogy csak néhányat említsünk), de inkább azért, mert gyakran jó ötlet több partíciót is egy operációs rendszerhez rendelni. Például a swap területet jobb külön partícióra helyezni a nagyobb sebesség elérése céljából. (Erről részletesebben szólunk később.) E tervezési probléma megoldására találták fel a kiterjesztett partíciókat (extended partition). Ez azt jelenti, hogy egy ún. elsődleges partíciót (primary partition) al-partíciókra oszthatunk. Az elsődleges partíciót, melyet felosztunk, kiterjesztett partíciónak, míg ennek al-partícióit logikai partícióknak nevezzük. Ezek úgy viselkednek, mint az elsődleges partíciók, de más a létrehozásuk módja. Sebességkülönbség nincs köztük. Egy merevlemez partíciós szerkezetét ábrázolja a 6-2 Ábra. A lemez három elsődleges partícióra oszlik, melyek közül a második két logikai partícióra bomlik tovább. A lemez egy része nincs particionálva. Az egész lemeznek, és minden elsődleges partíciónak van rendszerindító szektora. Ábra 6-2. Egy példa a merevlemez particionálására 36
44 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Partíció típusok A partíciós táblák (az MBR-beli egyetlen és a kiterjesztett partícióbeliek is) egy-egy byte-ot tartalmaznak partíciónként, melyek a partíció típusát határozzák meg. Ez a partíciót használó operációs rendszert, vagy a partíció célját próbálja azonosítani. A típusok definiálásának célja az, hogy védekezzünk az ellen, hogy két operációs rendszer véletlenül ugyanazt a partíciót használja. Ennek ellenére az operációs rendszerek nem igazán törődnek a típus byte-tal; például a Linuxot sem érdekli az értéke. Még rosszabb eset, hogy néhány rendszer helytelenül használja; például a DR-DOS egyes változatai figyelmen kívül hagyják a byte legjellegzetesebb bitjét, míg más változatai nem. Nincs szabványügyi hivatal, amely előírná, mit jelentenek az egyes értékek, de néhány gyakran használt értéket feltüntettünk az 6-1 Táblázatban. A teljes lista a Linux fdisk parancsával is megkapható. Táblázat 6-1. Partíció típusok (a Linux fdisk programjából) 0 Empty (üres) 40 Venix Amoeba BBT 1 DOS 12-bit FAT 51 Novell? a5 BSD/386 2 XENIX root 52 Microport b7 BSDI fs 3 XENIX usr 63 GNU HURD b8 BSDI swap 4 DOS 16-bit FAT <32M 5 Extended (kiterjesztett) 6 DOS 16-bit >=32M 64 Novell c7 Syrinx 75 PC/IX db CP/M 80 Old MINIX e1 DOS access 7 OS/2 HPFS 81 Linux/MINIX e3 DOS R/O 8 AIX 82 Linux swap f2 DOS secondary 9 AIX bootable (indítható) a OS/2 Boot Manager 83 Linux native ff BBT 93 Amoeba A merevlemez particionálása Sok program létezik a partíciók létrehozására és törlésére. A legtöbb operációs rendszernek van sajátja, és jó ötlet minden operációs rendszer sajátját használni, mert esetleg képes néhány speciális dologra, amely csak az adott rendszerre jellemző, és a többi particionáló program ezt nem tudja. A legtöbb ilyen programot fdisk -nek nevezik, így a Linuxét, illetve annak változatait is. A Linux fdisk parancsának részletes használata megtalálható a parancs kézikönyv oldalán. A cfdisk parancs hasonló az fdisk-hez, de kellemesebb (teljes képernyős) felhasználói felülete van. Ha IDE lemezeket használunk, a rendszerindító partíciónak (tehát amelyen az indítható rendszermag-fájlok vannak) az első 1024 cilinderen belül kell lennie. Ez azért van, mert a lemez a BIOS-tól kap vezérlést a rendszerindítás során 37
45 Fejezet 6. Lemezek és egyéb tárolóeszközök használata (amíg nem lép be a védett módba), és a BIOS legfeljebb 1024 cilindert tud kezelni. Néha lehetséges olyan partícióról is indulni, mely csak részben van benne az első 1024 cilinderben. Ez abban az esetben működik, ha a BIOS számára szükséges fájlok az első 1024 cilinderen belül vannak. Mivel ezt nehéz biztosítani, nagyon rossz ötlet ezzel próbálkozni, mivel egy rendszermag frissítés vagy töredezettségmentesítés indíthatatlanná teheti a rendszert. Ezért legbiztosabb, ha a rendszerindító partíció az első 1024 cilinderen belül helyezkedik el. 8. Néhány újabb BIOS változat és IDE lemez tud 1024-nél több cilindert kezelni. Ha biztosan ilyen a rendszerünk, erről a problémáról elfeledkezhetünk. Minden partíción páros számú szektornak kell lennie, mert a Linux fájlrendszerei 1 kb-os blokkméretet (két szektor) használnak. Páratlan szektorszám esetén az utolsó használhatatlan marad. Ez nem okoz nagy problémát, de csúnya, és az fdisk néhány változata figyelmeztet rá. Egy partíció méretének megváltoztatása általában a következő módon zajlik: lementünk mindent a partícióról, töröljük a partíciót, újat hozunk létre, majd visszaállítjuk az eredeti adatokat az új partíción. Ha a partíciót megnöveljük, a szomszédos partíciókat is át kell állítanunk (és onnan is adatokat menteni, majd visszaállítani). Mivel a partícióméret megváltoztatása fájdalmas lehet, célszerű már kezdetben jó partícióméreteket választani, vagy hatékony biztonsági mentőrendszert használni. Ha a telepítés módja nem követel sok emberi beavatkozást (mint például CD-ROM-ról, ellentétben a hajlékonylemezekről történő telepítéssel), könnyen eljátszhatunk a különböző lehetséges partícióbeállításokkal. Mivel ilyenkor még nincsenek elmentendő adataink, nem jelent problémát a partíciók többszöri átméretezése. Létezik egy MS-DOS program, a fips 9, mely az MS-DOS partíciót méretezi át mentés és visszaállítás nélkül, de más fájlrendszerekre nem létezik ilyen nem destruktív particionáló program Eszközfájlok és partíciók Minden partíciónak és kiterjesztett partíciónak saját eszközfájlja van. Az elnevezési megállapodás az, hogy a partíciószám követi a teljes lemez azonosítóját. Az elsődleges partíciók száma 1-4-ig terjed (függetlenül attól, hogy valójában mennyi elsődleges van), a logikai partícióké 5-től kezdődik (függetlenül attól, melyik elsődleges partícióban foglalnak helyet). Például a /dev/hda1 eszközfájl az első IDE lemez első elsődleges partíciója, míg a /dev/sdb7 a harmadik logikai partíció a második SCSI lemezen Fájlrendszerek Mik a fájlrendszerek? Fájlrendszeren (filesystem) azokat a módszereket és adatstruktúrákat értjük, melyeket egy operációs rendszer használ egy lemez vagy partíció fájljainak kezelésére; azaz ahogyan a fájlok elrendeződnek a lemezen. Ezt a szót még a lemez adott típusú fájlrendszert tartalmazó partíciójára is használják, vagy csak a típus megjelölésekor. Így például mondhatjuk, hogy Két fájlrendszerem van., ami azt jelenti, hogy két partíciónk van, melyeken a fájlokat tároljuk. Azt is mondhatjuk, hogy valaki kiterjesztett fájlrendszert használ, ami viszont az általa használt fájlrendszer típusát jelenti. A lemez (vagy partíció) és a rajta lévő fájlrendszer közti különbség nagyon fontos. Néhány program, mint például a fájlrendszereket létrehozó programok, közvetlenül a lemez szektoraival dolgoznak. Ilyen program egy már esetleg meglévő fájlrendszert súlyosan megrongálhat, vagy meg is semmisíthet. A legtöbb program viszont csak a fájlrendszert használva ír a lemezre, ezért ezek csak megfelelő fájlrendszert már tartalmazó partíción működnek. 38
46 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Mielőtt egy lemezt vagy partíciót fájlrendszerként kezdünk használni, inicializálni kell, és a nyilvántartó adatstruktúrákat a lemezre kell írni. Ezt a folyamatot fájlrendszer készítésnek nevezzük. A legtöbb UNIX fájlrendszernek hasonló az általános felépítése, bár a részletek egy kicsit változhatnak. A központi fogalmak: szuperblokk, inode, adatblokk, könyvtárblokk és az indirekció blokk. A szuperblokk a fájlrendszer egészéről tartalmaz információkat, mint például a teljes méret. A szuperblokk pontos tartalma fájlrendszerfüggő. Az inode-ok egy-egy fájl minden adatát tartalmazzák a nevén kívül. A név ugyanis a könyvtárban tárolódik az inode sorszámával együtt. Egy könyvtárbejegyzés a fájlnévből és a fájlt jelképező inode számából áll. Az inode több adatblokk sorszámát tartalmazza, melyek a fájl adatait tárolják. Az inode-ban azonban csak néhány adatblokk sorszámának van hely, és ha ennél több szükséges, automatikusan több terület kerül lefoglalásra. Ezek a dinamikusan lefoglalt blokkok az indirekt blokkok; a név azt jelzi, hogy az adatblokk megtalálásához előbb az indirekt blokkban kell megkeresni a megfelelő blokk sorszámát. A UNIX fájlrendszerek rendszerint megengedik a fájlbeli lyukak (hole) létrehozását (lásd az lseek() rendszerhívás kézikönyv oldalát), ami azt jelenti, hogy a fájlrendszer megjegyzi, hogy a fájl egy adott helyén egymás után adott számú 0 byte van, de nem foglal ezen nullák számára blokkot. Ez kisebb lemezhasználatot eredményez. Egymást követő nullák gyakran előfordulnak kis bináris programokban, a Linux megosztott programkönyvtáraiban, adatbázisokban és néhány más esetben. (A lyukak megvalósítása úgy történik, hogy egy speciális érték kerül beírásra az adatblokk sorszámának helyére az inode-ban vagy az indirekt blokkban. Ez a speciális érték azt jelenti, hogy a fájl azon részéhez nem tartozik adatblokk, azaz lyuk van a fájlban.) A fájlrendszerek galériája A Linux sokféle fájlrendszer típust ismer. Az írás pillanatában a legfontosabbak: minix A legrégibb, vélhetőleg a legmegbízhatóbb, de korlátozottak a lehetőségei. (Néhány időbélyeg hiányzik, legfeljebb 30 karakteresek a fájlnevek, legfeljebb 64 MB-os fájlrendszerek.) xia A minix módosított változata, melyben megemelték a fájlok és fájlnevek méretére vonatkozó korlátokat, de egyéb új lehetőségeket nem vezettek be. Nem túl népszerű, de a beszámolók szerint nagyon jól működik. ext3 Az ext3 rendelkezik az ext2 fájlrendszer minden képességével. A különbség abban áll, hogy naplózással is ellátták, ami javítja a teljesítményét és rendszerösszeomlás esetén lerövidíti a helyreállítási időt. Népszerűbb, mint az ext2. ext2 A Linux alap fájlrendszerei közül a legtöbb szolgáltatást nyújtja. A tervezése biztosítja a felfelé kompatibilitást, azaz az új változatok bevezetése esetén nem kell újra generálni a létező fájlrendszereket. 39
47 Fejezet 6. Lemezek és egyéb tárolóeszközök használata ext A ext2 régebbi változata, amely nem kompatibilis felfelé. Új rendszer telepítésekor gyakorlatilag nem használják, és szinte mindenki konvertálta már ext2 fájlrendszerre a régi ext fájlrendszereit. reiserfs Robusztus fájlrendszer. A naplózás csökkenti az adatvesztés esélyét. Ezt egy olyan mechanizmussal érik el, melynek során minden elvégzendő vagy elvégzett művelet rögzítésre kerül. Így a fájlrendszer igen könnyen kijavítja magát, például a nem megfelelő leállítás során keletkezett hibákat. Létezik továbbá sok külső fájlrendszer típushoz is támogatás, hogy könnyebben lehessen adatokat cserélni más operációs rendszerekkel. Ezek a linuxos fájlrendszerekhez hasonlóan működnek, de esetenként nem tudják a UNIX összes lehetőségét biztosítani, vagy furcsa korlátaik, egyéb hiányosságaik vannak. msdos Kompatibilis az MS-DOS (valamint az OS/2 és a Windows NT) FAT fájlrendszereivel. umsdos Az msdos fájlrendszer kiterjesztése oly módon, hogy Linux alól hosszú fájlnevek, tulajdonosok, engedélyek, hivatkozások (link) és eszközfájlok is használhatók legyenek. Ezzel lehetséges egy normál msdos fájlrendszert használni a Linux tárolására, azaz nem szükséges külön partíció a Linuxnak. vfat A FAT fájlrendszer FAT32 néven ismert kiterjesztése, amely képes nagyobb lemezméreteket kezelni, mint elődje. A legtöbb MS Windows lemez vfat fájlrendszert tartalmaz. iso9660 A szabványos CD-ROM fájlrendszer; a népszerű Rock Ridge kiterjesztés (amely a hosszú fájlneveket engedélyezi) szükség esetén automatikusan bekapcsolódik. nfs Hálózati fájlrendszer, mely megengedi a fájlok több számítógép közötti megosztását. 40
48 Fejezet 6. Lemezek és egyéb tárolóeszközök használata smbfs Szintén hálózati fájlrendszer, kifejezetten MS Windowst futtató számítógépekkel való fájlmegosztásra. Kompatibilis a Windows fájlmegosztási protokolljaival. hpfs Az OS/2 fájlrendszere. sysv SystemV/386, Coherent, és Xenix fájlrendszerek. A fájlrendszer kiválasztása a helyzettől függ. Kompatibilitási vagy egyéb okok néha rákényszerítenek egy-egy nem-linuxos típus használatára. Ha van szabad választásunk, általában a legbölcsebb az ext3 választása, mivel rendelkezik az ext2 összes előnyével, naplózással kiegészítve. Egy különleges fájlrendszertípus a proc, mely általában a /proc alatt érhető el, és ami igaziból nem fájlrendszer, habár úgy néz ki. A proc fájlrendszer megkönnyíti a rendszermag néhány adatstruktúrájának elérését, mint például a processzek neveinek listája (innen a név). A rendszermag ezeket az adatstruktúrákat fájlrendszerként jeleníti meg, és így azok a szokásos fájlkezelő eszközökkel befolyásolhatók. Például a processzek listázása a következő módon is lehetséges: $ ls -l /proc total 0 dr-xr-xr-x 4 root root 0 Jan 31 20:37 1 dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63 dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94 dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95 dr-xr-xr-x 4 root users 0 Jan 31 20:37 98 dr-xr-xr-x 4 liw users 0 Jan 31 20: r--r--r-- 1 root root 0 Jan 31 20:37 devices -r--r--r-- 1 root root 0 Jan 31 20:37 dma -r--r--r-- 1 root root 0 Jan 31 20:37 filesystems -r--r--r-- 1 root root 0 Jan 31 20:37 interrupts -r root root Jan 31 20:37 kcore -r--r--r-- 1 root root 0 Jan 31 11:50 kmsg -r--r--r-- 1 root root 0 Jan 31 20:37 ksyms -r--r--r-- 1 root root 0 Jan 31 11:51 loadavg -r--r--r-- 1 root root 0 Jan 31 20:37 meminfo -r--r--r-- 1 root root 0 Jan 31 20:37 modules dr-xr-xr-x 2 root root 0 Jan 31 20:37 net dr-xr-xr-x 4 root root 0 Jan 31 20:37 self -r--r--r-- 1 root root 0 Jan 31 20:37 stat -r--r--r-- 1 root root 0 Jan 31 20:37 uptime -r--r--r-- 1 root root 0 Jan 31 20:37 41
49 Fejezet 6. Lemezek és egyéb tárolóeszközök használata version $ (Megjegyzendő, hogy van néhány extra fájl, ami nem felel meg egy processznek sem, valamint hogy a fenti listát rövidítettük.) Hangsúlyozzuk, hogy bár a proc fájlrendszer úgy néz ki, mint egy normális fájlrendszer, valójában semmi köze a lemezekhez, egyedül a rendszermag "képzeletében" létezik. A proc fájlrendszerre való hivatkozás rendszermag hívássá alakul, és a rendszermag ad olyan választ, mintha fájlokról lenne szó. Így például a sok megabyte-os /proc/kcore fájl sem foglal helyet a lemezen Melyik fájlrendszert használjuk? A gyakorlatban ritkán van értelme több különféle fájlrendszert használni. Pillanatnyilag az esetek többségében az ext3 fájlrendszer használata tűnik a legokosabb választásnak, ez a legelterjedtebb fájlrendszer, a naplózás miatt. A reiserfs szintén a naplózási képességei miatt válik egyre népszerűbbé. Az adatnyilvántartó struktúrák miatti többletszámítások, a sebesség, a megbízhatóság, a kompatibilitás és sok más szempont esetenkénti mérlegelése döntheti el, hogy az egyes esetekben milyen típusú fájlrendszert használjunk. A naplózó fájlrendszerek nyilvántartják, mi minden történt a rendszeren. Egy rendszerösszeomlás esetén, vagy ha kétéves fiad megnyomja a "power" gombot - ahogy az enyém ezt szokta tenni -, a naplózó fájlrendszer ezekből a naplókból helyreállítja az el nem mentett, elveszett adatokat. Így az adatvesztés lehetősége jóval kisebb, s valószínűleg ez lesz a Linux fájlrendszerek szabványos formája. Persze ne bízzuk el magunkat, hibák mindig történhetnek, ezért rendszeresen készítsünk biztonsági mentést az adatainkról Fájlrendszer létrehozása A fájlrendszerek létrehozása (inicializálása) az mkfs paranccsal történik. Tulajdonképpen minden fájlrendszer típushoz különálló program létezik, és az mkfs parancs csak egy előtét, mely ezek közül a megfelelőt futtatja. A típust a -t fstype (fájlrendszer típusa) opcióval választhatjuk ki. Az mkfs által hívott programok parancssori felülete kissé különbözhet egymástól. A közös és legfontosabb opciókat lentebb összegezzük; a kézikönyv oldalakon többet olvashatunk róluk. -t típus A fájlrendszer típusát adja meg. -c Hibás blokkok keresése és listájuk inicializálása. -l fájlnév A kezdeti hibás blokk listát a megadott fájlból veszi. 42
50 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Például ext2 fájlrendszert az alábbi módon hozhatunk létre egy hajlékonylemezen: $ fdformat -n /dev/fd0h1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kb. Formatting... done $ badblocks /dev/fd0h $>$ bad-blocks $ mkfs -t ext2 -l bad-blocks /dev/fd0h1440 mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/ inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 360 inodes per group Writing inode tables: done Writing superblocks and filesystem accounting information: done $ Először is formáztuk a lemezt (az -n opció kikapcsolja az érvényesítést, azaz a hibás blokkok figyelését). A hibás blokkokat a badblocks paranccsal kerestük meg, melynek kimenetét a bad-blocks fájlba irányítottuk. Végül létrehoztuk a fájlrendszert az előbbi lista figyelembe vételével. A -c opció használatával ugyanezt elérhetjük, csak egyszerűbben, a badblocks parancs és külön fájl nélkül: $ mkfs -t ext2 -c /dev/fd0h1440 mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/ inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 360 inodes per group Checking for bad blocks (read-only test): done Writing inode tables: done Writing superblocks and filesystem accounting information: done $ 43
51 Fejezet 6. Lemezek és egyéb tárolóeszközök használata A -c opció kényelmesebb, mint a badblocks parancs külön használata a fájlrendszer létrehozásakor, de a badblocks segítségével a fájlrendszer létrehozása után is ellenőrizhetjük a lemezt. A fájlrendszerek létrehozása ugyanígy történhet merevlemezen is, de ott a formázás nem szükséges Fel- és lecsatolás (mounting, unmounting) A fájlrendszerek használatba vétele előtt fel kell csatolni őket. Az operációs rendszer ezután különféle adminisztratív műveleteket végez a működés biztosítására. Mivel a UNIX-ban minden fájl egyetlen könyvtárstruktúrába illeszkedik, a felcsatolás művelete az új fájlrendszer tartalmát úgy jeleníti meg, mintha alkönyvtár lenne egy már felcsatolt fájlrendszerben. Például a 6-3 Ábra három független fájlrendszert mutat, külön-külön gyökérkönyvtárral. Amikor az utóbbi kettőt a /home és /usr alá felcsatoljuk az első fájlrendszeren, egyetlen fastruktúrát kapunk, ahogyan a 6-4 Ábra mutatja. Ábra 6-3. Három különálló fájlrendszer Ábra 6-4. A /home és az /usr felcsatolva Ezek a felcsatolások például a következő módon hozhatók létre: $ mount /dev/hda2 /home $ mount /dev/hda3 /usr $ A mount parancsnak ezekben a példákban két argumentuma van. Az első az eszközfájl, ami annak a lemeznek vagy partíciónak felel meg, amely a fájlrendszert tartalmazza. A második az a könyvtár, ami alá a fel szeretnénk csatolni a 44
52 Fejezet 6. Lemezek és egyéb tárolóeszközök használata fájlrendszert. A parancsok kiadása után két fájlrendszer tartalma úgy látszik, mintha a /home illetve /usr könyvtárak tartalma lenne. Ezt úgy szokás mondani, hogy például a /dev/hda2 a /home alá lett felcsatolva (hunglishül: "mountolva" vagy "felmountolva", de hangosan ilyet csak akkor mondjatok, ha Grétsy tanár úr vagy Szy Gyuri nincs a közelben :-) - a lektor). Ha valamelyik fájlrendszert meg akarjuk tekinteni, annak a könyvtárnak a tartalmát fogjuk nézni, amelyik alá csatlakoztattuk, mintha csak egy másik könyvtár lenne. Figyeljük meg az eszközfájl (például /dev/hda2) illetve a csatlakozási könyvtár (/home) közti különbséget. Az eszközfájl a lemez nyers tartalmához enged hozzáférést, míg a csatolási könyvtáron keresztül ugyanezeket az adatokat érjük el, csak formázva, fájlok és könyvtárak formájában. A csatolási könyvtárat szokás csatolási pontnak (mount point) is nevezni. A Linux sok fájlrendszer típust támogat, melyek közül a mount megpróbálja automatikusan kiválasztani a megfelelőt. Használhatjuk a -t fstype opciót is a típus megadására. (Ez néha elengedhetetlen is, mert a mount által használt ökölszabályok nem mindig működnek.) Például egy MS-DOS hajlékonylemez felcsatolását a következőképpen tehetjük meg: $ mount -t msdos /dev/fd0 /floppy $ A csatolási könyvtárnak nem kell üresnek lennie, de azért léteznie kell. Viszont ha voltak fájlok alatta, azok láthatatlanok lesznek a rendszer számára, amíg a felcsatolás érvényben van. (Pontosabban: a felcsatoláskor már megnyitott fájlok továbbra is elérhetők, valamint a felcsatolás előtt máshonnan létrehozott hivatkozásokon (link) keresztül is.) Általában nem szoktak ezzel törődni, de néha hasznos lehet. Például néhányan szeretik, ha a /tmp és a /var/tmp gyakorlatilag ugyanaz, ezért a /tmp könyvtárat egy szimbolikus hivatkozásnak állítják be, mely a /var/tmp könyvtárra mutat. A rendszerindítási folyamat során, mielőtt a /var felcsatolódna, a gyökér fájlrendszeren lévő /var/tmp könyvtárat használja helyette. Amikor a /var felcsatolódik, elérhetetlenné válik a gyökér fájlrendszer /var/tmp könyvtára. Ha nem létezne a /var/tmp a gyökér fájlrendszeren, a /var csatlakozása előtt nem lehetne ideiglenes fájlokat használni. Ha nem szándékozol írni a fájlrendszerre, a -r kapcsolót kell megadni a mount programnak, hogy csak olvasható felcsatolás (readonly mount) jöjjön létre. Ez azt eredményezi, hogy a rendszermag minden írási kísérletet leállít az ilyen fájlrendszerre, még a fájlok elérési idejének frissítését is. A csak olvasható felcsatolás a nem írható adathordozóknál (például CD-ROM) lehetnek szükségesek. A figyelmes olvasó már észrevehetett egy apró logisztikai problémát. Hogy csatolódik fel a legelső, azaz a gyökér fájlrendszer, amikor efelett nincs fájlrendszer, amihez felcsatolódhatna? Nos, a válasz az, hogy egy kis varázslattal. 10 A gyökér fájlrendszer mágikusan csatolódik a rendszerindítás során, és biztosra vehetjük, hogy mindig fel van csatolva van. Ha ugyanis a gyökér fájlrendszer nem csatolódik fel, a rendszer fel sem áll. A fájlrendszer neve, ami ily módon mágikusan csatolódik fel, vagy a rendszermagba van fordítva, vagy a LILO illetve az rdev parancs segítségével állítható be. A gyökér fájlrendszer először általában csak olvashatóan csatlakozik. Az indító szkriptek ekkor ellenőrzési célokból lefuttatják az fsck programot, és ha nem volt probléma, újracsatolják (re-mount), de már írható/olvasható módon. Az fsck parancsot tilos futtatni írhatóan csatlakoztatott fájlrendszeren, mivel az fsck futása közbeni változások a fájlrendszeren mindenképpen hibát okoznak. Mivel az ellenőrzés alatt a gyökér fájlrendszer csak olvashatóan van csatlakoztatva, az fsck nyugodtan kijavíthatja az esetleges hibákat, mivel az újracsatolás minden, a fájlrendszerre vonatkozó és memóriában tartott metaadatot kitöröl. (Mivel a fájlrendszer csak olvasható módban volt felcsatolva, ezért semmilyen változás nem íródik ki rá, kivéve az, amit az fsck maga kiír az operációs rendszer megkerülésével. Ha az esetleges javítás után a fájlrendszerre vonatkozó adatok és metaadatok (a metaadatok a fájlrendszer egészére 45
53 Fejezet 6. Lemezek és egyéb tárolóeszközök használata vonatkozó információk) a memóriából visszaíródnának, akkor a fájlrendszer sérülne, mivel azok az fsck működése során elavulttá váltak - a lektor.) A legtöbb rendszeren más fájlrendszereket is fel kell csatolni a rendszerindítás folyamán. Ezeket az /etc/fstab fájlban adhatjuk meg. (Lásd az fstab kézikönyv oldalt.) A további fájlrendszerek felcsatolásának részletei sok mindentől függenek, és a rendszeradminisztrátor állítja be, ha szükséges; lásd a 8 fejezetet. Amikor egy felcsatolt fájlrendszerre a továbbiakban nincs szükség, lecsatolható az umount 11 paranccsal, amelynek egy argumentuma van: akár az eszközfájl, akár a felcsatolási pont megadható. Az előző példában szereplő könyvtárak lecsatolását megtehetjük tehát így is: $ umount /dev/hda2 $ umount /usr $ Az umount kézikönyv oldalán találhatjuk meg a részletes információkat a parancsról. Nagyon fontos, hogy mindig lecsatoljuk a felcsatolt fájlrendszereket. Ne vegyük ki csak úgy a hajlékonylemezt a meghajtóból, lecsatolás nélkül! A gyorstárazás miatt az adatok nem azonnal íródnak rá a lemezre, hanem esetleg csak a lecsatoláskor, így a lemez lecsatolás nélküli kivétele azt eredményezheti, hogy tartalma összezagyválódik. Ha csak olvastunk a lemezről, ennek esélye igen kicsi, de ha akár csak véletlenül írtunk rá, az eredmény katasztrofális lehet. A felcsatolás és a lecsatolás szuperfelhasználói jogosultságokat kíván meg, azaz csak a root teheti meg. Ennek oka az, hogy ha bármelyik felhasználó felcsatolhatna hajlékonylemezen lévő fájlrendszert bármely könyvtárhoz, akkor nagyon könnyű lenne egy /bin/sh-nak (vagy bármely más, gyakran használt programnak) látszó trójaival ellátott lemezt készíteni. Ez pedig lényegében nullára redukálná a rendszer biztonságát. Ugyanakkor mégis gyakran szükség van arra, hogy engedélyezzük a felhasználóknak a hajlékonylemezek használatát, s ennek számos módja van: Adjuk meg a felhasználóknak a root jelszót. Ez nyilvánvalóan rossz megoldás a biztonság szempontjából, de ez a legkönnyebb. Ha nincs szükség a biztonságra, mint például hálózat nélküli, személyes rendszer esetén, akkor elfogadható. Egy program, például a sudo segítségével megengedjük a felhasználóknak a mount használatát. Ez is nagyon rontja a biztonságot, de nem ad közvetlenül szuperfelhasználói jogosultságokat a felhasználóknak. 12 Bocsássuk az mtools csomagot a felhasználók rendelkezésére az MS-DOS fájlrendszer használatához. Ekkor nincs szükség a mount használatára. Ha csak MS-DOS-os hajlékonylemezeket használatunk, akkor ez jó megoldás. A hajlékonylemezes eszközöket és a megengedhető felcsatolási pontokat a megfelelő opciókkal ellátva jegyezzük be az /etc/fstab fájlban. Az utóbbi lehetőség úgy valósítható meg, ha beírjuk a következő sort az /etc/fstab fájlba: /dev/fd0 /floppy msdos user,noauto 0 0 Az egyes oszlopok jelentése: a csatolandó eszközfájl, a csatlakozási könyvtár, a fájlrendszer típusa, opciók, mentési gyakoriság (amit a dump használ) és az fsck ellenőrzés gyakorisága (pass number). Ez utóbbi a rendszerindítás során való ellenőrzés rendjét szabályozza; a 0 érték az ellenőrzést kikapcsolja. A noauto opció kikapcsolja az automatikus felcsatolást, azaz a rendszer elindulásakor az inicializáló szkriptek által kiadott mount -a nem csatolja fel ezeket. A user opció minden felhasználónak megengedi a felcsatolást, és biztonsági okokból lehetetlenné teszi a felcsatolt lemezen levő programok futtatását és az itteni eszközfájlok 46
54 Fejezet 6. Lemezek és egyéb tárolóeszközök használata használatát. Ha megtettük a fenti bejegyzést az /etc/fstab fájlba, akkor bármelyik felhasználó felcsatolhat MS-DOS fájlrendszerű hajlékonylemezt a következő paranccsal: $ mount /floppy $ A lemezt a kivétel előtt a megfelelő umount paranccsal lehet (és persze kell) lecsatolni. Ha többféle típusú hajlékonylemezt szeretnénk használni, több felcsatolási pontra lehet szükségünk, eltérő beállításokkal. Például ha MS-DOS és ext2 lemezeket is használni szeretnénk, a következő sorokat írjuk az /etc/fstab fájlba: /dev/fd0 /dosfloppy msdos user,noauto 0 0 /dev/fd0 /ext2floppy ext2 user,noauto 0 0 MS-DOS fájlrendszerek esetében (nemcsak hajlékonylemezeknél) érdemes az elérést az uid, gid és umask opciókkal korlátozni. Ezeket a mount kézikönyv oldala írja le részletesen. Ha nem vagy óvatos, egy MS-DOS fájlrendszert felcsatolva, az azon lévő fájlokat legalábbis olvasni mindenki tudja, ami nem túl jó ötlet Fájlrendszerek épségének ellenőrzése az fsck paranccsal A fájlrendszerek bonyolult képződmények, ezért hajlamosak a meghibásodásra. Egy fájlrendszer helyessége és érvényessége az fsck paranccsal ellenőrizhető. Ez a program képes a megtalált kisebb problémákat kijavítani, és figyelmeztetni a nem javítható hibákra. Szerencsére a fájlrendszert megvalósító kódot nagyon hatékonyan hibamentesítették, ezért nagyon ritkán akad probléma, és az is többnyire áramkimaradás, hardverhiba vagy kezelési hiba (nem megfelelő rendszerleállítás) miatt keletkezik. A legtöbb rendszer úgy van beállítva, hogy rendszerindításkor automatikusan futtatja az fsck programot, így remélhetően minden hiba kiderül és javításra kerül a rendszer használata előtt. Sérült fájlrendszer használata esetén a hibák csak szaporodnak; ha az adatstruktúrákban van zavar, a fájlrendszer használata még több adatvesztéshez vezethet. Igaz ugyan, hogy az fsck futtatása eltarthat egy kis ideig, ha nagy fájlrendszereket használunk, és az ellenőrzés szinte mindig felesleges, ha a rendszerleállás szabályos volt, ezért néhány trükkel meg lehet gátolni az ellenőrzés állandó automatikus végrehajtását. Az első trükk, hogy ha létezik az /etc/fastboot fájl, nem történik ellenőrzés. A második, hogy az ext2-es fájlrendszereknek van egy speciális jelzése a szuperblokkban, mely jelzi, hogy a fájlrendszer szabályosan lett-e lecsatolva az utolsó felcsatolás óta. Ez lehetővé teszi, hogy az ext2 rendszereket ellenőrző e2fsck program figyelje ezt a jelet, és csak hibás lecsatolásra utaló jelzés esetén végezze el az ellenőrzést. (Közben feltételezzük, hogy a szabályos leállítás egyenlő a hibamentességgel.) Az, hogy az /etc/fastboot -os trükk megy-e, a rendszer indító szkriptjeitől függ, de az ext2-es előbb említett trükkje mindig működik, ha az e2fsck -t használjuk. (Természetesen az ellenőrzés kikényszeríthető, ha kell. Ennek módja az e2fsck kézikönyv oldalán olvasható.) Az automatikus ellenőrzés természetesen csak azokra a rendszerekre vonatkozik, melyeket automatikusan csatolunk fel a rendszerindítás során. Az fsck parancsot kézzel kell indítanunk a többi fájlrendszer (például hajlékonylemezek) esetén. Ha az fsck javíthatatlan hibát észlel, akkor vagy nagyon alapos tudásra van szükséged a fájlrendszer működését illetően, vagy jó biztonsági mentésre. Utóbbi az egyszerűbb, bár néha unalmas. Az előbbihez szükség lehet egy barát vagy egy levelezési lista segítségére, esetleg más forrásokra, ha magad nem ismered a fájlrendszer belső működését. Szeretnék többet is mondani erről, de csekély tudásom és gyakorlatom meggátol ebben. Theodore T so debugfs programja hasznos lehet. 47
55 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Az fsck programot csak lecsatolt fájlrendszeren szabad alkalmazni! (Egyetlen kivétel a csak olvasható gyökér fájlrendszer a rendszerindítás során.) Ez azért van, mert a program a nyers lemezblokkokkal dolgozik, és ezért úgy módosíthatja a fájlrendszert, hogy azt az operációs rendszer nem veszi észre, ami biztosan jelentős hibákhoz vezet Lemezhibák ellenőrzése a badblocks paranccsal Nem árt időnként ellenőrizni a hibás szektorokat a badblocks paranccsal, és a megtalált hibás szektorok listáját átadni az fsck-nak, hogy az operációs rendszer a későbbiekben ne használja a hibás lemezterületeket. Íme egy példa: $ badblocks /dev/fd0h > bad-blocks $ fsck -t ext2 -l bad-blocks /dev/fd0h1440 Parallelizing fsck version 0.5a (5-Apr-94) e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Check reference counts. Pass 5: Checking group summary information. /dev/fd0h1440: ***** FILE SYSTEM WAS MODIFIED ***** /dev/fd0h1440: 11/360 files, 63/1440 blocks $ Ha egy hibás blokk már használatban van, az e2fsck megpróbálja a blokkot más helyre mozgatni. Ez csak akkor sikerül, ha kisebb hiba volt csak, komoly hibánál az adott fájl tartalma sérülhet A töredezettség (fragmentation) megelőzése Amikor egy fájlt a lemezre írunk, nem mindig lehet egymást követő blokkokat használni. Azokat a fájlokat, melyek blokkjai nem egymást követik, töredezettnek (fragmented) nevezzük. A töredezett fájlok olvasása lassabb, mivel a lemez író-olvasó feje sokat mozog ilyenkor. Ezért szükséges védekezni a töredezettség ellen, habár a probléma csökkenthető jó gyorstár (cache puffer) és előreolvasás (read-ahead) alkalmazásával is. Az ext2 fájlrendszer a fájlok blokkjainak egymás közelébe rakásával igyekszik a töredezettséget minimális szinten tartani, még akkor is, ha egymást szorosan követő blokkok nem találhatók a lemezen. Ezt úgy éri el, hogy gyakorlatilag mindig a legközelebbi blokkot foglalja le egy fájl következő blokkjaként. Ezért az ext2 fájlrendszerek esetén többnyire nem kell a töredezettség miatt aggódnunk. Ha mégis szükség lenne a töredezettségmentesítésre ext2 fájlrendszer esetében, létezik erre program, amelynek meglepő módon defrag a neve. 13. Sok MS-DOS töredezettségmentesítő program létezik, mely a blokkok átrendezésével csökkenti a töredezettséget. Más fájlrendszerek esetén a töredezettség úgy szüntethető meg, hogy lementjük a rendszer fájljait, újra létrehozzuk a fájlrendszert, majd visszaállítjuk az elmentett fájlokat. A töredezettségmentesítés előtt mindenképp jó ötlet a mentés elkészítése (ext2 és msdos típus esetében is), mert egy töredezettségmentesítés közben sok minden elromolhat. 48
56 Egyéb általános eszközök fájlrendszerek kezelésére Fejezet 6. Lemezek és egyéb tárolóeszközök használata Van még néhány hasznos eszköz fájlrendszerek kezelésére. A df megmutatja a szabad lemezterületet egy vagy több fájlrendszeren; a du egy könyvtár és a benne lévő fájlok által használt lemezterületet adja meg. Ezeket a lemezpazarló felhasználók/programok levadászására lehet használni. Mindkét parancs kézikönyv oldalát érdemes átolvasni, mert sok opciójuk van. A sync a lemez gyorstár minden ki nem írt blokkját lemezre íratja (lásd 7.6 ). Ezt csak ritkán kell kézzel kiadni, az update démon teszi ezt meg automatikusan. A sync-et akkor használjuk közvetlenül, ha baj van, például az update vagy annak segédprocessze, a bdflush meghal, vagy ha mindenképpen most azonnal kell lekapcsolni az áramot, és nem lehet az update-re várni. Ezekhez is tartoznak kézikönyv oldalak. A man a legjobb linuxos barátod. Testvére, az apropos szintén jó szolgálatot tehet, ha nem tudod, mi a neve egy-egy parancsnak Egyéb eszközök ext2/ext3 fájlrendszerekhez A fájlrendszer létrehozására szolgáló mke2fs és azt ellenőrző e2fsck programokon kívül, melyek közvetlenül, vagy a fájlrendszertől független előtét programokon keresztül is hívhatók, létezik még néhány hasznos eszköz az ext2 fájlrendszerek kezelésére. A tune2fs a fájlrendszer paramétereit állítja át. Néhány fontos paraméter: Maximális felcsatolást számláló (maximal mount count). Az e2fsck kikényszeríti az ellenőrzést, ha a rendszer túl sokszor lett felcsatolva, még akkor is, ha az előző lecsatolás rendben ment az ezt mutató állapotjelző szerint. Tesztelési és fejlesztési célokat szolgáló rendszeren ezt célszerű lehet csökkenteni. Maximális idő két ellenőrzés között. Az e2fsck két ellenőrzés között eltelő maximális időre is beállítható, ilyenkor tehát akkor is ellenőriz, ha egyébként nem túl gyakran csatolták fel és le a fájlrendszert. Ez a lehetőség akár ki is kapcsolható. A root számára fenntartott blokkok száma. Az ext2 fájlrendszer néhány blokkot fenntart a rendszergazda számára, így ha a fájlrendszer megtelik, a rendszeradminisztráció még mindig elvégezhető előzetes törlés, helycsinálás nélkül. Alapértelmezés szerint a blokkok 5%-a kerül ilyen célú lefoglalásra, ami többnyire valóban nélkülözhető. Hajlékonylemezek esetén ezt akár 0-ra is állíthatjuk. A tune2fs kézikönyv oldalon találhatjuk meg a részletes információkat. A dumpe2fs információkkal szolgál egy ext2 fájlrendszerről, főleg a szuperblokk alapján. A 6-5 Ábra egy példa kimenetet mutat. Némely kijelzett információt csak a fájlrendszer működésének ismeretében lehet értelmezni, de a legtöbb mindenki számára könnyen érthető. Ábra 6-5. Példa a dumpe2fs kimenetére dumpe2fs 0.5b, 11-Mar-95 for EXT2 FS 0.5a, 94/10/23 Filesystem magic number: 0xEF53 Filesystem state: clean Errors behavior: Continue Inode count: 360 Block count: 1440 Reserved block count: 72 Free blocks: 1133 Free inodes:
57 Fejezet 6. Lemezek és egyéb tárolóeszközök használata First block: 1 Block size: 1024 Fragment size: 1024 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 360 Last mount time: Tue Aug 8 01:52: Last write time: Tue Aug 8 01:53: Mount count: 3 Maximum mount count: 20 Last checked: Tue Aug 8 01:06: Check interval: 0 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) Group 0: Block bitmap at 3, Inode bitmap at 4, Inode table at free blocks, 326 free inodes, 2 directories Free blocks: Free inodes: A debugfs egy fájlrendszerhiba-kereső (debugger). A lemezen tárolt adatstruktúrákhoz való közvetlen hozzáférést biztosítja, így olyan lemez javítására is használható, melyet az fsck nem tud automatikusan korrigálni. Bizonyos körülmények közt törölt fájlok visszaállítására is használható. Azonban a debugfs használata nagy figyelmet követel; ha nem pontosan értjük, amit csinálunk, akár az összes adatunkat is elveszthetjük. A dump és restore programok ext2 fájlrendszer mentésére és visszaállítására használhatók. Ezek tulajdonképpen a szokásos UNIX eszközök ext2-re specializált változatai. A 12 fejezetben további tudnivalók vannak a mentésről Fájlrendszer nélküli lemezek Nem minden lemezt vagy partíciót használunk fájlrendszerként. Például a swap partíción sincs fájlrendszer. Sok hajlékonylemezt is szalagszerűen használnak, azaz a tar (tape archive; szalagos archívum) kimenete vagy más fájl közvetlenül a nyers lemezre íródik fájlrendszer nélkül. A Linux rendszerindító hajlékonylemezek is ilyenek: csak a nyers rendszermagot tartalmazzák. A fájlrendszer elhagyásának az az előnye, hogy nagyobb lemezterületet használhatunk, mivel a fájlrendszer mindig nyilvántartást is jelent. Továbbá javítja a kompatibilitást is különböző rendszerek között: például a tar kimenetének formátuma minden rendszeren azonos, de a fájlrendszerek sokszor különböznek az egyes rendszereken. A fájlrendszer nélküli lemezek használata gyorsan megtanulható. A linuxos rendszerindító hajlékonylemezeken sincs feltétlenül fájlrendszer, noha lehetséges. Az egyik ok a nyers lemezek használatára a lenyomat-készítés (image copy). Mondjuk ha a lemez részlegesen sérült fájlrendszert tartalmaz, nem árt egy pontos másolatot készíteni róla a hibajavítás megkezdése előtt, mivel hibás javítás esetén legalább az eredeti állapot visszakapható, és lehet újra próbálkozni. Ennek egyik módja a dd használatával képzelhető el: $ dd if=/dev/fd0h
58 Fejezet 6. Lemezek és egyéb tárolóeszközök használata of=floppy-image records in records out $ dd if=floppy-image of=/dev/fd0h records in records out $ Az első dd a lemez pontos lenyomatát készíti el a floppy-image fájlba, a második ezt a lenyomatot hajlékonylemezre írja. (Feltehetően a második parancs kiadása előtt lemezt cserélünk, különben semmi értelme ezen két parancsnak.) Lemezterület foglalás Particionálási sémák Nem könnyű egy lemezt a lehető legjobb módon particionálni. Nincs erre univerzális recept, mivel túl sok tényezőt kell figyelembe venni. A szokásos mód az, hogy egy viszonylag kicsi gyökér fájlrendszert hozunk létre, mely a /bin, /etc, /dev, /lib, /tmp könyvtárakat és egyéb olyan fájlokat tartalmaz, melyek a rendszer felállásához és futtatásához szükségesek. Ily módon a gyökér fájlrendszer egy külön partíción helyezkedik el, melynek tartalma önmagában elegendő a rendszer elindításához. Ez azért célszerű, mert ha a gyökér fájlrendszer kicsi és ritkán használatos, kevéssé valószínű, hogy egy rendszerösszeomláskor megsérül, ezért könnyebb lesz az utólagos hibaelhárítás. A többi fontos rész is külön partíción helyezkedhet el, vagyis az /usr-nek, /home-nak (a felhasználók saját könyvtárai) és a swap területnek külön partíciót tartunk fenn. A felhasználók home könyvtárait külön partícióra téve a biztonsági mentés leegyszerűsödik, mivel a programokat (vagyis az /usr) tartalmát ritkán kell menteni. Hálózati környezetben az /usr akár meg is osztható több gép között (például NFS használatával), így több gép esetén több száz megabyte lemezterület is megtakarítható gépenként. A sok partícióval az a probléma, hogy a teljes lemezterületet több kis részre osztja. Manapság, amikor a lemezek és (remélhetőleg) az operációs rendszerek egyre megbízhatóbbak, sokan inkább egyetlen nagy partíciót hoznak létre, mely az összes fájlt tartalmazza. Másrészt azonban egy kisebb partíciót könnyebb menteni és visszaállítani. Kis merevlemez esetén (hacsak nem végzünk rendszermag-fejlesztést) a legjobb egyetlen nagy partícióra pakolni mindent. (Persze a swap-et mindig külön partícióra érdemes rakni.) Nagyobb lemezeknél viszont - a fentiek figyelembevételével - érdemes a rendszer biztonsága és a könnyebb rendszeradminisztráció kedvéért több nagyobb partíciót használni. (A "kicsi" és "nagy" itt természetesen viszonylagosan értendő; kinek-kinek saját igényei döntik el, hol van a küszöb.) Több lemez esetén a felhasználók könyvtárait, azaz a /home-ot érdemes külön lemezre tenni a rendszerfájloktól, azaz a gyökér és /usr fájlrendszerektől. Nem baj, ha gyakorlatot szerzünk a különféle particionálási sémák terén az idők során, s nem csak a rendszer első telepítésekor. Ez ugyan egy kis munkát jelent, mert a rendszer többszöri teljes újratelepítését igényli 14, de az egyetlen módja a magabiztos és helyes particionálás elsajátításának. 51
59 Fejezet 6. Lemezek és egyéb tárolóeszközök használata Helyigények A telepíteni szándékozott Linux terjesztések általában szolgálnak némi információval, mekkora terület kell bizonyos jellegű telepítésekhez. Ugyanez igaz a külön telepített programokra. Ez alapján megtervezhető a lemezigény, de a jövőbeli igényeinkre gondolva becslés alapján további területeket is fenn kell tartani. A felhasználói fájlok számára szükséges hely a felhasználók céljaitól függ. A legtöbb ember természetesen minél nagyobb területet szeretne, de az a terület, amely ténylegesen kielégíti őket, nagyon változatos. Egyesek csak egy kis szövegfeldolgozást végeznek, így bőven elég nekik pár megabyte, mások esetleg képeket dolgoznak fel, ezért gigabyte-ok kellenek nekik. Egyébként a "kilobyte" és "megabyte" fogalmakkal egy kicsit vigyázni kell a lemezek esetén. Néhány lemezgyártó szeret úgy számolni, hogy egy kilobyte az 1000 byte és egy megabyte az 1000 kilobyte, míg a számítástechnikai világ másik fele 1024-es szorzókat használ. Ezért egy 345 MB-osnak mondott merevlemez a valóságban csak 330 MB-os. A swap terület lefoglalásáról a 7.5 fejezetben szólunk Példák merevlemez helyfoglalásra Régebben egy 109 MB-os merevlemezem volt, most egy 330 MB-os van. Elmagyarázom, hogyan és miért pont úgy particionáltam ezeket. A 109 MB-osat többféle módon particionáltam, ahogy az igényeim és az operációs rendszereim változtak. Ezek közül két esetet ismertetek. Eleinte MS-DOS-t és Linuxot is használtam. Az MS-DOS-nak elég volt 20 MB, mert ezen elfért egy C fordító, egy szövegszerkesztő, néhány segédprogram, a program, amin dolgoztam, és egy kis szabad hely, hogy ne legyen klausztrofóbiám. A Linuxnak volt egy 10 MB-os swap partíciója, a maradék 79 MB pedig egyetlen partíció volt az összes linuxos fájlommal. Sokat kísérleteztem különálló gyökér-, /usr és /home partíciókkal, de egyik vagy másik részen mindig elfogyott a hely. Amikor már nem volt szükségem az MS-DOS-ra, újra particionáltam a lemezt 12 MB-os swap-re, és a maradék ismét egyetlen partíció volt. A 330 MB-os lemezt már több partícióra osztottam: 5 MB gyökér fájlrendszer 10 MB swap partíció 180 MB /usr fájlrendszer 120 MB /home fájlrendszer 15 MB rögtönzött (scratch) partíció A scratch partíciót olyan játszadozásra tartottam fenn, melyek külön partíciót igényelnek, mint például különféle Linux terjesztések kipróbálása, mindenféle fájlrendszer sebességmérése. Amikor épp nem használom ilyesmire, swap-nek fogom be. (Szeretek sok nyitott ablakkal dolgozni.) Lemezterület növelése Linux alatt Több lemezterület hozzáadása a Linuxhoz könnyű, ha a hardver helyesen van beszerelve. (A hardver telepítése kívül esik a könyv keretein.) Ha szükséges, formázással kell kezdeni, majd particionálni, létrehozni a fájlrendszereket, végül megtenni a megfelelő bejegyzéseket az /etc/fstab fájlban, és így már automatikusan felcsatolható lesz az új terület. 52
60 Lemezterület-takarékossági tippek Fejezet 6. Lemezek és egyéb tárolóeszközök használata A legjobb tipp, ha lemezterületet akarunk megtakarítani, hogy ne telepítsünk szükségtelen programokat. A legtöbb Linux terjesztés esetén beállítható, hogy csak bizonyos csomagokat telepítsen, és az igények felmérésével a telepítő rendszer figyelmeztet, hogy mely csomagokra nem lesz valószínűleg szükséged. Ezzel sok terület megtakarítható, hiszen némelyik program elég nagy méretű. Az is lehet, hogy egy csomagnak bizonyos részei feleslegesek, például a dokumentáció bizonyos részei, néhány Elisp fájl a GNU Emacs-hoz, néhány karakterkészlet az X11-hez vagy néhány programkönyvtár (library). Ha a csomagok válogatásával több hely nem nyerhető, a tömörítéshez kell fordulni. Az olyan tömörítőprogramok, mint például a gzip vagy a zip (és bzip2 - a lektor), tömöríteni és kicsomagolni képesek fájlokat vagy fájlok csoportját. A gzexe program végrehajtható fájlokat képes tömöríteni a felhasználó számára észrevétlenül, egy kicsit lassítva a program indulását a kicsomagolási folyamattal. Ritkán futtatott programoknál célszerű lehet használni. A kísérleti DouBle rendszer egy egész fájlrendszert képes tömöríteni, az azt használó programok számára észrevétlen módon. (Aki ismeri mondjuk az MS-DOS-hoz írt Stacker programot vagy a Windowsra írt DriveSpace-t, az könnyen megérti ennek alapelvét is.) Megjegyzések 1. A korongok valamilyen merev anyagból, például alumíniumból készülnek, innen kapta nevét a "merevlemez". 2. A BIOS egy beépített szoftver, melyet ROM chipek tárolnak. Ez gondoskodik többek között a rendszerindítás kezdeti lépéseiről. 3. Ezek teljesen képzeletbeli adatok. 4. Azaz a belső, fémlemez felületén, a műanyag borításon belül. 5. Bármilyen ironikusan is hangzik, a "wine" valójában egy betűszó, melynek feloldása: Wine Is Not an Emulator ("A Wine nem emulátor"). A Wine szigorúan véve egy API-helyettesítés (Application Program Interface; alkalmazás-programozói felület). Figyelmedbe ajánlom a wine dokumentációját a következő helyen: 6. Lásd a VMware honlapját: 7. De attól természetesen teljesen eltérő. (Értsd: az elvi működésük azonos, de a konkrét megvalósítás eltérő. - a lektor) 8. Ez az állítás már nem igaz a LILO frissebb verzióira, amelyek támogatják az LBA-t (Logical Block Addressing; logikai blokkcímzés). Érdemes a használt Linux-terjesztés dokumentációjában megnézni, hogy LBA-támogatással rendelkező LILO-t használ-e. 9. A fips a legtöbb Linux-terjesztésben megtalálható. A Partition Magic nevű kereskedelmi particionáló program is hasonló képességekkel bír, de szebb a felülete. Ne feledd, hogy a particionálás veszélyes tevékenység. Feltétlenül készíts friss biztonsági mentést minden fontos adatról, mielőtt belefogsz az élő partíciók átméretezésébe. A parted nevű GNU program képes más, például MS-DOS típusú partíciók átméretezésére is, de időnként korlátozott formában. Mielőtt használnád, olvasd el a parted dokumentációját, mert jobb félni, mint megijedni. 10. Részleteket a rendszermag forrásában vagy a Kernel Hackers Guide-ban olvashatunk erről. 11. Természetesen unmount-nak kellene nevezni a parancsot, hogy következetesek legyünk. Az n betű azonban titokzatos körülmények között eltűnt a 70-es években, és azóta sem látták. Aki megtalálja, kérjük, szolgáltassa 53
61 vissza a Bell Labs, NJ társaságnak. Fejezet 6. Lemezek és egyéb tárolóeszközök használata 12. Bár néhány másodpercnyi erőteljes gondolkodással hozzájuthatnak. A sudo-t úgy is be lehet állítani, hogy csak bizonyos parancsokat hajthassanak végre a segítségével (lásd a sudo(8), sudoers(5) és visudo(8) kézikönyv oldalakat) ( 14. Ez tulajdonképpen nem igaz, mert lehetséges átmozgatni a partíciókat és a felcsatolási pontokat újratelepítés nélkül is, de ennek részletezése (egyelőre) kívül esik e könyv keretein. Rajta van a TODO-listámon, de ha valakinek van e téren tapasztalata, esetleg meg is írhatná helyettem ezt a részt :) 15. Ez a fejezet mára már kissé idejétmúltnak tűnik. Manapság már sok-sok gigabyte-os (sőt terabyte-os) merevlemezek használatosak. Mindazonáltal a skála érzékeltetésére még jó lehet, csak meg kell szorozni annyival, hogy a gépedre alkalmazható legyen. A fejezet frissítése terveim között szerepel. 54
62 Fejezet 7. Memóriakezelés Minnet, jag har tappat mitt minne, är jag svensk eller finne, kommer inte ihåg... (Bosse österberg) Svéd kocsmadal, nyersfordításban kb. így hangzik: Emlékezet, elvesztettem az emlékezetemet. Svéd vagyok vagy finn? Nem emlékszem... Ez a fejezet a Linux memóriakezelési lehetőségeit írja le, azaz a virtuális memóriát és a lemez cache puffereket. Ezen dolgok célját, működését a rendszeradminisztrátorok igényeinek figyelembevételével ismertetjük Mi a virtuális memória? A Linux támogatja a virtuális memória (virtual memory) kezelését. Ez azt jelenti, hogy képes lemezterületet RAM bővítésként kezelni, azaz a felhasználható memória mérete ennek megfelelően nő. A rendszermag a pillanatnyilag nem használt memóriablokkok tartalmát kiírja a merevlemezre, így a felszabaduló memória más célra felhasználható lesz. Amint az eredeti tartalomra újra szükség lesz, visszaolvassa a memóriába. Ez teljesen láthatatlan a felhasználó számára; a Linux alatt futó programok csak a nagy memóriaterületet látják és nem veszik észre, hogy bizonyos részei időnként a lemezre kerülnek. Természetesen a merevlemez írása és olvasása sokkal lassabb, mint a valódi memória használata, ami a programok futását lassítja. (A memória és a merevlemez olvasási és írási sebessége közt pár ezerszeres szokott lenni a különbség.) A merevlemez azon részét, amelyet a virtuális memória használ, swap területnek (swap space) nevezzük. A Linux a fájlrendszer egy közönséges fájlját vagy egy külön partíciót is tud használni swap területként. A swap partíció gyorsabb, viszont a swap fájl mérete sokkal könnyebben állítható. (A partíció méretének megváltoztatása sokszor csak a rendszer újratelepítésével lehetséges.) Ha előre tudod a szükséges swap terület nagyságát, a swap partíció használata ajánlott, de ha bizonytalan vagy, használj először swap fájlt, majd egy kis rendszerhasználat után megbecsülhető a ténylegesen szükséges swap méret, és így már beállítható egy megfelelő swap partíció. Tudni kell még, hogy a Linux megengedi egyszerre több swap partíció és/vagy fájl egyidejű használatát. Ez azt jelenti, hogy ha esetenként szokatlanul nagy swap területre van szükséged, egy új swap fájl létrehozásával megoldható a probléma a teljes terület állandó lefoglalása helyett. Egy megjegyzés az operációs rendszerek szóhasználatához: a számítástechnika tudománya általában különbséget tesz a swappelés (swapping: a teljes processz swap területre írása) és a lapozás (paging: csak bizonyos fix méretű részek, általában pár kilobyte kiírása) között. A lapozás általában hatékonyabb, és ezt használja a Linux is, de valamiért a linuxos szóhasználat ezt is swappelésnek nevezi Swap terület létrehozása A swap fájl egy közönséges fájl; a rendszermag sem kezeli speciális módon. Az egyetlen, ami számít a rendszermagnak, hogy ez a fájl ne tartalmazzon lyukakat, és elő legyen készítve a mkswap paranccsal. Mindenképpen helyi lemezen kell lennie; megvalósítási okokból nem lehet NFS-en keresztül felcsatolt lemezen. A lyukmentesség nagyon fontos. A swap fájl úgy foglalja le a területet, hogy a rendszermag gyorsan ki tudjon tenni egy lapot egy új szektor foglalásának hosszadalmas művelete nélkül. A rendszermag pusztán felhasználja a fájlhoz előzőleg hozzárendelt szektorokat. A lyuk esetén viszont a fájl adott részéhez nem tartozik lemezterület, így nem jó, ha a rendszermag ezeket próbálja használni. 55
63 Fejezet 7. Memóriakezelés Lyukak nélküli swap fájl létrehozásának egyik bevált módja: $ dd if=/dev/zero of=/extra-swap bs=1024 count= records in records out $ ahol /extra-swap a swap fájl neve, a mérete pedig a count= után van megadva (jelen példánkban kilobyte-ban). Célszerű 4 kb egész számú többszörösét venni méretnek, mert a Linux memória lapjainak mérete 4 kb, és a swappelés ilyen egységekben történik. Ha a méret ennek nem többszöröse, az utolsó pár kilobyte kihasználatlan marad. A swap partíció sem különleges semmiféle szempontból. Úgy kell létrehozni, mint bármely más partíciót; az egyetlen különbség, hogy nyersen, azaz fájlrendszer nélkül használjuk. Jó, ha a swap partíció 82-es típusú (Linux swap), ez világosabbá teszi a partíciós táblát. A rendszermag nem figyeli a partíció típusát, tehát használhatunk nem ilyen típusút is swap célokra. (Igaz, ez csökkentheti a rendszer áttekinthetőségét.) A swap fájl vagy partíció létrehozása után egy megjelölést kell az elejére írni, ami a rendszermag által használt adminisztratív információt tartalmaz. Ezt a mkswap parancs végzi el: $ mkswap /extra-swap 1024 Setting up swapspace, size = bytes $ Jegyezzük meg, hogy mindezek után még nincs használatban a swap terület; létezik ugyan, de a rendszermag nem használja virtuális memóriaként. Óvatosan bánjunk a mkswap paranccsal, mert nem ellenőrzi, hogy az adott fájlt vagy partíciót használjuk-e más célra. Fontos fájlok és partíciók könnyen felülírhatók a mkswap paranccsal! Szerencsére ezt a parancsot csak a rendszer telepítésekor kell használni. A Linux memóriakezelője az egyes swap területek méretét kb. 127 MB-ra korlátozza. (Technikai okokból a pontos érték: ( ) x 8 x 4096 = byte, azaz megabyte.) Viszont akár 8 swap terület is használható párhuzamosan, így majdnem 1 GB a swap-nek használható összes terület Linux alatt. 2 A fenti állítás már nem érvényes, ez a fejezet pedig felkerült a "Most már Tényleg Hamarosan" (tm) átírandók listájára. Az újabb rendszermagok és a mkswap parancs frissebb verziói esetén a valódi korlátot a processzor architektúrája szabja meg. Az i386-os és kompatibilis architektúráknál ez a korlát 2 GB, a többinél különböző értékek jellemzőek. Részletek a mkswap kézikönyv oldalain találhatók A swap terület használata Egy előkészített swap területet a swapon paranccsal tudunk aktívvá tenni. Ez jelzi a rendszermagnak, hogy ezután ezt a területet is használhatja swap célokra. Argumentumként meg kell adni a swap terület elérési útját, mint azt a következő példa mutatja az előzőleg előkészített swap fájl esetére: $ swapon /extra-swap $ 56
64 Fejezet 7. Memóriakezelés A swap területek automatikusan is használatba vehetők, ha megfelelő módon felsoroljuk őket az /etc/fstab fájlban: /dev/hda8 none swap sw 0 0 /swapfile none swap sw 0 0 Az indító szkriptek lefuttatják a swapon -a parancsot, ami az /etc/fstab fájlban felsorolt swap területeket használatba veszi. Ezért általában a swapon parancsot kézzel csak extra swap terület bekapcsolásakor kell kiadni. A swap területeket a free paranccsal lehet megfigyelni, ami megmondja, mennyi swap terület van használatban: $ free total used free shared buffers Mem: /+ buffers: Swap: $ A kimenet első sora (Mem:) a fizikai memóriát mutatja. A "total" ("összesen") oszlop nem jelzi ki a rendszermag által használt területet, ami általában kb. 1 MB. A "used" ("használt") oszlop a használt memória mennyiségét mutatja (a második sor nem számolja a puffereket). A "free" ("szabad") oszlop a teljesen használaton kívüli memóriát mutatja. A "shared" ("megosztott") oszlopban a több processz által közösen használt memóriaterület nagyságát láthatjuk; minél nagyobb, annál jobb. A "buffers" ("pufferek") oszlopban pedig a lemez cache pufferének pillanatnyi méretét mutatja meg a parancs. Az utolsó sor (Swap:) hasonlít az elsőre, csak a swap területre vonatkozik, és nem a fizikai memóriára. Ha ez csupa nullákból áll, a swap terület nincs aktiválva. Ugyanehhez az információhoz juthatunk a top parancs vagy a /proc/meminfo fájl segítségével. Pillanatnyilag körülményes egy megadott swap területről információt szerezni, ha több is van belőlük. A swap területek kikapcsolhatók a swapoff paranccsal. (Természetesen ezt csak ideiglenes swap terület esetén szokás kézzel csinálni.) Elsőként az argumentumként megadott swap területről olvassa be a lapokat a rendszer a fizikai memóriába, vagy ha ott nincs elég hely, akkor egy másik swap területre ki is lapozza egyből. Ha nem lenne elég virtuális memória a kiszedett lapok elhelyezésére, a Linux szemetelni kezd; egy adott idő múlva ez helyrehozható, de addig a rendszer használhatatlan. Célszerű inkább előre megnézni (pl. a free paranccsal), hogy az adott swap terület kikapcsolásával marad-e elég virtuális memóriánk. A swapon -a paranccsal automatikusan aktivált swap területeket a swapoff -a kikapcsolja az /etc/fstab tartalma alapján, a kézzel bekapcsoltakat pedig békén hagyja. Néha sok swap terület lehet használatban még akkor is, ha sok szabad fizikai memóriánk van. Ez pl. úgy eshet meg, hogy egy adott időpontban szükség volt nagy swap használatra, majd egy olyan processz leállt, amely sok fizikai memóriát használt és felszabadította a memóriát. A swap területre tett adatok viszont csak akkor kerülnek be a fizikai memóriába, ha szükség van rájuk, és ha ez sokára következik be, akkor sokáig marad szabad memóriánk. Ez természetesen nem rontja a rendszer hatékonyságát, csak jó tudni, mi történik a gépünkben. 57
65 Fejezet 7. Memóriakezelés 7.4. Swap területek megosztása különböző operációs rendszerek között Sok operációs rendszer tartalmazza a virtuális memória használatának lehetőségét. Mivel mindegyiknek csak akkor van erre szüksége, amikor fut (azaz sosem egyszerre), az éppen nem futó operációs rendszerek swap területe elvész a használat szempontjából. Hatékonyabb lenne, ha egyetlen swap területen osztozna mindegyik. Ez lehetséges, de egy kis hackelést igényel. A Tips-HOWTO néhány tanácsot tartalmaz ezzel kapcsolatban A swap terület nagysága Sokan úgy vélik, hogy a fizikai memóriaméret kétszeresének megfelelő swap területet kell lefoglalni, de ez nem mindenekfelett érvényes szabály. A helyes eljárás a következő: Becsüljük meg a teljes memóriaigényt. Ez a legnagyobb memóriamennyiség, melyre egyszerre szükség lehet, azaz az egyszerre futtatni szándékozott programok memóriaigényeinek összege. Ezt legjobban kipróbálással lehet eldönteni; azaz futtassuk az összes programot egyszerre (esetleg egy már futó rendszeren), amiket valaha is egyszerre kívánunk futtatni, és mérjük a memóriaigényt. Természetesen egy jó becslés is elegendő lehet. Például az X futtatása kb. 8 MB, a gcc 4-10 MB területet igényel stb (némelyik fájl szokatlanul sok memóriát igényelhet, akár több tíz MB-ot is, de többnyire 4 MB körül szokott lenni az átlag). A rendszermag kb. 1 MB-ot foglal le, a szokásos shellek valamelyike és pár segédprogram pár száz kb-ot, azaz együtt kb. 1 MB-ot. Nem kell pontosnak lennünk, durva becslések is elegendőek, ha egy kicsit pesszimista módon inkább felfelé kerekítjük a memóriaigényt. Figyelni kell arra is, hogy ha egyszerre több ember is dolgozni fog a rendszeren, akkor annak megfelelően növekszik a memóriaigény. Bár az is igaz, hogy ha egyszerre ketten ugyanazt a programot futtatják, a memóriaigény nem kétszeres, mivel a kódlapok és az osztott könyvtárak csak egy példányban léteznek. A free és a ps parancsoknak hasznát vehetjük a becsléskor. Adjunk egy kis biztonsági tartalékot az 1. lépés eredményéhez. Egyrészt tévedhetünk az egyes programok memóriaigényének becslésekor, másrészt lehet, hogy elfeledkeztél egy majdan használandó programról, és különben is jó, ha van még egy kis szabad hely. Pár megabyte tartalék megfelelő lehet. Jobb, ha többet foglalunk, mint ha túl keveset, de túlzásokba sem kell esni, mivel a kihasználatlan swap terület elvesztegetettnek tekinthető. Ha kell, később is adhatunk plusz swap területet a rendszerhez. Továbbá, mivel szebb kerek számokkal dolgozni, kerekítsünk a legközelebbi páros megabyte-ra. Az előbbi számítások eredményeként kapunk egy teljes memóriaigényt. Így ebből a fizikai memóriaméretet kivonva megkaphatjuk a szükséges swap méretét. (Néhány UNIX változat esetén a fizikai memória képmásának is helyet kell foglalni, így nem szabad elvégezni ezt a kivonást.) Ha a kiszámolt swap méret sokkal nagyobb (mondjuk több, mint 3-szorosa) a fizikai memóriának, érdemes több fizikai memóriát beszerezni, különben a rendszer sebessége nagyon kicsi lesz. Jó, ha van legalább néhány MB swap területünk, még akkor is, ha a fenti számítás azt mutatja, hogy nem kell semennyi sem. A Linux a swap területet elég agresszíven használja, hogy a lehető legnagyobb fizikai memóriaterület legyen szabadon; akkor is kiteszi a lapozófájlba a nem használt memórialapokat, ha a fizikai memória még nem kell 58
66 Fejezet 7. Memóriakezelés semmi másra. Ez hasznos lehet, ha később mégis swappelni kell, mivel a lemezre írás már korábban megtörténik, amikor a lemez amúgy lustálkodna. A swap terület több lemezre is szétosztható. Ez néha javítja a sebességet, a lemezek és azok elérési sebességének függvényében. Érdemes lehet néhány változatot kipróbálni, bár nehéz tökéletesen kivitelezni. Ne higgyünk olyan állításoknak, hogy ez vagy az a séma jobb, mint a többi, mert nincs általánosan érvényes recept A cache puffer A lemezről való olvasás sokkal lassabb a fizikai memóriából való olvasásnál. 3 Továbbá gyakran előfordul, hogy a lemez azonos részét viszonylag rövid időn belül többször kell olvasni. Például először elolvasunk egy üzenetet, utána ezt beolvassuk egy szövegszerkesztőbe, hogy válaszoljunk rá, majd megmondjuk a levelezőprogramnak, hogy tegye be egy mappába. Vagy gondoljunk arra, milyen gyakran adják ki az ls parancsot egy többfelhasználós rendszeren. Célszerű tehát az ismétlődő olvasások esetében az első olvasást a lemezről a memóriába végezni, a többit pedig csak a memóriából olvasni újra, és ott tartani, amíg szükséges. Ez (az első olvasási műveletet leszámítva) nagyon felgyorsítja az olvasást. Ezt az eljárást lemezpufferelésnek (disk buffering), az e célra használt memóriaterületet cache puffernek (buffer cache) nevezzük. Mivel a memória - sajnálatos módon - véges, sőt, olyan erőforrás, amiből mindig kevés van, a cache puffer általában nem tud elég nagy lenni ahhoz, hogy minden adat beleférjen, amire valaha szükség lehet. Amikor a cache megtelik, a legrégebben nem használt adat kikerül innét, így a helye felszabadul az új adatok számára. A lemezpufferelés az írásra is vonatkozik. Egyrészt ugyanis a kiírt adatokra gyakran hamar szükség van újra (pl. egy kiírt forráskódot gyorsan újraolvas a fordítóprogram), így a kiírt adatok cache-be írása jó ötlet. Másrészt további gyorsítást jelenthet, ha a kiírt adat csak a pufferbe kerül, és nem íródik egyből a lemezre. A lemezre írás később is megtörténhet a háttérben, így nem lassul le a többi program. A legtöbb operációs rendszernek van cache puffere (esetleg más néven), de nem mindegyik a fenti elvek alapján működik. Vannak ún. write-through típusúak: az adatok ekkor azonnal kiíródnak a lemezre (és persze a cache-ben is megmaradnak). A cache másik típusa a write-back: ez esetben a lemezre írás késleltetve történik meg. A write-back hatékonyabb, mint a write-through, de kicsit érzékenyebb a hibákra: ha a gép elromlik, ha rosszkor kapcsoljuk ki, vagy ha a hajlékonylemezt kivesszük, még mielőtt az adatok a cache-ből kiíródtak volna rá, akkor a csak a cache-be írt lemeztartalom-változások elvesznek. Ez akár azt is jelentheti, hogy a lemezen levő fájlrendszer (ha van rajta) nem teljesen használható, mert a kiíratlan adatok közt a fájlrendszerre vonatkozó adminisztratív információk is lehetnek. A fentiek miatt sosem szabad kikapcsolni az áramot a megfelelő rendszerlezárási (shutdown) eljárás nélkül (lásd a 8 fejezet et), vagy umount nélkül kivenni a felcsatolt hajlékonylemezt, illetve illik megvárni, ha bármilyen program használja a lemezt, hogy fejezze be futását és a hajlékonylemez-meghajtó lámpája ne világítson. A sync parancs kiírja (flush) a puffert, azaz minden kiíratlan adatra kikényszeríti a tényleges írást, így használható arra, hogy megbizonyosodjunk minden adat biztonságos kiírásáról. A hagyományos UNIX rendszereken létezik egy update program, ami a háttérben fut, és 30 másodpercenként elindít egy sync parancsot, ezért ezt általában nem kell kézzel elindítani. A Linuxban van még egy bdflush nevű démon is, mely egy tökéletlen szinkronizálást indít, de gyakrabban, hogy a váratlanul fellépő fagyás ellen védekezzen, mely a sync által néha okozott erős lemezhasználat miatt léphet fel. A Linux alatt a bdflush-t az update indítja. Általában nem is kell vele törődni, de ha a bdflush mégis meghalna valamiért, a rendszermag figyelmeztetni fog, és ekkor kézzel is elindíthatjuk a /sbin/update paranccsal. A cache nem fájlokat, hanem blokkokat pufferel, melyek a lemezműveletek legkisebb egységei (a Linux alatt általában 1 kb). Ily módon a könyvtárak, a szuperblokkok, a fájlrendszer nyilvántartási adatok és a fájlrendszert nem tartalmazó lemezek is pufferelve vannak. 59
67 Fejezet 7. Memóriakezelés A cache pufferelés hatékonyságát elsősorban a cache mérete határozza meg. A kicsi cache gyakorlatilag használhatatlan: oly kevés adatot tárolhat, hogy minden adatot lemezre kell írni, mielőtt újra fel lehetne használni. A kritikus méret függ az adatforgalom nagyságától és az újrafelhasználás gyakoriságától. Az egyetlen mód a jó méret meghatározására a kísérletezés. Ha a cache rögzített méretű, nem túl jó, ha nagyon nagy, mert sok memóriát foglalhat le, és ez swappelést eredményezhet, ami lassítja a rendszert. A fizikai memória legjobb kihasználása érdekében a Linux automatikusan minden szabad RAM-ot cache puffernek használ, illetve csökkenti ennek méretét, ha a futó programok memóriaigénye nő. A Linux alatt nem kell semmit sem tenni a cache pufferrel kapcsolatban, mert minden teljesen automatikus. Csak arra kell figyelni, hogy a megfelelő rendszerleállási eljárások lefussanak, illetve lecsatoljuk a felcsatolt hajlékonylemezeket, mielőtt kivennénk a meghajtóból. Megjegyzések 1. Ez feleslegesen, de szörnyen bosszant egy csomó számítógéptudóst. 2. Egy gigabyte itt, egy gigabyte ott, hamarosan a valódi memóriáról kezdünk beszélni. 3. Kivéve persze a RAM diszkek esetét. 60
68 Fejezet 8. Rendszerindítás és leállítás Start me up Ah... you ve got to... you ve got to Never, never never stop Start it up Ah... start it up, never, never, never You make a grown man cry, you make a grown man cry (Rolling Stones) Ez a fejezet arról szól, mi történik egy Linux rendszer elindulásakor (boot) és leállításakor (shutdown), és hogyan kell ezeket helyesen végezni. Ha nem végezzük helyesen ezeket az eljárásokat el, a fájljaink sérülhetnek vagy akár el is veszhetnek A rendszer indításának és leállításának áttekintése Azt a folyamatot, amely a számítógép bekapcsolása után az operációs rendszer betöltését végzi, rendszerindításnak (booting) nevezzük. 1 A boot (csizma) név egy olyan képből származik, mely szerint a számítógép ilyenkor felhúzza a csizmáját (bootstrap). (A bootstrap eredetileg a csizma oldalára vagy elejére felvarrt bőr- vagy más anyagból készült akasztót jelentette, amelynek segítségével könnyebben fel lehetett húzni a lábra a csizmát - a ford.) A valóságban a számítógépes rendszer elindulása természetesen ennél a képnél sokkal realisztikusabb folyamat. A bootstrap közben a számítógép először egy kicsiny kóddarabot, az ún. bootstrap loadert tölt be, ami aztán folytatja a betöltést és elindítja az operációs rendszert. A bootstrap loader általában a merev- vagy hajlékonylemez meghatározott helyén található. Annak, hogy ez a folyamat két lépésből áll, az az oka, hogy egy operációs rendszer nagy és bonyolult, de a legelső kód, amit a számítógép betölt, nagyon kicsi kell legyen (pár száz byte), hogy ne legyen nagyon bonyolult a firmware (azaz a ROM-ban tárolható utasításkészlet). Különböző számítógépek különböző módon hajtják végre a bootstrap-et. A PC-ken a számítógép (pontosabban a BIOS) beolvassa a (hajlékony- vagy merev-) lemez első szektorát, amit rendszerindító szektornak (boot sector) nevezünk, és ennek tartalma a rendszerbetöltő (bootstrap loader). Ez fogja az operációs rendszert ténylegesen betölteni a lemez valamely más részéről, esetleg egészen máshonnét. A Linux betöltődése után inicializálja a hardvert és az eszközvezérlőket, majd lefuttatja az init parancsot. Az init egyéb processzeket indít, melyek pl. engedélyezik a felhasználói bejelentkezéseket. E folyamat részletesebb tárgyalása később következik. Egy Linux rendszer leállításához először minden processznek megszakító jelet kell küldeni (hogy lezárhassák a fájlokat, és rendbe tegyenek mindent, mielőtt leállnak), azután a fájlrendszereket és a swap területeket csatolja le a rendszer, végül egy üzenet kerül a konzolra, azzal a tartalommal, hogy most már lekapcsolható a számítógép. Mint már korábban említettük: ha a megfelelő rendszerleállítás elmarad, a lemezek megsérülhetnek, fájlok veszhetnek el stb., mivel így nem lesz idő a fájlrendszer cache pufferéből lemezre írni az adatokat. 61
69 Fejezet 8. Rendszerindítás és leállítás 8.2. A rendszerindítási folyamat közelebbről A Linux hajlékony- vagy merevlemezről is betölthető. Az Installation and Getting Started könyv telepítésről szóló része elmondja, hogyan telepítsük a Linuxot úgy, hogy az általunk kívánt módon induljon. Amikor egy PC elindul, a BIOS különféle teszteket végez annak ellenőrzésére, hogy minden rendben van-e. 2 Ezután indul a tényleges rendszerindítás. Először egy lemezmeghajtó kerül kiválasztásra (általában az első hajlékonylemez-meghajtó, ha van benne lemez; ha nincs, akkor az első merevlemez; a sorrendet be lehet állítani a BIOS-ban), majd a megtalált lemez legelső szektorát olvassa be a rendszer. Ezt nevezik rendszerindító szektornak (boot sector). Merevlemezeknél mindezt pontosítani kell: a master boot record (MBR) kerül beolvasásra, ugyanis egy merevlemez több partíciót is tartalmazhat, mindegyiken saját rendszerindító szektorral. A rendszerindító szektor egy kis (egy szektorban elférő) programot tartalmaz, melynek a feladata az aktuális operációs rendszer beolvasása és elindítása. Amikor hajlékonylemezről indítjuk a Linuxot, a rendszerindító szektor egy olyan kódot tartalmaz, mely csak az első néhány száz blokkot olvassa be (az aktuális rendszermag méretétől függően) a memória egy előre meghatározott helyére. Egy linuxos rendszerindító hajlékonylemezen nincs fájlrendszer, a rendszermag pusztán egymást követő szektorokban található, mivel ez egyszerűsíti az indítás folyamatát. Igaz, lehet fájlrendszerrel rendelkező hajlékonylemezről is indulni, pl. a LILO (LInux LOader) segítségével. Amikor merevlemezről indítjuk a rendszert, a master boot recordban (MBR) lévő kód megvizsgálja a partíciós táblát (az MBR-ben lévőt is), hogy azonosítsa az aktív partíciót (azaz amelyik indíthatóvá lett téve), beolvassa annak rendszerindító szektorát, és elindítja az abban talált kódot. A partíció rendszerindító szektorában található kód ugyanazt csinálja, mint egy hajlékonylemezé: beolvassa a rendszermagot és elindítja. A részletek ugyan egy kicsit változatosak, mivel általában nem célszerű egy külön partíciót fenntartani a rendszermag-fájlnak (kernel image), ezért a rendszerindító szektorban található kódnak nem elegendő pusztán sorban beolvasnia a lemez blokkjait, hanem meg kell találnia azokat a blokkokat, ahova a fájlrendszer elhelyezte a rendszermag-fájlt. Több megoldás is létezik erre a problémára, de a legelterjedtebb a LILO használata. (A részletek nem lényegesek az itteni tárgyalás szempontjából. A LILO dokumentációja aprólékos felvilágosítással szolgál.) A LILO-val való rendszerindítás során általában az alapértelmezett rendszermag töltődik be. A LILO beállítható úgy is, hogy több operációs rendszer, vagy egy operációs rendszer több rendszermagja közt választást biztosítson, és azt töltse be a rendszerindításkor. Beállítható úgy is, hogy ha induláskor lenyomjuk az alt, shift vagy ctrl billentyűk egyikét, akkor ne az alapértelmezett módon induljon, hanem a felhasználó választása szerint. A LILO akár úgy is beállítható, hogy mindig kérdezzen, de egy megadott várakozási idő után automatikusan töltse be az alapértelmezett rendszert. A LILO lehetővé teszi egy rendszermag parancssori argumentum megadását a rendszermag vagy operációs rendszer neve után. A hajlékony- illetve merevlemezről való rendszerindításnak egyaránt vannak előnyei és hátrányai, de a merevlemezről való indítás többnyire kellemesebb, mert ekkor egyrészt nem kell a hajlékonylemezekkel babrálni, és gyorsabb is. Igaz az is, hogy több hibalehetőséget rejt a merevlemezről való indítás, ezért sokan eleinte hajlékonylemezről indítják a rendszert, majd amikor a rendszer már kipróbáltan jól működik, akkor telepítik a LILO-t a merevlemezről való indításhoz. Miután a Linux rendszermag valamilyen módon bekerült a memóriába és valóban elindult, körülbelül a következők történnek: A Linux rendszermag a lemezen tömörítve van, ezért először kicsomagolja önmagát. A rendszermag-fájl eleje egy kis programot tartalmaz e célból. 62
70 Fejezet 8. Rendszerindítás és leállítás Ha olyan SVGA kártyád van, melyet a Linux felismer, és annak vannak speciális szöveges módjai (mint pl. 100 oszlop, 40 sor), a Linux megkérdezi, melyik módban akarod használni. A rendszermag-fordítás közben, vagy az után az rdev parancs segítségével a video mód előre beállítható a rendszermagnak, ilyenkor nem kérdez rá az üzemmódra. Ugyanezt a LILO segítségével is megoldhatjuk. Ezután a rendszermag ellenőrzi, milyen hardver elemek (merevlemezek, hajlékonylemez meghajtók, hálózati kártyák, stb.) léteznek a gépben, és megpróbálja ezek eszközmeghajtóit megfelelően beállítani. A hardverelemek megtalálásáról üzenetet is ad. Pl. amikor az én gépem indul, ilyesmi látszik a képernyőn: LILO boot: Loading linux. Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.94 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a tty01 at 0x02f8 (irq = 3) is a lp_init: lp1 exists (0), using polling driver Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k data) Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M Loopback device init Warning WD8013 board not found at i/o = 280. Math coprocessor using irq13 error reporting. Partition check: hda: hda1 hda2 hda3 VFS: Mounted root (ext filesystem). Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20 A pontos szöveg természetesen eltérő lesz más rendszerek esetén, annak függvényében, hogy milyen hardverelemek vannak a gépben, a rendszermag melyik változatát használjuk, és az hogy van beállítva. Ezután a rendszermag megpróbálja felcsatolni (mount) a gyökér fájlrendszert. Ennek helye a rendszermag fordításakor is megadható, vagy később az rdev parancs segítségével, esetleg a LILO-val. A fájlrendszer típusát automatikusan felismeri a rendszer. Ha a gyökér fájlrendszer felcsatolása nem sikerül, mert pl. elfelejtetted a megfelelő fájlrendszert belefordítani a rendszermagba, akkor "pánikba esik" (kernel panic) és megállítja a rendszert (mást úgysem nagyon tudna tenni). A gyökér fájlrendszer általában csak olvasható (read-only) módban csatolódik először (ez is beállítható), ami lehetővé teszi az ellenőrzését a felcsatolás közben. (A lemezekről szóló részben írtak szerint nem szabad írható fájlrendszert ellenőrizni.) Ezután a rendszermag elindítja az init programot (amelynek teljes elérési útja: /sbin/init) a háttérben. (Értelemszerűen az init processz azonosítója mindenképpen 1 lesz.) Az init különféle indító tennivalókat végez el, melyek pontos listája konfigurációfüggő. (Lásd a 9 fejezetet.) Az biztos, hogy legalább néhány létfontosságú démon elindul ekkor a háttérben. Az init ezután többfelhasználós üzemmódba kapcsol, és elindítja a getty programot a virtuális konzolokra és a soros vonalakra, így lehetővé teszi a bejelentkezést a felhasználók számára. Az init elindíthat még más programokat is a beállításától függően. Ezzel a rendszerindítás kész van, és a rendszer normálisan fut tovább. 63
71 Fejezet 8. Rendszerindítás és leállítás 8.3. A rendszerleállítás közelebbről Fontos, hogy kövessük a rendszerleállítás helyes módját, ha leállítunk egy Linux rendszert. Ha nem így teszünk, a fájlrendszerek megsérülhetnek, mivel a Linux csak időnként hozza szinkronba a lemez cache és a lemez tényleges tartalmát. Ez ugyan javítja a rendszer teljesítményét működés közben, de azt is jelenti, hogy egy rossz rendszerleállás (pl. hirtelen lekapcsoljuk a főkapcsolót) adatvesztést és rendszersérülést okozhat. Egy másik ok, ami az egyszerű kikapcsolás ellen szól, hogy egy többfeladatos (multitaskig) rendszerben sok processz futhat a háttérben, és ezekre az áram lekapcsolása szörnyű hatással lehet. A megfelelő rendszerleállítási (shutdown) eljárás esetén ezek el tudják menteni adataikat, nem csak meghalnak egy pillanat alatt. A Linux rendszerekben a shutdown parancs szolgál a rendszer leállítására. Általában két módon szokás használni. Ha olyan rendszert futtatsz, ahol te vagy az egyetlen felhasználó, a shutdown használatának szokásos módja az, hogy kilépsz minden futó programból, kijelentkezel minden virtuális konzolról, valahol bejelentkezel rootként (vagy bejelentkezve maradsz, ha korábban már megtetted, de ekkor válts a root home könyvtárába, vagy a gyökérkönyvtárba, hogy elkerüld a lecsatolással járó problémákat), majd kiadod a shutdown -h now parancsot (a now helyettesíthető a + jellel és a percek számával, ha késleltetni akarod a leállást, de ha egyedül vagy bejelentkezve, erre nincs szükség). A másik mód akkor használatos, ha a rendszeren több felhasználó is van. Ekkor a shutdown -h +time message használata célszerű, ahol time az az idő percekben mérve, amennyi múlva a rendszer leáll, a message pedig egy rövid üzenet, amely a leállás okát magyarázza. Nézzük a következő példát: # shutdown -h +10 Új merevlemezt telepítünk. A rendszer három óra múlva indul újra. # Ez mindenkit figyelmeztet, hogy 10 perc múlva leáll a rendszer, és még az üzenetet is megkapják a felhasználók minden terminálon, melyen valaki bejelentkezett, és minden xterm ablakban is: Broadcast message from root (ttyp0) Wed Aug 2 01:03: Új merevlemezt telepítünk. A rendszer három óra múlva indul újra. The system is going DOWN for system halt in 10 minutes!! A figyelmeztetés automatikusan megismétlődik a leállás előtt néhányszor, egyre gyakrabban, ahogy annak ideje közeledik. Amikor a rendszerleállás ténylegesen elindul, a gyökér kivételével minden fájlrendszer lecsatolódik, a felhasználók processzeit (ha még létezik olyan) megszakítja a rendszer, a démonok leállnak, minden fájlrendszer lecsatolódik, és általában minden leáll. Amikor ez kész van, az init kiír egy üzenetet, hogy most már lekapcsolható a számítógép. Ekkor, és csakis ekkor szabad a kapcsoló után nyúlni. Néha még jól karbantartott rendszerekkel is megesik, hogy nem lehet megfelelően leállítani a rendszert. Például ha a rendszermag pánikol, vagy bármi más módon rendellenesen viselkedik, lehetetlen további parancsokat kiadni, így a rendszerleállási folyamat sem fog lefutni. Ekkor csak reménykedni lehet, hogy semmi sem sérül komolyan, majd lekapcsolni az áramot. Ha a probléma nem ennyire súlyos (pl. valaki egy fejszével szétverte a billentyűzetet), és a rendszermag, valamint az update rendesen fut, érdemes várni pár percet, hogy a cache puffer és a lemez tartalma szinkronba kerülhessen, majd azután lekapcsolni az áramot. Vannak, akik a rendszerleállást a sync paranccsal szeretik elvégezni 3. Az elgondolás az, hogy háromszor kiadva a sync-et, majd megvárva, hogy minden lemezművelet befejeződjön, biztonsággal lekapcsolható a számítógép. Ha 64
72 Fejezet 8. Rendszerindítás és leállítás nincsenek futó programok, ez majdnem egyenértékű a shutdown-nal. Azonban ezzel az eljárással a fájlrendszerek nem lesznek lecsatolva, ami problémát okozhat az ext2 rendszer clean filesystem bitjénél. Ezen kívül az esetleges elfelejtett felhasználók és processzek sem tudnak szépen kilépni. Ezért a tripla sync módszer nem ajánlott. (Ha érdekel: annak oka, hogy háromszor kell kiadni a sync-et az, hogy a korai UNIX rendszerek esetében a parancs háromszori begépelése általában elegendő időt adott a lemeznek a műveletek befejezésére.) 8.4. Újraindítás (reboot) A rendszer újraindítása egyenértékű egy rendszerleállás, lekapcsolás, majd rendszerindítás egymás utáni kiadásával. Ennél egyszerűbb módszer megkérni a shutdown-t, hogy indítsa újra a rendszert a leállás után. Ezt a -r opcióval érhetjük el, mint pl.: shutdown -r now. A legtöbb Linux rendszer a shutdown -r now parancsot futtatja, amikor a billentyűzeten lenyomjuk a ctrl-alt-del kombinációt, azaz ekkor a rendszer újraindul. Azonban beállíthatjuk, hogy mi történjék a ctrl-alt-del megnyomásakor, pl. többfelhasználós rendszeren célszerű egy kis várakozást beiktatni. Azokon a rendszereken pedig, melyek fizikailag bárki számára elérhetők, célszerű azt beállítani, hogy a ctrl-alt-del megnyomására ne történjen semmi Egyfelhasználós (single user) mód A shutdown parancs arra is használható, hogy a rendszert egyfelhasználós módba vigye, amely módban senki sem jelentkezhet be, csak a root a konzolról. Ez olyan rendszeradminisztrációs feladatok ellátásakor lehet hasznos, melyet normál üzemben nem lehet elvégezni Rendszerindító-hajlékonylemez vészhelyzet esetére Előfordulhat, hogy nem lehet elindítani a számítógépet a merevlemezről. Például ha rosszul állítod be a LILO-t, a rendszer indíthatatlanná válhat. Ezekre az esetekre kell egy olyan rendszerindítási mód, amely mindig működik (amíg a hardver jó). A szokásos PC-k esetén erre a hajlékonylemezről való rendszerindítás felel meg leginkább. A legtöbb Linux terjesztés lehetővé teszi a vészindító lemez (emergency boot floppy) létrehozását a telepítés során. Ez egy jó ötlet, azonban ezek a lemezek néha csak a rendszermagot tartalmazzák, és feltételezik, hogy azokkal a programokkal, melyek a terjesztés telepítőlemezein rajta vannak, el tudod hárítani a hibát. Néha még ezek a programok sem elegendőek, pl. ha néhány fájlt biztonsági mentésből kellene visszaállítani, de a mentést olyan szoftverrel hajtottad végre, ami nincs rajta a telepítőlemezeken. Ezért szükség lehet egy testreszabott root lemezt előállítására is. Graham Chapman Bootdisk HOWTO dokumentációja erről a témáról részletes információkat tartalmaz. Természetesen gondoskodni kell arról, hogy a vészindító lemez mindig az aktuális rendszerhez illeszkedjék. A használatban levő hajlékonylemez-meghajtó nem használható a root lemez felcsatolásán kívül semmi másra. Ez kényelmetlen lehet, ha csak egy hajlékonylemez-meghajtód van. Ez megoldható, ha elegendő RAM van: az indítólemezt állítsd be úgy, hogy a root lemezt memórialemezre (RAM-disk) töltse. Ehhez a hajlékonylemezen használt rendszermagot kell speciálisan beállítani. Amint a root floppy betöltődött a memórialemezbe, a hajlékonylemez-meghajtó használhatóvá válik más lemezek felcsatolására. 65
73 Megjegyzések Fejezet 8. Rendszerindítás és leállítás 1. A régi számítógépeken nem volt elég csak bekapcsolni a berendezést, hanem kézzel kellett betölteni az operációs rendszert is. Ezek az új divatú csodagépek mindezt maguk megteszik. 2. Ezt szokás power on self testnek vagy röviden POST-nak nevezni. 3. A sync a cache puffert kiírja a lemezre 66
74 Fejezet 9. init Uuno on numero yksi (Egy finn filmsorozat szlogenje) Ez a fejezet az init processzt írja le, mely az első felhasználói szintű program, amelyet a rendszermag indít. Az init-nek nagyon sok fontos feladata van, mint pl. elindítani a getty-t, hogy a felhasználók bejelentkezhessenek, megvalósítani a futási szinteket és gondját viselni az elárvult processzeknek. Ez a fejezet arról szól, hogyan állítható be az init, és hogyan használhatók a különféle futási szintek Az init az első Az init egyike azon programoknak, melyek alapvetőek egy Linux rendszer működése szempontjából, ám többnyire nem veszünk róla tudomást. Egy jó Linux terjesztés egy olyan beállítású init-tet tartalmaz, mely a legtöbb rendszeren megfelelően működik, és ekkor nem szükséges vele kapcsolatban tenni semmit. Általában csak akkor kell az init-tel foglalkozni, ha soros terminált vagy betárcsázó modemet kapcsolunk a géphez, vagy ha meg akarjuk változtatni az alapértelmezett futási szintet. Amikor a rendszermag elindítja önmagát (azaz betöltődött a memóriába, elindult, inicializálta az eszközvezérlőket és az adatstruktúrákat), a rendszerindítás folyamatának rá eső részét egy felhasználói szintű program, az init indításával fejezi be. Ezért az init mindig a legelső processz, azaz processzazonosítója mindig 1. A rendszermag az init-et néhány olyan helyen keresi, ahol a rendszer korábbi változataiban lenni szokott, de egy Linux rendszeren az igazi helye a /sbin/init. Ha a rendszermag sehol sem találja az init-et, megpróbálja futtatni a /bin/sh-t, és ha azt sem találja, a rendszer indítása sikertelenül fejeződik be. Amikor az init elindul, először a rendszerindítási folyamatot fejezi be néhány adminisztratív feladat elvégzésével. Ilyen pl. a fájlrendszerek ellenőrzése, a /tmp kitakarítása, különféle szolgáltatások elindítása és a getty indítása minden terminálra illetve virtuális konzolra, ahonnét a felhasználók bejelentkezhetnek. (Lásd a 10 fejezet et.) Amikor a rendszer megfelelően felállt, az init újraindítja a getty-t azokra a terminálokra, ahonnét a felhasználók kijelentkeztek, hogy a következő felhasználó bejelentkezhessen. Az init továbbá örökbe fogadja (adopt) az árva (orphan) processzeket: amikor egy processz gyermekprocesszt (child process) indít, és gyermeke előtt meghal, a gyermek azonnal az init gyermekévé válik. Ez többféle technikai okból fontos, és jó tudni róla, mivel könnyebben érthetővé teszi a processzek listáját és fadiagramjait. 1 Az init-nek van néhány változata. A legtöbb Linux terjesztés a sysvinit-et használja (Miquel van Smoorenburg alkotása), amely a System V init-jén alapul. A UNIX BSD változatainak más az init programja. Az alapvető különbség a futási szintekben van: a System V-nek vannak futási szintjei, a hagyományos BSD-nek nincsenek. Ez a különbség nem lényeges. A továbbiakban mi a sysvinit-tel foglalkozunk Az init beállítása a getty elindítására: az /etc/inittab fájl Induláskor az init az /etc/inittab konfigurációs fájlt olvassa be. A rendszer futása közben ezt újraolvassa, ha HUP jelzést kap, 2 így a rendszer újraindítása nélkül tudjuk érvényesíteni az init beállításának változását. Az /etc/inittab fájl szerkezete kicsit bonyolult. Egy egyszerű esettel, a getty sorok beállításával foglalkozunk először. Az /etc/inittab sorai négy, kettősponttal határolt mezőre oszlanak: 67
75 Fejezet 9. init id:runlevels:action:process A mezőket lejjebb írjuk le. Ezen kívül a /etc/inittab tartalmazhat üres sorokat és # jellel kezdődőket, melyeket figyelmen kívül hagy. id Ez azonosítja a fájlon belüli sort. A getty soroknál ez adja meg a terminált, amelyen fut, pontosabban a /dev/tty utáni karaktereket az eszközfájl nevében. Más soroknál lényegtelen a tartalma (de nem lehet túl hosszú), és egyedinek kell lennie. runlevels A futási szintek, melyekre a sor vonatkozik. A szinteket egyetlen számként kell megadni, elválasztójel nélkül. (A futási szinteket a következő alfejezet tárgyalja.) action Mit kell tenni a megadott sorral. Pl. ciklikusan végrehajtani (respawn), vagy csak egyszer futtatni (once). process A futtatandó parancs. Egy getty-t indítani az első virtuális terminálon (azaz a /dev/tty1-en) minden normális többfelhasználós futási szinten (2-5) a következő módon lehet: 1:2345:respawn:/sbin/getty 9600 tty1 Az első mező azt jelzi, hogy ez a sor a /dev/tty1-re vonatkozik. A második mező szerint ez a 2, 3, 4 és 5 futási szinteken érvényes. A harmadik mező azt jelenti, hogy a parancsot újra futtatni kell, ha kilép (így újra be lehet jelentkezni az adott terminálon kilépés után). Az utolsó mező az a parancs, amely futtatja a getty programot az első virtuális terminálon. 3 Ha terminálokat vagy betárcsázó modemvonalakat akarunk hozzáadni a rendszerhez, mindegyikhez egy-egy sort kell beleírni a /etc/inittab fájlba. A részleteket az init, inittab és getty kézikönyv oldalakon találhatjuk meg. Ha egy parancs induláskor máris hibával áll le, és az init úgy van beállítva, hogy újraindítsa ezt, az sok erőforrást köthet le: a program elindul, leáll, újraindul, újra leáll stb, a végtelenségig. Ez elleni védekezésként az init figyeli, hogy milyen gyakran indít újra egy parancsot, és ha ez átlép egy bizonyos gyakoriságot, öt percig késlelteti ennek újraindítását Futási szintek (run levels) A futási szint (run level) az init és ezen keresztül az egész rendszer állapotjelzője, ami meghatározza, mely szolgáltatások működnek. A futási szinteket számokkal azonosítjuk (9-1 Táblázat). Nincs egyetemes szabály a 68
76 Fejezet 9. init felhasználói futási szintek (2-5) működésére. Néhány rendszeradminisztrátor a futási szinteket annak beállítására használja, hogy mely alrendszerek működjenek, pl. hogy fut-e az X, működik-e a hálózat stb. Mások mindig minden alrendszert elindítanak, és egyedileg állítják le vagy kapcsolják vissza őket, a futási szint változtatása nélkül, mivel a futási szintek túl durvák rendszerük vezérlésére. Magadnak kell dönteni, melyiket választod, de egyszerűbb lehet azt az utat választani, amit a Linux terjesztésed felkínál. Táblázat 9-1. Futási szintek 0 Rendszerleállítás (halt). 1 Egyfelhasználós mód (single-user mode) (speciális rendszeradminisztrációhoz). 2-5 Normál működés (felhasználó által definiált). 6 Újraindítás (reboot). A futási szinteket az /etc/inittab fájlban állíthatjuk be, például a következő módon: l2:2:wait:/etc/init.d/rc 2 Az első mező egy tetszőleges címke; a második azt jelenti, hogy ez a sor csak a 2. futási szintre vonatkozik. A harmadik mező azt jelenti, hogy az init-nek csak egyszer, a futási szintbe való belépéskor kell futtatni a negyedik mezőben megadott parancsot, és meg kell várni, hogy az befejeződjön. A megadott /etc/init.d/rc parancs bármilyen más parancsokat futtathat, melyek ahhoz szükségesek, hogy belépjünk a 2. futási szintre. A negyedik mező parancsa végez minden komoly munkát a futási szint beállításával kapcsolatban. Elindítja azokat a szolgáltatásokat, melyek még nem futnak, és leállítja azokat, melyeknek nem kell futniuk az új futási szinten. Az adott Linux terjesztést?l függ, hogy ezek pontosan milyen parancsokat takarnak, és hogyan állították be a futási szinteket. Amikor az init elindul, keres az /etc/inittab fájlban egy olyan sort, mely az alapértelmezett futási szintet állítja be: id:2:initdefault: Az init beállítható úgy is, hogy induláskor ne az alapértelmezett futási szinten induljon el, ha a rendszermagnak single vagy emergency paramétert adunk. A rendszermagnak parancssori argumentumok pl. a LILO-n keresztül adhatók át. Ezáltal egyfelhasználós üzemmódba kerülünk (1-es futási szint). A rendszer futása közben a telinit paranccsal változtathatjuk meg a futási szintet. A futási szint megváltoztatásakor az init a megfelelő parancsokat lefuttatja az /etc/inittab alapján Speciális beállítások az /etc/inittab fájlban Az /etc/inittab fájlnak van néhány különleges beállítási lehetősége, melyek segítségével az init különleges körülményekre is reagálni tud. Ezeket a harmadik mezőben speciális kulcsszavakkal jelöljük. Íme néhány példa: powerwait Lehetővé teszi, hogy az init áramkimaradás esetén is leállítsa a rendszert. Ez feltételezi egy UPS meglétét, valamint olyan szoftvert, amely figyeli az UPS-t és tájékoztatja az initet az áramszünetről. 69
77 Fejezet 9. init ctrlaltdel Lehetővé teszi, hogy az init újraindítsa a rendszert, amennyiben a felhasználó megnyomja a ctrl-alt-del billentyűkombinációt a konzolon. Megjegyezzük, hogy a rendszeradminisztrátor úgy is beállíthatja a ctrl-alt-del-re való reagálást, hogy más történjen (vagy éppen ne történjék semmi, pl. egy bárki számára elérhető konzol esetén); esetleg elindulhat ennek hatására a nethack. sysinit A rendszerindításkor futtatandó parancs. Ez általában a /tmp kitakarításával és hasonlókkal foglalkozik. Ez a felsorolás nem teljes. A inittab kézikönyv oldala leír minden lehetőséget, és részleteket a fentiek használatáról Rendszerindítás egyfelhasználós üzemmódban Nagyon fontos futási szint az 1-es, melynek neve egyfelhasználós üzemmód (single user mode), amely esetén csak a rendszeradminisztrátor használja a gépet, és csak a lehető legkevesebb szolgáltatás fut. Az egyfelhasználós üzemmód szükséges néhány adminisztratív feladathoz 4, mint pl. az fsck futtatása az /usr partíción. Ez ugyanis a partíció lecsatolását igényli, ami csak a legtöbb rendszerszolgáltatás kikapcsolásával lehetséges. Egy futó rendszer a telinit paranccsal állítható egyfelhasználós üzemmódba, azaz 1-es futási szintre. Rendszerindításkor pedig a rendszermag parancssorába írhatjuk be a single vagy emergency szavakat, hogy ugyanezt elérjük. A rendszermag ezt ugyanis továbbadja az init-nek, ami ebből tudja, hogy nem az alapértelmezett futási szinten kell indulnia. (A rendszermag parancssorának bevitele a rendszerindítás módjától függ, pl. a LILO vagy a GRUB segítségével oldható meg egyszerűen.) Egyfelhasználós módban való rendszerindítás néha szükséges lehet, pl. az fsck kézzel való futtatásához, mielőtt bármi felcsatolódna. Ugyanis ha pl. az /usr partíció komolyan megsérül, akkor minden további hozzáférés az ezen lév? fájlokhoz tovább szaporítja a hibák számát, így az ellenőrzést az első lehetséges alkalommal el kell végezni. Az init által lefuttatott rendszerindító szkriptek automatikusan egyfelhasználós üzemmódba lépnek be, ha az automatikus fsck súlyos hibát észlel. Ez védi a rendszert egy olyan fájlrendszer használatától, mely nem javítható automatikusan. Ez az eset viszonylag ritka, és általában fizikailag sérült merevlemeznél, vagy kísérleti rendszermagnál fordul elő, de jó, ha felkészülünk rá. Biztonsági okokból egy jól felépített rendszer megkérdezi a root jelszót a shell indítása előtt egyfelhasználós üzemmódban. Különben egyszerű lenne egy megfelelő sor beírásával a LILO-t arra utasítani, hogy root jogokkal indítsa el bárki a rendszert. Természetesen ez nem működik, ha a /etc/passwd fájlrendszer-hiba miatt megsérült; ekkor csak egy rendszerindító hajlékonylemez segíthet. Megjegyzések 1. Az init maga nem halhat meg, még SIGKILL hatására sem. 70
78 Fejezet 9. init 2. Pl. úgy, hogy a root felhasználó egy kill -HUP 1 parancsot ad ki. 3. A getty különféle verziói eltérő módon futnak, ennek érdemes utánanézni a megfelelő kézikönyv oldalon. 4. Nem alkalmas a nethack programmal való játszadozásra. 71
79 Fejezet 10. Be- és kijelentkezés Nem érdekel, ha egy olyan klubhoz tartozom, amelybe hozzám hasonló emberek léphetnek be. (Groucho Marx) Ez a fejezet azt írja le, mi történik, ha egy felhasználó be- vagy kijelentkezik. A háttérprocesszek, naplófájlok (log files), beállítási fájlok különféle kölcsönhatásai kerülnek itt ismertetésre némi részletességgel Bejelentkezés terminálokon keresztül A 10-1 Ábra bemutatja, hogyan történnek a terminálon keresztüli bejelentkezések. Először az init megbizonyosodik arról, hogy van egy getty program a terminál (vagy konzol) csatlakoztatására. (Ha nincs, akkor indít egyet.) A getty figyeli a terminált és arra vár, hogy egy felhasználó jelezze belépési szándékát (ez általában valaminek a begépelését jelenti). Amikor észrevesz egy ilyen kísérletet, a getty egy üdvözlő üzenetet küld, ami az /etc/issue fájlban található, majd bekéri a felhasználó nevét, végül futtatja a login programot. A login megkapja a felhasználó nevét (username) paraméterként, és bekéri a jelszót. Ha a jelszó megfelelő volt, a login elindítja a felhasználónak beállított shell-t; ellenkező esetben kilép és megszakítja a folyamatot. (Általában a felhasználónak van egy-két próbálkozási lehetősége előtte, számítva a véletlen félregépelésekre.) A kilépés után az init észreveszi, hogy a folyamat megszakadt, és egy új getty-t indít a terminálra. 72
80 Ábra Bejelentkezés terminálon keresztül: az init, a getty, a login és a shell kölcsönhatása. Fejezet 10. Be- és kijelentkezés Figyeljük meg, hogy az init által fork rendszerhívással indított egyetlen új processz a getty, és a login csak ezt helyettesíti az exec rendszerhívás útján. Egy külön program szükséges a felhasználó észlelésére a soros vonalakon keresztül való bejelentkezésekkor, mivel a terminál aktívvá válásának felismerése bonyolult lehet. A getty alkalmazkodik a kapcsolat sebességéhez és egyéb beállításaihoz, ami különösen a betárcsázó kapcsolatoknál fontos, ahol ezek a paraméterek hívásról hívásra változhatnak. A getty és init programoknak több változata használatos, és mindegyiknek van előnye és hátránya is. Jó ötlet, ha először a rendszeren lévőket tanulmányozzuk, majd a más változatokat. (A Linux Software Map segíthet a más változatok keresésében.) Ha nincsenek betárcsázós vonalaid, akkor többnyire nem kell törődni a getty programmal, 73
81 Fejezet 10. Be- és kijelentkezés de az init továbbra is fontos lehet Bejelentkezés hálózaton keresztül Két, azonos hálózaton levő számítógép általában egyetlen kábellel van fizikailag összekötve. Amikor a hálózaton keresztül kommunikálnak, a gépek azon programjai, melyek részt vesznek a kommunikációban, egy virtuális kapcsolatban (virtual connection) vesznek részt, ami olyan, mint egy képzeletbeli kábelre való csatlakozás. Amíg a kapcsolat bármelyik oldalán levő programok foglalkoznak a virtuális kapcsolattal, addig monopóliumuk van erre a kábelre. Mivel viszont a kábel nem valódi, csak képzeletbeli, a számítógépek egyszerre több virtuális kapcsolatot is fenntarthatnak egyetlen fizikailag létező kábelen keresztül. Emiatt egyszerre több program is képes azonos kábelen kommunikálni, egymást nem zavarva és egymással nem törődve. Továbbá több számítógép is lehet egyetlen kábelen, mert a virtuális kapcsolat két számítógép közt létezik, és a többi számítógép figyelmen kívül hagyhatja a rájuk nem tartozó kommunikációt. A fenti bekezdés a valóságnak egy bonyolult és kissé túlzottan elvonatkoztatott leírása. Arra azonban jó, hogy megértsük, miért különbözik a hálózati bejelentkezés a normálistól. A virtuális kapcsolat akkor keletkezik, amikor két program, két különböző számítógépen kommunikálni akar. Mivel viszont egy hálózatban elvileg minden számítógépről minden számítógépre megengedett a bejelentkezés, a lehetséges virtuális kapcsolatok száma igen nagy. Emiatt nem célszerű minden lehetséges bejelentkezésre külön getty-t futtatni. Egyetlen processz, az inetd (ami a getty megfelelője) kezeli az összes lehetséges hálózati bejelentkezést, azaz ez játssza a login szerepét. Amikor ez egy bejövő hálózati bejelentkezést észlel (azaz észreveszi egy másik számítógéphez vezető új virtuális kapcsolat kialakulását), új processzt indít annak az egy bejelentkezésnek kezelésére. Az eredeti processz pedig folytatja a várakozást a további bejelentkezési igényekre. Hogy az egész még bonyolultabb legyen, több mint egy kommunikációs protokoll létezik a hálózati bejelentkezésekre. A két legfontosabb a telnet és az rlogin. Továbbá sokféle virtuális kapcsolat is létrehozható (az FTP, Gopher, HTTP és más hálózati szolgáltatásokhoz). Nem lenne hatékony, ha külön-külön processzek figyelnék a különféle kommunikációkat, ezért csak egyetlen figyelőprogram van, ami mindezekkel törődik, és a megfelelő programot indítja a szolgáltatás biztosítására. Ez a program az inetd, melyről a Linux Network Administrators Guide-ban található bővebb információ Mit csinál a login A login program törődik a felhasználó azonosításával, azaz a felhasználói név és a hozzá tartozó jelszó egyezésének vizsgálatával, valamint egy kezdeti környezetet állít fel a felhasználónak a soros vonal engedélyeinek beállításával, valamint a shell elindításával. A kezdeti beállítások részeként az /etc/motd fájl tartalma kerül a kimenetre (motd = message of the day; a nap üzenete), és az új ellenőrzése történik meg. Ezek kikapcsolhatók, ha a felhasználó home könyvtárában létrehozunk egy.hushlogin fájlt. Ha az /etc/nologin fájl létezik, a bejelentkezések nem engedélyezettek. Ezt a fájlt általában a shutdown és a hozzá hasonló programok hozzák létre. A login ellenőrzi e fájl meglétét, és minden bejelentkezést visszautasít, ha ez a fájl létezik. Ilyenkor a login kiírja e fájl tartalmát a bejelentkezést megkísérlő terminálra, mielőtt kilépne. A login minden sikertelen bejelentkezési kísérletet egy rendszer-naplófájlba jegyez fel a syslog-on keresztül. Továbbá a root minden bejelentkezését is naplózza. Mindegyik hasznos lehet behatolók nyomozásakor. 74
82 Fejezet 10. Be- és kijelentkezés A pillanatnyilag bejelentkezett felhasználók a /var/run/utmp fájlban vannak felsorolva. Ez a fájl csak a következő rendszerindításig érvényes, ugyanis a rendszerindító folyamat törli tartalmát. Itt megtalálható minden felhasználó és a bejelentkezésre használt terminál (vagy hálózati kapcsolat), és még néhány hasznos információ. A who, w és hasonló parancsok az utmp fájl tartalma alapján dolgoznak. Minden sikeres bejelentkezés a /var/log/wtmp fájlban kerül könyvelésre. Ez korlátlanul növekedhet, ezért rendszeresen törölni kell. Használható pl. a cron a hetenkénti törlés beállítására. (A jó Linux terjesztések ezt alapértelmezés szerint tudják.) 1 A last parancs ezt a fájlt használja. Az utmp és wtmp fájlok bináris formátumúak (lásd a kézikönyv oldalakat), ezért speciális programok használata nélkül nem szerencsés vizsgálni tartalmukat Az X és az xdm XXX Az X az xdm -en keresztül valósítja meg a bejelentkezéseket; valamint: xterm -ls Az elérési jogok szabályozása A felhasználói adatbázis a szokások szerint az /etc/passwd fájlban van. Néhány rendszer árnyék jelszavakat (shadow passwords) használ, azaz a jelszavakat az /etc/shadow -ba teszi. Azokon a helyeken, ahol több számítógép osztozik a felhasználói engedélyeken, a NIS, vagy más módszer az, amit a felhasználói adatbázis tárolására használnak; ezek automatikusan másolhatják az adatbázist egy központi helyről a többi számítógépre. A felhasználói adatbázis nemcsak a jelszavakat, hanem néhány egyéb információt is tartalmaz a felhasználókról, mint pl. a valódi nevük, home könyvtáruk és a bejelentkezési burokprogramjuk (login shell). Ezek az utóbbi információk publikusak, ezért az ezeket tároló /etc/passwd fájl mindenki számára olvasható. Emiatt viszont az itt tárolt jelszavakat titkosítani kell. Ennek megvan az a hátránya, hogy a titkosított jelszóhoz bárki hozzáférhet, és különféle titkosítási módszerekkel kísérletezhet a visszafejtésén, bejelentkezési kísérletek nélkül. Az árnyék jelszó pontosan ez ellen kíván védekezni azáltal, hogy a titkosított jelszavakat olyan fájlba viszi, melyet csak a root olvashat. Bizonyos Linux terjesztések esetén azonban bonyolult egy már futó rendszerre telepíteni az árnyék jelszavak használatát. (Manapság ez alapértelmezett - a lektor) Mindenképpen fontos, hogy a rendszer összes jelszava jó, azaz nehezen kitalálható legyen. A crack program használható jelszavak feltörésére; minden jelszó, amit ez megtalál, definíció szerint rossz. A crack-et nemcsak a behatoló futtathatja, hanem a rendszeradminisztrátor is, hogy védekezzen a rossz jelszavak ellen. Jó jelszavakat a passwd program is kikényszeríthet; ez hatékonyabb is a CPU-t tekintve, mert a jelszavak feltörése sok számítást igényel. A felhasználói csoportok adatbázisa az /etc/group fájlban, illetve árnyékjelszavak esetén az /etc/shadow.group fájlban található. Egy jól felépített rendszerben a root általában nem tud bejelentkezni a legtöbb terminálon, illetve hálózaton keresztül, csak akkor, ha az adott terminál fel van sorolva az /etc/securetty fájlban. Ez lehetetlenné teszi, hogy egy nem előírt helyről rootként lehessen bejelentkezni, azaz növeli a biztonságot. Igaz ugyan, hogy bárhonnét be lehet jelentkezni normál felhasználóként, majd a su paranccsal root jogosultságokat szerezni, ha ismerjük a root jelszavát. 75
83 Fejezet 10. Be- és kijelentkezés shell indítás Amikor egy interaktív bejelentkezési shell elindul, automatikusan végrehajt egy vagy több bejelentkezési fájlt. Különböző shell-ek különböző fájlokat hajtanak végre, melyek a megfelelő shell dokumentációjában vannak leírva. A legtöbb shell először egy globális fájlt futtat, pl. a Bourne shell (/bin/sh) és leszármazottai az /etc/profile-t, majd a felhasználó home könyvtárában levő.profile-t. Az /etc/profile lehetővé teszi, hogy a rendszeradminisztrátor közös környezetet adjon a felhasználóknak, pl. helyesen beállítsa a PATH környezeti változót, hogy a helyi programfájlok könyvtárait is tartalmazza. A.profile pedig a felhasználónak engedi meg a környezet ízlése szerinti beállítását, akár a központi beállítások felülbírálásával. Megjegyzések 1. A jó Linux terjesztésekben ez alapértelmezés szerint be is van állítva. 76
84 Fejezet 11. A felhasználói fiókok (account) menedzselése The similarities of sysadmins and drug dealers: both measure stuff in Ks, and both have users. (A rendszergazdák és a drogdealerek közös jellemzője, hogy K-ban mérik az anyagot és felhasználóik vannak) - Régi, fárasztó számítógépes vicc. Ez a fejezet elmagyarázza, hogyan hozhatók létre új felhasználói fiókok (account), hogyan kell ezek jellemzőit módosítani, illetve törölni. A különböző Linux rendszereknek különböző segédeszközeik vannak erre Mi az a felhasználói fiók (account)? Amikor egy számítógépet sok ember használ, általában szükséges különbséget tenni a felhasználók között, pl. azért, hogy a magáncélú fájljaik valóban magáncélúak maradjanak. Ez még akkor is fontos, ha a számítógépet egyszerre csak egy ember használhatja, mint sok mikroszámítógép esetén. 1 Ezért minden felhasználó egy egyedi felhasználói névvel (username) rendelkezik, melyet a bejelentkezéskor használ. A név azonban nem minden. Egy fiók (account) az összes fájlt, erőforrást és információt jelenti, mely egy adott felhasználóhoz tartozik. Az elnevezés a bankokra utal, és az üzleti rendszerekben valóban pénz kapcsolódik a számlához, amely fogy a rendszer használatával. Pl. a lemezterületnek lehet napi ára megabyte-onként, a feldolgozási időnek pedig másodpercenkénti ára lehet Felhasználó létrehozása Maga a Linux rendszermag egyszerű számokként kezeli a felhasználókat. Mindegyik felhasználót egy egyedi egész szám, az ún. felhasználói azonosító (user id vagy uid) azonosít, mivel a számítógép gyorsabban és könnyebben kezeli a számokat, mint a szöveges meghatározásokat. A rendszermagon kívül létezik egy adatbázis, mely egy-egy szöveges nevet ( felhasználónév) kapcsol minden egyes felhasználói azonosítóhoz. Az adatbázis még más információkat is tartalmaz. Egy felhasználó létrehozásához a felhasználó személyről információkat kell bevinni az adatbázisba, és egy home könyvtárat kell létrehozni számára, ahol saját fájljait tárolhatja. Szükséges lehet még némi alapképzés az új felhasználó számára, és egy megfelelően beállított induló környezet létrehozása is. A legtöbb Linux terjesztésben benne van a program a fiókok létrehozására. Több ilyen is létezik. Két (viszonylag általánosan ismert) parancssori program, melyek egymásnak alternatívái, az adduser és a useradd; de léteznek grafikus felületű (GUI) segédprogramok is. Bármelyik programot használjuk is, kevés (jóformán semennyi) munkát kell végeznünk "puszta kézzel". Még ha a részletek bonyolultnak tűnnek is, ezek a programok mindent magától értetődővé tesznek. A fejezet leírja, hogyan kell mindezt kézzel végrehajtani Az /etc/passwd és egyéb informatív fájlok A UNIX rendszerek alapvető felhasználói adatbázisa az /etc/passwd szöveges fájl, amit jelszófájlnak (password file) nevezünk. Ez felsorolja az összes érvényes felhasználói nevet és a hozzájuk kapcsolt információkat. A fájlban 77
85 Fejezet 11. A felhasználói fiókok (account) menedzselése minden felhasználói névhez egy sor tartozik, és hét, kettőspontokkal elválasztott mezőre oszlik: Felhasználói név (username). Titkosított jelszó. Felhasználói azonosító szám (uid). Csoportazonosító szám (gid). Teljes név vagy egyéb leírás. Home könyvtár. Bejelentkezési shell (login shell). A formátumot a passwd kézikönyv oldala részletesebben elmagyarázza. A rendszer minden felhasználója olvashatja a jelszófájlt, így pl. megtudhatják a többi felhasználó nevét. Ez azt is jelenti, hogy még a jelszó (a második mezőben) is mindenki számára elérhető. Igaz, itt csak egy titkosított változata van, azaz elméletileg ez megfelelő megoldás. Azonban a titkosítás feltörhető, különösen gyenge jelszavak esetén (pl. ha az túl rövid, vagy szótárban szereplő szó). Ezért nem jó ötlet, hogy itt vannak a titkosított jelszavak. Sok Linux rendszer rendelkezik az árnyék jelszó (shadow password) lehetőségével: a titkosított jelszó ekkor egy külön fájlban, az /etc/shadow-ban van, melyet csak a root olvashat. Ekkor az /etc/passwd fájl csak egy speciális jelet tartalmaz a második mezőben. Minden program, melynek szüksége van a felhasználók azonosítására, setuid bitet kap, hogy elérje az árnyékjelszó-fájlt. A szokásos programok elérhetnek a jelszón kívül minden információt az eredeti jelszófájlból, de magát a jelszót nem Felhasználói- és csoportazonosító számok választása A legtöbb rendszeren teljesen mindegy, milyen számok a felhasználói- és csoportazonosítók (uid és gid), de ha a hálózati fájlrendszert (NFS) használjuk, a felhasználóknak azonos uid-jük és gid-jük kell legyen a gépeken. Ez azért van, mert az NFS is a számszerű azonosítókat használja. Azonban ha nem használunk NFS-t, a konkrét számértékek közömbösek, a létrehozásuk rábízható valamilyen automatikus rendszerre. Az NFS használata esetén szükséges a fiókinformációk automatikus szinkronizálására. Az egyik mód, amivel ez megtehető, a NIS rendszer. (XXX Lásd a Hálózati Rendszeradminisztrátorok Kézikönyvét) A régebben már használt uid és gid értékek, valamint szöveges felhasználói nevek újrafelhasználását ajánlatos elkerülni, mert ilyenkor esetleg a régi tulajdonossal kapcsolatos, véletlenül a gépen maradt információk, fájlok, levelek is elérhetőek lesznek az újonnan létrehozott felhasználó számára Kezdeti környezet: /etc/skel Amikor egy új felhasználó home könyvtára létrejön, az /etc/skel tartalma alapján töltődik fel tartalommal. Ezért ebbe a könyvtárba a rendszeradminisztrátor létrehozhat egy szép kiinduló környezetet az új felhasználók számára. Pl. létrehozhat egy /etc/skel/.profile fájlt, amely az EDITOR környezeti változót egy népszerű, új felhasználóknak szánt szövegszerkesztőre állítja be. Általában az a legjobb, ha az /etc/skel a lehető legkisebb, mivel csaknem lehetetlen a már létrehozott felhasználói fájlok frissítése. Pl. ha a közkedvelt szövegszerkesztő neve megváltozik, minden már létező felhasználónak meg kell szerkeszteni a.profile fájlját. A rendszeradminisztrátor megkísérelheti ezt automatikusan, shell szkriptből megtenni, de ilyenkor nagyon nagy valószínűséggel sérülhet valakinek a módosított.profile fájlja. 78
86 Fejezet 11. A felhasználói fiókok (account) menedzselése Hacsak lehetséges, a globális konfigurációt globális fájlokba érdemes tenni, mint pl. az /etc/profile. Ezáltal a felhasználói fájlok megsértésének veszélye nélkül változtathatjuk meg a beállításokat Felhasználók létrehozása kézzel Egy új felhasználói számla kézzel is létrehozható, ha követjük az alábbi lépéseket: Szerkesszük az /etc/passwd fájlt a vipw programmal, és adjunk egy új sort hozzá, mely az új fiókot írja le. Nagyon vigyázzunk a szintaxisra! Ne szerkesszük általános szövegszerkesztővel a jelszófájlt! A vipw lefoglalja a fájlt, így más programok nem fogják frissíteni a szerkesztés ideje alatt. A jelszó mezőbe írjunk *-ot, hogy még ne lehessen bejelentkezni a fiókba. Hasonlóan szerkesszük az /etc/group fájlt a vigr paranccsal, ha új csoportot is létre kell hoznunk. Hozzuk létre az új felhasználó home könyvtárát az mkdir paranccsal. Másoljuk az /etc/skel tartalmát a home könyvtárba. Korrigáljuk a tulajdonosokat és az engedélyeket a chown és chmod parancsokkal. Az -R opció hasznos lehet. A megfelelő engedélyek kicsit rendszerfüggők, de általában a következő parancsok megfelelők: cd /home/newusername chown -R username.group. chmod -R go=u,go-w. chmod go=. Állítsuk be a jelszót a passwd paranccsal. Az utolsó lépés után a fiók működni fog. Ezért ezt valóban csak legutoljára szabad megtenni, különben a felhasználó bejelentkezhet, miközben készítjük a fiókját, ami bonyodalmakhoz vezethet. Néha szükséges olyan "buta fiókok" létrehozása 3, melyeket nem használ egy ember sem. Pl. egy anonymous FTP-szerver létrehozásához (azaz amikor bárki letölthet, nem kell felhasználói fiókkal rendelkeznie az adott gépen) egy ftp nevű felhasználót kell létrehozni. Ilyen esetekben nem szükséges a jelszót beállítani, sőt, jobb, ha nem tesszük meg, mert így senki sem tudja azt használni, csak a root, mivel ő minden felhasználó nevében dolgozhat A felhasználók tulajdonságainak megváltoztatása A következő parancsok egy fiók különféle jellemzőit változtatják meg (azaz az /etc/passwd megfelelő mezőit módosítják): chfn A teljes nevet tartalmazó mező megváltoztatása. 79
87 Fejezet 11. A felhasználói fiókok (account) menedzselése chsh A bejelentkezési shell (login shell) megváltoztatása. passwd A jelszó megváltoztatása. A root ezeket bármelyik fiók jellemzőinek megváltoztatására használhatja, a normál felhasználók csak a sajátjukéra. Néha szükséges lehet ezen parancsok némelyikének letiltása (a chmod segítségével) a felhasználók számára, pl. ha sok kezdő felhasználó van a rendszerben. Egyéb feladatokat kézzel kell megcsinálni. Pl. a felhasználói név (username) megváltoztatásához az /etc/passwd fájlt közvetlenül kell szerkeszteni. (A vipw-t kell erre használni!) Hasonlóan, a felhasználót több csoporthoz is hozzárendelni szintén az /etc/group közvetlen szerkesztésével lehet. (vigr parancs.) Ezek általában nagyon ritka feladatok, de óvatosan kell őket végrehajtani: pl. a felhasználói név megváltoztatása az cím megváltoztatásával is jár, ami bonyodalmakat okozhat. (Ez kiküszöbölhető egy alias létrehozásával.) A felhasználók törlése Egy felhasználó törléséhez először le kell törölni az összes fájlját, levelesládáját, nyomtatási feladatait, cron és at feladatait, és minden egyéb hivatkozást a felhasználóra. Azután törölhető a megfelelő sor az /etc/passwd fájlból, és a rá vonatkozó bejegyzések az /etc/group-ból. Jó ötlet először kikapcsolni a fiókot (lásd lentebb), majd utána elvégezni ezeket a műveleteket, hogy ne használhassa a rendszert a felhasználó, miközben töröljük fiókját. Figyeljünk arra, hogy a felhasználónak lehetnek fájljai a home könyvtárán kívül is. A find használható ezek keresésére: find / -user username Ez a parancs hosszú ideig futhat, ha nagyok a lemezeink. Ha NFS-en keresztül csatolt lemezeink is vannak, akkor vigyázni kell, hogy ne terheljük túl a hálózatot vagy a szervert. Néhány Linux terjesztés speciális parancsokat tartalmaz a felhasználók törlése céljából, melyek szokásos neve deluser vagy userdel. Igaz, ez a munka kézzel is könnyen elvégezhető, és ekkor biztosak lehetünk abban, hogy minden rendben és hiánytalanul zajlott Egy felhasználó átmeneti felfüggesztése Néha szükséges egy fiók ideiglenes kikapcsolása anélkül, hogy törölnénk. Pl. ha a felhasználó nem fizette a használati díjat, vagy a rendszeradminisztrátor észrevette, hogy egy cracker megszerezte az adott fiók jelszavát. A legjobb mód az időleges kikapcsolásra a bejelentkezési shell egy speciális programra való kicserélése, mely egy üzenetet ír ki, majd azonnal kilép. Ily módon akárki próbál bejelentkezni a számlára, nem fog tudni semmilyen parancsot kiadni, de megtudja ennek okát. Célszerű, ha az üzenet felhívást tartalmaz a rendszeradminisztrátorral való kapcsolatfelvételre a hiba elhárítása érdekében. 80
88 Fejezet 11. A felhasználói fiókok (account) menedzselése Azt is megtehetjük, hogy a felhasználói nevet vagy a jelszót cseréljük másra, de akkor a felhasználó nem tudja, mi történt. A megzavart felhasználó pedig több munkát jelent. 5 A legegyszerűbb mód ilyen üzenőprogram létrehozására egy "tail szkript" írása: #!/usr/bin/tail +2 Ezen számla a biztonság megsértése miatt lett lezárva. Hívja fel a számot, és várja a fekete öltönyös emberek érkezését. Az első két karakter (#!) közli a rendszermaggal, hogy a sor további része egy parancs, mely értelmezni fogja a fájl hátralevő részét. A példabeli tail parancs az első sor kivételével mindent kiír a standard kimenetre. Ha például a billg nevű felhasználót gyanúsítjuk a biztonság megsértésével, a rendszeradminisztrátor a következőket teheti: # chsh -s /usr/local/lib/no-login/security billg # su - tester Ezen számla a biztonság megsértése miatt lett lezárva. Hívja fel a számot, és várja a fekete öltönyös emberek érkezését. # A fenti su célja annak ellenőrzése, hogy az egész beállítás működik-e. A tail szkripteket érdemes külön könyvtárban tartani, hogy nevük ne zavarja a normális parancsokat. Megjegyzések 1. Kellemetlen lenne, ha a nővérem elolvashatná a szerelmes leveleimet. 2. Igen, ez azt jelenti, hogy a jelszófájl minden információt tartalmaz a felhasználóról, kivéve a jelszót. A fejlődés csodája. 3. Szürreális felhasználók? 4. A felhasználói név megváltoztatásának egyik oka lehet pl. házasságkötés, ha a felhasználó a felhasználói névben is tükrözni szeretné névváltozását. 5. Igaz, ezt a "pokoli operátorok" kifejezetten élvezik. 81
89 Fejezet 12. Biztonsági mentések (backup) A hardver nem-determinisztikusan megbízható. A szoftver determinisztikusan megbízhatatlan. Az emberek nem-determinisztikusan megbízhatatlanok. A természet determinisztikusan megbízható. Ez a fejezet arról szól, hogyan, miért és mikor kell biztonsági mentést végezni, és hogyan állítsuk vissza az elmentett adatokat A biztonsági mentések fontossága Az adatok értékesek. Időbe és erőfeszítésbe telhet újra létrehozásuk, ami pénzbe, de legalábbis személyes fájdalomba és könnyekbe kerülhet. Néha pedig lehetetlen az újra létrehozás, mint pl. mérési eredmények esetén. Nyilvánvaló, hogy ez ellen védekezni kell. Négy alapvető ok van, ami adatvesztéshez vezethet: hardverhibák, programozási hibák, emberi tevékenység vagy természeti katasztrófák. 1 Habár a mai hardverelemek eléggé megbízhatóak, mégis előfordul (igaz, ritkán), hogy látszólag teljesen maguktól hibáznak. A legkritikusabb rész a merevlemez, mivel az adatbiztonsága attól függ, hogyan tudja megőrizni a felületén a kis mágnesezett területeket egy olyan világban, amely tele van elektromágneses zajokkal. A szoftverek megbízhatósága sem feltétlen javul; egy sziklaszilárd program inkább a kivételek, mint a szabály közé tartozik. Az emberek pedig nagyon megbízhatatlanok; egyrészt akaratlanul hibázhatnak, másrészt rosszindulatúak lehetnek és szándékosan tönkretehetik az adatokat. A természet ugyan nem gonosz, de néha így is árthat az adatainknak. Egyáltalán az a csoda, hogy valami működik. A biztonsági mentés (backup) az egyik módja az adatokba fektetett munkánk védelmének. Ha az adatokról több másolatunk is van, nem számít, ha az egyik elvész, a költség csak a visszaállítás folyamatánál jelentkezik. Fontos, hogy a mentéseket tökéletesen végezzük. Mint minden más a fizikai világban, a mentések is meghibásodnak előbb vagy utóbb. A mentések helyes folyamatának része az ellenőrzésük, hisz nyilván nem akarod, hogy a mentéseid ne működjenek. 2 Hogy a baj még nagyobb legyen, a mentés közben is történhet baleset, így ha csak egy mentési adathordozód volt, az is sérülhet, és akkor ott maradsz a kemény munkád füstölgő romjai között. 3 Vagy a visszaállításkor veheted észre, hogy elfelejtettél elmenteni valami fontosat, mondjuk a felhasználói adatbázist egy felhasználós gépen. A legjobb az, mikor a mentés működne, de a visszaállításra használható szalagos egység épp használhatatlan. Ha biztonsági mentésről van szó, a munkaköri leírásban szerepeljen a paranoia is A biztonsági mentések adathordozójának megválasztása A biztonsági mentésekkel kapcsolatos legfontosabb döntés a mentési adathordozó megválasztása. Figyelembe kell venni a költségeket, a megbízhatóságot, a sebességet, az elérhetőséget és a kezelhetőséget. A költség fontos tényező, mivel célszerű, ha a mentendő adatmennyiség többszöröse áll rendelkezésre a mentések számára. Ezért általában az olcsóbb adathordozó a javasolt. 82
90 Fejezet 12. Biztonsági mentések (backup) A megbízhatóság különlegesen fontos, mivel egy sérült mentés nagyon fájdalmas veszteség lehet. A mentési adathordozónak évekig hiba nélkül kell tudnia tárolni az adatokat. Az adathordozó használata befolyásolja a megbízhatóságát. Pl. egy merevlemez nagyon megbízható, de nem jó a biztonsági mentések adathordozójának, ha azonos számítógépben van a mentendő lemezzel. A sebesség általában nem annyira fontos, ha a mentés emberi közreműködés nélkül is végrehajtható. Nem számít az sem, ha a mentés két óráig tart, ha mindez felügyelet nélkül történik. A sebesség csak akkor lehet fontos, ha a mentés nem oldható meg annyi idő alatt, amennyit a számítógép amúgy henyélne. Az elérhetőség nyilván fontos, mert nem használhatod azt, ami nincs. Kevésbé magától értetődő, hogy a jövőben is elérhető lesz-e az adathordozó, illetve ahhoz való meghajtó. Ha nem, akkor nem lehet visszaállítani az adatokat egy későbbi baleset után. A kezelhetőség fontossága attól függ, milyen gyakran kell a mentéseket végezni. Minél egyszerűbb a mentést elvégezni, annál jobb, mert annál kevesebb a hibalehetőség. A tipikus alternatívák a hajlékonylemezek illetve a szalagok. A hajlékonylemez igen olcsó, eléggé megbízható, nem túl gyors, elérhető, de nehezen kezelhető nagy adatmennyiségeknél. A szalagok közt van olcsó és kissé költséges is, eléggé megbízható, elég gyors, viszonylag elérhető, és a szalagmérettől függően viszonylag kényelmes. Vannak persze más alternatívák is. Ezek viszonylag nehezebben szerezhetők be, de ha ez nem probléma, jobbak lehetnek az egyéb módoknál. Pl. a magneto-optikai lemezek bizonyos szempontból jobbak mind a hajlékonylemezeknél (jóval több adatot képesek tárolni), mind a szalagoknál (a tetszőleges sorrendű elérés miatt könnyebb egy-egy fájt visszaállítani róluk) A biztonsági mentést végző segédeszköz kiválasztása Sok segédprogram van, mellyel biztonsági mentést végezhetünk. A UNIX hagyományos mentő programjai a tar, a cpio és a dump. Létezik még sok, harmadik féltől származó (freeware és kereskedelmi) csomag is, mely használható. A mentési adathordozó választása befolyásolhatja, hogy melyiket választjuk. A tar és a cpio hasonlók, és a mentések szempontjából többnyire egyenértékűek. Mindegyik alkalmas fájlok szalagra mentésére, illetve onnan való visszaállításra. Mindegyik képes lényegében bármilyen adathordozót is használni, mivel a rendszermag eszközmeghajtói törődnek az alacsony szintű eszközkezeléssel, így a különféle eszközök lényegében azonos módon jelennek meg a felhasználószintű programok előtt. A tar és a cpio néhány unixos változatának problémája lehet a szokatlan fájlokkal (szimbolikus linkek, eszközfájlok, nagyon hosszú elérési utak), de a linuxos változatok mindezt helyesen kezelik. A dump abban különbözik ezektől, hogy a fájlrendszer tartalmát közvetlenül, nem pedig a fájlrendszeren keresztül olvassa. Ezt speciálisan biztonsági mentések céljából írták, míg a tar és cpio programokat elsősorban archiválásra, de azért használhatók biztonsági mentésre is. A fájlrendszer közvetlen olvasásának vannak előnyei. Lehetséges ilyenkor a fájlok visszaállítása időbélyegjeik átállítása nélkül; a tar és cpio használata előtt viszont a fájlrendszert először csak olvashatóan kell felcsatolni. A fájlrendszer közvetlen olvasása hatékonyabb is, ha mindent le kell menteni, mert a legkevesebb fejmozgással megoldható. A legnagyobb hátránya az, hogy a mentési program ilyenkor a fájlrendszer típusához kötődik: pl. a Linux dump utasítása csak az ext2 fájlrendszerre működik. A dump továbbá közvetlenül támogatja a mentési szinteket (lásd lentebb); míg a tar és a cpio esetén ezt egyéb eszközökkel kell megvalósítani. A harmadik féltől származó mentési segédeszközök összehasonlítása ezen könyv vizsgálati körén kívül esik. A Linux Software Map ( sok ilyen célú, szabad terjesztésű programot felsorol. 83
91 Fejezet 12. Biztonsági mentések (backup) Egyszerű biztonsági mentések Az egyszerű biztonsági mentési séma az, hogy egyszer mindent lementünk, majd később már csak azokat a fájlokat, melyek az utolsó teljes mentés óta változtak. Az első mentés neve teljes mentés (full backup), a továbbiaké növekményes mentés (incremental backup). A teljes mentés gyakran sokkal munkaigényesebb, mint a növekményes, mivel ekkor több adatot kell kiírni, és ez esetleg nem fér el egyetlen szalagon vagy hajlékonylemezen. A növekményes mentésről való visszaállítás viszont sokkal több munkát vehet igénybe, mint egy teljes mentésről való. A visszaállítás optimalizálható, hogyha a legutolsó teljes mentés óta végzett összes változást mentjük el mindig. Ez több munkát igényel a mentésekkor, de a visszaállítás legrosszabb esetben is egy teljes és egy növekményes mentésből elkészülhet. Ha minden nap mentést akarsz végezni, és hat szalagod van, az 1-es szalag használható az első teljes mentésre (mondjuk pénteken), a 2-5 szalagok a növekményes mentésekre (hétfőtől csütörtökig). Ezután elvégezhető egy teljes mentés a 6-os szalagra (második péntek) és a növekményeseket el lehet kezdeni a 2-5 sorszámúakkal. Nem érdemes az 1-es szalagon levő teljes mentést felülírni, amíg nincs kész az új teljes mentés, nehogy annak készítése közben történjék valami. A 6-osra való teljes mentés után az 1-eset valahol máshol érdemes tartani, hogy ha pl. tűz miatt a többi szalag elég, maradjon valami használható. Amikor a legközelebbi teljes mentést kell megcsinálni, el kell menni az 1-es szalagért, és ennek helyére betenni a 6-osat. Ha több, mint hat szalagod van, a 6 felettieket használhatod a teljes mentések tárolására. Minden új teljes mentéskor a legrégebbi szalagot érdemes használni. Ily módon több hétre visszamenőleg lehetnek mentéseid, ami jól jöhet egy régi, már törölt fájl visszaállításakor, vagy egy fájl régi változatának megkeresésekor Mentés a tar programmal A tar segítségével könnyen végezhetünk teljes mentést: # tar --create --file /dev/ftape /usr/src tar: Removing leading / from absolute path names in the archive # A fenti példa a tar GNU változatát és annak hosszú opcióneveit használja. A tar hagyományos változata csak egykarakteres opciókat ért meg. A GNU változat kezelni tudja azokat a mentéseket, melyek nem férnek el egy szalagon vagy hajlékonylemezen, és azokat is, melyekben hosszú elérési utak vannak. Mindezt a hagyományos változatok nem tudják. A Linux rendszerek mindig a GNU tar-t használják. Ha a mentés nem fér el egy szalagon, a --multi-volume (vagy röviden -M) opciót kell használni: # tar -cmf /dev/fd0h1440 /usr/src tar: Removing leading / from absolute path names in the archive Prepare volume #2 for /dev/fd0h1440 and hit return: # Megjegyzendő, hogy a hajlékonylemezeket formázni kell a mentés előtt. Ha ezt elfelejtettük volna, akkor ez megtehető egy másik ablakból vagy virtuális terminálról, amíg a tar a következő lemezre vár. A mentés után ellenőrizni kell, hogy minden rendben van-e. Ehhez a --compare (röviden -d) opció használható: # tar --compare --verbose -f 84
92 Fejezet 12. Biztonsági mentések (backup) /dev/ftape usr/src/ usr/src/linux usr/src/linux includes/... # Ha nem ellenőrizzük a mentést, előfordulhat, hogy csak akkor vesszük észre, hogy használhatatlan, amikor már az eredeti adatainkat is elvesztettük. A növekményes mentés a tar mellett használt --newer (röviden -N) opcióval végezhető el: # tar --create --newer 8 Sep file /dev/ftape /usr/src --verbose tar: Removing leading / from absolute path names in the archive usr/src/ usr/src/linux includes/ usr/src/linux includes/include/ usr/src/linux includes/include/linux/ usr/src/linux includes/include/linux/modules/ usr/src/linux includes/include/asm-generic/ usr/src/linux includes/include/asm-i386/ usr/src/linux includes/include/asm-mips/ usr/src/linux includes/include/asm-alpha/ usr/src/linux includes/include/asm-m68k/ usr/src/linux includes/include/asm-sparc/ usr/src/patch gz # Sajnos a tar képtelen észrevenni, ha egy fájl inode információi (pl. a neve vagy az engedélybitjei) megváltoznak. Ez a find használatával, és a pillanatnyi fájlrendszer állapota és az előzőleg elmentett fájlok listájának összevetésével kerülhető meg. E célból íródott szkripteket és programokat sokfélét találhatunk a linuxos ftp-szervereken Fájlok visszaállítása a tar paranccsal A --extract (röviden -x) opcióval a tar kibontja a fájlokat: # tar --extract --same-permissions --verbose --file /dev/fd0h1440 usr/src/ usr/src/linux usr/src/linux includes/ usr/src/linux includes/include/ usr/src/linux includes/include/linux/ usr/src/linux includes/include/linux/hdreg.h usr/src/linux includes/include/linux/kernel.h... # 85
93 Fejezet 12. Biztonsági mentések (backup) Kibontható csak bizonyos fájl vagy könyvtár (beleértve az alatta levő fájlokat és könyvtárakat is), ha megnevezzük őket a parancssorban: # tar xpvf /dev/fd0h1440 usr/src/linux includes/include/linux/hdreg.h usr/src/linux includes/include/linux/hdreg.h # A --list (röviden -t) opció használható, ha csak az adott adathordozón elmentett fájlok listája érdekel: # tar --list --file /dev/fd0h1440 usr/src/ usr/src/linux usr/src/linux includes/ usr/src/linux includes/include/ usr/src/linux includes/include/linux/ usr/src/linux includes/include/linux/hdreg.h usr/src/linux includes/include/linux/kernel.h... # Megjegyzendő, hogy a tar mindig sorosan olvassa a mentési adathordozót, ezért nagy kötegek esetén elég lassú. Igaz, nem is lehetséges tetszőleges sorrendben elérhető adatbázis technikát használni szalagon vagy más soros adathordozón. A tar nem kezeli helyesen a törölt fájlokat. Ha egy fájlrendszert egy teljes és egy növekményes mentésből kell visszaállítani, a két mentés közt törölt fájlok ismét létezni fognak. Ez súlyos probléma lehet, ha a fájlbeli adatoknak nem szabadna már létezniük Többszintű mentések Az előző fejezetben leírt egyszerű mentési módszer gyakran megfelel személyes, vagy kis szervereken történő használatra. Komolyabb feladatokra azonban a többszintű mentések megfelelőbbek. Az egyszerű módszernek két mentési szintje van: a teljes és a növekményes mentés. Ez általánosítható tetszőleges számú szintre. A teljes mentést nevezhetjük 0. szintnek, és a növekményes mentés egymást követő szintjeit 1., 2., 3. stb. szinteknek. Minden növekményes mentési szinten azt mentjük el, ami az előző, azonos vagy alacsonyabb szintű mentés óta változott. Ennek az a célja, hogy egy hosszabb mentési történet (backup history) legyen tárolható olcsón. Az előző fejezet példájában a mentési történet az előző teljes mentésig ment vissza. Ez több szalag használatával megnyújtható, de csak hetente egy szalaggal, ami túl költséges lehet. A hosszabb mentési történet azért hasznos, mert a törölt vagy sérült fájlok szükségét gyakran csak később vesszük észre. Sokszor pedig még egy nem egészen friss változat is jobb, mint ha nincs semmink. A többszintű mentésekkel a mentési történet olcsóbban kibővíthető. Pl. ha 10 szalagunk van, az 1-es és 2-es szalagokat a havi mentésekre (minden hónap első péntekjén), a 3-6-os szalagokat a heti mentésekre (a többi pénteken), a 7-10-es szalagokat pedig a napi mentésekre (hétfőtől csütörtökig) használhatjuk. Az előző fejezetbeli példához képest plusz 4 szalaggal a mentési történetet két hétről két hónapra sikerült megnyújtani. Igaz, nem minden nap állapota nyerhető vissza az előző két hónapból, de még ez is elég jó sűrűség. 86
94 Fejezet 12. Biztonsági mentések (backup) A 12-1 Ábra ábra bemutatja, melyik mentési szintet használjuk az egyes napokon, és mely napok állapota állítható vissza a hónap végén. Ábra Példa egy többszintű mentés ütemezésére. A mentési szintek a fájlrendszer visszaállítási idejének minimalizálására is használhatók. Ha sok növekményes mentésed van monoton növő szintszámmal, mindet vissza kell állítani a megfelelő sorrendben, hogy visszakapd az eredeti állapotot. Ehelyett használhatsz nem monoton növekvő szintszámokat, ily módon csökkentheted a visszaállítandó mentések számát. A visszaállításhoz szükséges szalagok számának minimalizálásához minden növekményes szalaghoz kisebb mentési szintet lehet használni. Igaz, ekkor a mentésekhez szükséges idő megnövekszik, hisz minden mentés mindent lemásol az előző teljes mentés óta. Egy jobb sémát találhatunk a dump kézikönyv oldalán, melyet az alább látható 12.1 táblázatban közlünk. Használjuk egymás után a következő mentési szinteket: 3, 2, 5, 4, 7, 6, 9, 8, 9 stb. Ez mind a mentési, mind a visszaállítási időt minimalizálni fogja. A legtöbb, amit el kell menteni, két napi munka eredménye. A visszaállításhoz szükséges szalagok száma attól függ, mennyi időt vársz két teljes mentés közt, de még mindig kisebb, mint az egyszerű sémáknál. Táblázat Hatékony mentési séma sok mentési szint használatával Szalag Szint Mentés (napok) Visszaállítás (szalagok) 1 0 n/a , , , 2, , 2, , 2, 5, , 2, 5, , 2, 5, 7, , 2, 5, 7, , 2, 5, 7, 9, , 2, 5, 7, 9, 10, , 2, 5, 7, 9, 10, 11,... Egy ilyen szeszélyes séma csökkentheti a szükséges munkát, de azt is jelenti, hogy több mindenre kell odafigyelni. 87
95 Neked kell dönteni, megéri-e alkalmazni. Fejezet 12. Biztonsági mentések (backup) A dump beépítve tartalmazza a többszintű mentések támogatását. A tar és a cpio esetén ezt pl. shell szkriptekkel valósíthatjuk meg Mit mentsünk? Amit csak lehetséges, mentsük. A legfőbb kivételt azok a szoftverek jelentik, melyeket könnyű újratelepíteni. 4 De még a könnyen telepíthető programok is igényelhetnek beállítást, ami időigényes lehet, ha sokszor el kell végezni; megéri ezeket a konfigurációs fájlokat is elmenteni. Egy másik fő kivétel a /proc fájlrendszer, mivel ez csak olyan adatokat tartalmaz, melyet a rendszermag automatikusan generál. Ezért ezt sohasem érdemes menteni. Különösen igaz ez a /proc/kcore fájlra, mivel ez a fizikai memória pillanatnyi képmása, és ezért elég nagy lehet. Bizonytalan a spool-könyvtárak, naplófájlok (log files) és egy csomó minden fontossága a /var-ból. Egyedi esetekben lehet csak eldönteni, hogy ezek mentése fontos-e. A nyilvánvalóan mentendő dolgok a felhasználók fájljai (/home), a rendszerkonfigurációs fájlok (főleg az /etc tartalma, és néhány egyéb fájl.) Tömörített mentések A mentések sok helyet foglalhatnak, ami sok pénzbe kerülhet. A helyigény csökkentése céljából a mentéseket tömöríthetjük. Ennek több módja is van. Néhány program beépített tömörítési lehetőséget tartalmaz, pl. a GNU tar a --gzip (röviden -z) opció hatására a teljes kimenetét a gzip tömörítőprogramnak adja át, majd annak kimenete kerül mentésre. Sajnálatos módon a tömörített mentések bajt okozhatnak. A tömörítés természetéből adódóan, ha egyetlen bit hibás, az összes adat, ami ezután van a tömörített fájlban, használhatatlan lesz. Néhány mentésre készült programnak beépített hibajavítása van, de nem létezik olyan módszer, ami nagyszámú hibát kezelni tudna. Ez azt jelenti, hogy ha a mentés a GNU tar-ral lett tömörítve egyetlen kimenő fájlba, akkor egy bit hiba a mentés hiba utáni részét tönkreteszi. Mivel a mentésnek megbízhatónak kell lenni, ez nem jó módszer. Egy másik lehetőség: minden fájl egymástól független tömörítése. Ez esetben hiba esetén csak a hibát tartalmazó fájl elveszését jelenti, ezért nem lényegesen rosszabb, mint ha egyáltalán nem lenne tömörítés. (Az a fájl úgyis sérült.) Ezt az afio programmal valósíthatjuk meg. (Ez a cpio egy változata.) A tömörítés időbe telhet, ami azt eredményezheti, hogy a mentő program nem tud elég gyorsan a szalagra írni. 5 Ez ellen a kimenet pufferelésével védekezhetünk, de még ez sem jelent garanciát, ha lassú a számítógépünk. Megjegyzések 1. Az ötödik ok valami más. 2. Ne nevess! Több emberrel megtörtént már ilyen. 3. Jártam így már én is Az, hogy mi a "könnyű", egyéni ízlés dolga. Néhány ember szerint a több tucat hajlékonylemezről való telepítés könnyű. 5. Ekkor a szalagnak meg kell állni, ami nagyon rontja a sebességet, és nem jó sem a szalagnak, sem a meghajtónak. 88
96 Fejezet 13. Időbeállítás Az idő csak illúzió. Az ebédidő kétszeresen is az. (Douglas Adams.) Ez a fejezet elmagyarázza, hogy a Linux hogyan tartja meg a pontos időt, és mit szükséges tenni ahhoz, hogy elkerüljük a fellépő problémákat. Általában nem szükséges, hogy bármit is tegyünk az idővel kapcsolatban, de hasznos, ha tisztában vagyunk a fentiek működésével Időzónák Az időmérés többnyire szabályosan változó természeti jelenségeken alapul, mint például a nappalok és az éjszakák váltakozása, amit a Föld forgása okoz. Két egymást követő periódus teljes ideje állandó érték, ám a nappalok és az éjszakák hossza periodikusan változik. Az egyik egyszerű állandó időpont a dél. A dél a nap azon időpontja, amikor a Nap a legmagasabb pozícióban található az égbolton. Mivel a Föld gömb alakú 1, a Föld különböző pontjain eltérő időpontokban van dél. Ez vezetett a helyi idő kialakulásához. Emberi mértéket alapul véve az idő nagyon sok egységből áll. Ezek közül a legtöbb szintén olyan természeti jelenségekhez kötődött, mint például a dél. Amíg ugyanazon az egy helyen tartózkodunk, nincs jelentősége a helyi idők közötti eltéréseknek. Amint azonban távoli területekkel kell kommunikálnunk, rá fogunk jönni arra, hogy szükség van egy általános, közös időre. Manapság a világ legtöbb térsége kommunikál a világ más területeivel, így már definiálták az egységesen elfogadott szabványt az idő mérésére. Ezt az időt nevezik világidőnek (UT vagy UTC, valamikor greenwichi középidőként is ismert volt, azaz GMT-ként (Greenwich Mean Time), mivel ezt használták helyi időként Greenwichben, Angliában). Amikor eltérő helyi idejű emberek kommunikálnak egymással, használhatják az idő kifejezésére a világidőt, így aztán nincs zűrzavar azzal kapcsolatban, hogy minek mikor kell történnie. Az azonos helyi időt használó területeket időzónának hívják. Bár a földrajzi elhelyezkedés lehetővé tenné, hogy valamennyi térség, ahol a dél időpontja ugyanarra a pillanatra esik, egyazon időzónába tartozzon, a politika azonban ezt egy kissé komplikáltabbá teszi. Különböző okokból nagyon sok ország használja a nyári időszámítást pénz megtakarítására, melynek lényege, hogy óráikat a természetes fény jelenlétéhez állítják hozzá. Ez általában az órák nyáron történő visszaállítását jelenti a télihez képest. Egyes országok ezt nem teszik. Azok viszont, akik teszik, nem értenek egyet abban, hogy mikor is kellene az órákat átállítani, és ennek szabályait évről évre változtatják. Ez okozza, hogy az időzóna-szabályok egyáltalán nem magától értetődőek. Az időzónák legjobb elnevezése elhelyezkedésükből adódik, esetleg a helyi és a világidő különbségéről is kaphatják a nevüket. Az Egyesült Államokban és néhány más országban a helyi időzónákat egy névvel és egy 3 betűből álló rövidítéssel azonosítják. A rövidítések nem egyediek, ezért aztán nem igazán használatosak, hacsak az ország meg nincs nevezve. Mégis csak jobb, ha úgy beszélünk a helyi időről, hogy azt mondjuk, hogy a helsinki idő, mintha azt mondanánk, hogy kelet-európai idő, miután Kelet-Európában nem minden ország követi ugyanazokat a szabályokat. A Linux tartalmaz egy időzóna-csomagot, amely ismeri az összes létező időzónát és így könnyen figyelemmel kísérhető, ha a szabályok esetleg megváltoznak. A rendszeradminisztrátornak mindössze a megfelelő időzónát kell kiválasztania. A felhasználók is beállíthatják a saját időzónájukat; ez fontos, mivel sokan a számítógépekkel dolgozók közül az Interneten keresztül eltérő időzónákban dolgoznak. Amikor megváltoznak a szabályok a nyári időszámítással kapcsolatban, ellenőrizd le, hogy frissítetted-e Linux rendszered időzóna-csomagját. Az időzóna-beállítás és az időzóna adatfájlok frissítésén kívül nincs különösebb dolgunk az időbeállítással kapcsolatban. 89
97 Fejezet 13. Időbeállítás A hardver- és a szoftver-órák A személyi számítógépeknek elemmel működtetett hardverórájuk van. Az elem biztosítja azt, hogy az óra még akkor is járjon, amikor az egész számítógép ki van kapcsolva, azaz nincs feszültség alatt. A hardveróra a BIOS beállító képernyőjén keresztül állítható be, vagy valamilyen más futó operációs rendszerből. A Linux rendszermag az időt a hardverórától függetlenül méri. A rendszerindítás közben a Linux a hardver órájával megegyező időre állítja a saját órájának idejét. Ezután már mindkét óra egymástól függetlenül jár. A Linux azért használ saját órát, mivel a hardver órájának folyamatos figyelése túlságosan lassú és bonyolult. A rendszermag órája mindig a világidőt mutatja, így egyáltalán nem is szükséges ismernie az időzónákat. Ezen egyszerűség növeli a megbízhatóságot és megkönnyíti az időzóna információinak frissítését. Valamennyi processz önállóan kezeli az időzóna-váltásokat (felhasználva azokat az alapvető eszközöket, melyek az időzóna csomag részét képezik). A hardver órája járhat a helyi és a világidő alapján is. Általában jobb, ha a világidőt alapul véve működik, ebben az esetben nem szükséges átállítani a hardver óráját, amikor elkezdődik vagy befejeződik a nyári időszámítás (a világidőre nem vonatkozik a nyári időszámítás). Sajnálatos módon némely PC operációs rendszer - beleértve az MS-DOS-t, a Windowst, az OS/2-t - azt feltételezi, hogy a hardver órája a helyi időt mutatja. A Linux képes mindkét típust kezelni, de ha a hardver órája a helyi időt mutatja, akkor azt szükséges megváltoztatni a nyári időszámítás kezdetén vagy végén (egyébként nem mutathatná a helyi időt) Az idő beállítása és kijelzése A Linuxban a rendszer időzónája az /etc/localtime szimbolikus hivatkozáson keresztül kerül meghatározásra. Ez a hivatkozás arra az időzóna-adatfájlra mutat, amely a helyi időzónát írja le. Az időzónák adatfájljai az /usr/lib/zoneinfo vagy az /usr/share/zoneinfo könyvtárban találhatók, Linux-terjesztéstől függően. Például egy New Jerseyben lévő SuSE rendszeren az /etc/localtime hivatkozás az /usr/share/zoneinfo/us/eastern fájlra mutatna. Egy Debian rendszeren ugyanez a hivatkozás az /usr/lib/zoneinfo/us/eastern fájlra mutat. Ha nem találod a zoneinfo könyvtárat sem az /usr/lib, sem az /usr/share alatt, akkor keresd meg a find /usr -print grep zoneinfo paranccsal, vagy nézz utána a terjesztés dokumentációjában. Mi van akkor, ha különböző időzónákban lévő felhasználóid vannak? A felhasználók beállíthatják a saját időzónájukat a TZ környezeti változó segítségével. Ha ez nincs beállítva, akkor rendszeridőt veszik alapul az alkalmazások. A TZ változó szintaxisa a tzset kézikönyv oldalán olvasható. A date parancs az aktuális dátumot és időt mutatja meg. 2 Például: $ date Sun Jul 14 21:53:41 EET DST 1996 $ A jelzett időpont: július 14-e, vasárnap, kb. tíz perccel este tíz óra előtt, az EET DST időzónában (amely minden bizonnyal a Kelet-Európai Nyári Időszámítási Idő). A date parancs képes a világidőt is mutatni: $ date -u Sun Jul 14 18:53:42 UTC 1996 $ A date parancs felhasználható a rendszermag szoftver órájának beállítására is: 90
98 Fejezet 13. Időbeállítás # date Sun Jul 14 21:57:00 EET DST 1996 # date Sun Jul 14 21:57:02 EET DST 1996 # Ha további részletekre is kíváncsi vagy, akkor nézd meg a date kézikönyv oldalát - bár a szintaxis egy kissé misztikus. Egyedül a root képes az idő beállítására. A felhasználók beállíthatják ugyan saját időzónájukat, de az óra ugyanúgy jár mindenki számára. A date parancs kizárólag a szoftverórát állítja be és mutatja meg. A clock parancs hangolja össze a hardver- és a szoftverórákat. Ez a rendszerindulás közben történik, amikor a hardverórát beolvasva, a szoftveróra beállításra kerül. Amennyiben mindkettő beállítása szükséges, akkor először állítsuk be a szoftverórát a date paranccsal, majd a hardverórát a clock -w paranccsal. Az -u opció azt mondja meg a clock parancsnak, hogy a hardveróra világidőben értendő. Az -u opciót mindenképpen helyesen kell használnunk, különben a számítógép össze fog zavarodni a pillanatnyi idővel kapcsolatban. Az órákat mindenképpen a kellő óvatossággal változtassuk meg. A Unix rendszer nagyon sok alkotórésze számára fontos, hogy az órák megfelelően működjenek. Például a cron démon periodikusan futtatja a parancsokat. Ha megváltoztatod az órát, a cron összezavarodik, hogy vajon szükséges-e futtatni a parancsokat vagy nem. Egy korai Unix rendszeren valaki húsz évvel előre állította az időt és a cron ekkor hirtelen le akarta futtatni valamennyi periodikus parancsot húsz évre. A cron jelenlegi verziója ezt már megfelelően kezeli, de azért még mindig óvatosnak kell lennünk. A nagy ugrások és a visszaugrások sokkal veszélyesebbek, mint a kisebbek vagy az előreugrások Ha rosszul jár az óra A Linux szoftverórája nem mindig pontos. A PC hardvere által generált periodikus időzítő megszakítás (timer interrupt) tartja mozgásban. Ha a rendszeren túl sok processz fut, ez megnyújthatja az időzítő megszakítás kiszolgálását és a szoftveróra elkezd késni. A hardveróra önállóan jár és általában pontosabb is. Amennyiben a számítógépedet gyakran újraindítod (ami a nem szerverként működő gépek esetében többnyire meg is történik), az órája általában eléggé pontos marad. Ha a hardverórát be kell állítani, akkor általában a legegyszerűbb újraindítani a gépet és a BIOS beállító képernyőjén keresztül elvégezni ezt. Ezzel elkerülhetjük azokat a problémákat, amelyeket a rendszeridő változása okozhat. Ha a BIOS-on keresztüli beállítás nem lehetséges, állítsd be az új időt a date, majd a clock paranccsal (ebben a sorrendben), de készülj fel a rendszer újraindítására, ha ezután a rendszer egyes részei furcsán kezdenének viselkedni. A hardverórát a hwclock -w vagy a hwclock --systohc parancs használatával igazíthatod a szoftverórához. Ha a szoftverórát akarod a hardverórához igazítani, akkor ezt a hwclock -s vagy a hwclock --hctosys paranccsal teheted meg. További tudnivalókat a man hwclock segítségével szerezhetsz be NTP - Hálózati idő protokoll (Network Time Protocol) Egy hálózati számítógép (még akkor is, ha csak modemes kapcsolatról van szó) képes automatikusan ellenőrizni a saját óráját, összehasonlítva más számítógépek órájával, amelyekről tudjuk, hogy pontosan járnak. Az NTP pontosan erre szolgál. Segítségével ellenőrizhetjük és kiigazíthatjuk számítógépünk óráját, egy másik géppel való 91
99 Fejezet 13. Időbeállítás szinkronizálás útján. Így ezredmásodperces pontossággal fogja tartani gépünk a koordinált egyetemes időt (Coordinated Universal Time). 3 A lezserebb Linux-felhasználók számára ez a szolgáltatás csak egyfajta luxusnak tűnik. Az otthonomban az összes óra aszerint van beállítva, hogy a Linux rendszerem szerint mennyi az idő. Nagyobb szervezetek számára ez a "luxus" életfontosságú lehet. Ha bizonyos események naplófájljait keressük, nagyon megkönnyíti az életünket a pontos rendszeridőn alapuló naplózás, és elkerülhető lesz a fáradságos hibakeresési "találgatás". Az NTP fontosságát jól illusztrálják a tárolóhálózatok (SAN; Storage Area Network). Ezek némelyike kifejezetten megköveteli, hogy jól beállított és működő NTP legyen a rendszerünkön, hogy lehetővé tegye a fájlrendszer használatán keresztül történő szinkronizálást és a megfelelő időbélyeg-ellenőrzést. Néhány tárolóhálózat (és néhány alkalmazás) összezavarodhat, ha olyan fájlokkal kell dolgoznia, amelyeken a jövőből származó időbélyeg van. A Linux-disztribúciók többsége eleve tartalmaz valamilyen NTP-csomagot,.deb vagy.rpm formában. Ezekkel is telepíthetjük az NTP-t, vagy letölthetjük a forrásfájlokat a helyről és magunk fordíthatjuk le. Bármelyik módszert választjuk is, az alapvető beállítások ugyanazok lesznek Alapvető NTP beállítások Az NTP programot az /etc/ntp.conf vagy az /etc/xntp.conf fájl segítségével állíthatjuk be, disztribúciótól függően. Nem fogok nagyon elmerülni a részletekben, csak az alapvető beállításokról lesz szó. Íme egy példa egy alapvető ntp.conf fájlra: # --- GENERAL CONFIGURATION --- server aaa.bbb.ccc.ddd server fudge stratum 10 # Drift file. driftfile /etc/ntp/drift A legegyszerűbb ntp.conf fájl mindössze két szervert sorol fel, az egyik az, amelyikkel szinkronizálni akarja az időt, a másik pedig egy ál-ip-cím, ami önmagára mutat (ebben az esetben ). Az ál-ip-címre hálózati problémák esetén van szükség, vagy ha a távoli NTP szerver épp leáll. Ilyenkor az NTP önmagával fogja szinkronizálni az időt mindaddig, amíg újra kapcsolódni tud a távoli szerverhez. Ajánlatos legalább két távoli szervert felsorolni itt: az egyik elsődleges szerverként fog működni, a másik pedig biztonsági tartalékként. Érdemes megadni egy eltérés-fájl (drift file) elérési helyét is. Idővel az NTP "megtanulja", hogy mennyit szokott tévedni a rendszeróra, és automatikusan kiigazítja a hibát. A restict opció arra jó, hogy ellenőrizzük, mit tehet meg az NTP és ki futtathatja. Például: # A szolgáltatáshoz való általános hozzáférés megtiltása: # Prohibit general access to this service. restrict default ignore # A hálózaton lévő rendszerek számára engedélyezzük a szinkronizálást, de az NTP # idejét nem változtathatják me # Permit systems on this network to synchronize with this 92
100 Fejezet 13. Időbeállítás # time service. But not modify our time. restrict aaa.bbb.ccc.ddd nomodify # A felsoroltaknak korlátlan hozzáférést adunk az ntpd-hez: # Allow the following unrestricted access to ntpd restrict aaa.bbb.ccc.ddd restrict Ajánlatos előbb beállítani egy jól működő NTP-t, és csak ezután adni hozzá a restrict opciót. Ugyanis előfordulhat, hogy véletlenül önmagunkat is kizárjuk a szinkronizálás jogosultjai közül, aztán jó ideig kereshetjük a hiba okát. Az NTP lassan korrigálja a rendszeridőt, ezért legyünk türelmesek. Egyszerűen tesztelhető a működése: lefekvés előtt állítsuk át a rendszeridőt 10 perccel, majd ébredéskor ellenőrizzük le. Az eredmény újra pontos idő lesz NTP eszközök Számos segédalkalmazás létezik az NTP működésének ellenőrzésére. Az ntpd -q paranccsal lekérdezhetjük a rendszeridő aktuális állapotát. # ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *cudns.cit.corne ntp0.usno.navy. 2 u LOCAL(0) LOCAL(0) 10 l Az ntpdc -c loopinfo parancs kiírja, mennyivel tér el a rendszeridő (másodpercekben) a távoli szerver idejétől, az utolsó lekérdezés óta. # ntpdc -c loopinfo offset: s frequency: ppm poll adjust: 30 watchdog timer: 404 s Az ntpdc -c kerninfo kiírja a adott pillanatban hátralévő helyesbítési időt. # ntpdc -c kerninfo pll offset: s pll frequency: ppm maximum error: s estimated error: s status: 0001 pll pll time constant: 6 precision: 1e-06 s 93
101 Fejezet 13. Időbeállítás frequency tolerance: 512 ppm pps frequency: ppm pps stability: ppm pps jitter: s calibration interval: 4 s calibration cycles: 0 jitter exceeded: 0 stability exceeded: 0 calibration errors: 0 A fenti parancs kissé eltérő változata az ntptime: # ntptime ntp_gettime() returns code 0 (OK) time c35e2cc7.879ba000 Thu, Nov :16:07.529, ( ), maximum error us, estimated error 3676 us ntp_adjtime() returns code 0 (OK) modes 0x0 (), offset us, frequency ppm, interval 4 s, maximum error us, estimated error 3676 us, status 0x1 (PLL), time constant 6, precision us, tolerance 512 ppm, pps frequency ppm, stability ppm, jitter us, intervals 0, jitter exceeded 0, stability exceeded 0, errors 0. További lehetőség az NTP működésének ellenőrzésére az ntpdate -d parancs. Ez felveszi a kapcsolatot egy NTP szerverrel és meghatározza az időeltérést, de nem változtatja meg a rendszeridőt. # ntpdate -d Nov 14:43:17 ntpdate[29631]: ntpdate [email protected] Thu Feb 13 12:17:20 EST 2003 (1) transmit( ) receive( ) transmit( ) receive( ) transmit( ) receive( ) transmit( ) receive( ) transmit( ) server , port 123 stratum 2, precision -17, leap 00, trust 000 refid [ ], delay , dispersion transmitted 4, in filter 4 reference time: c35e5998.4a46cfc8 Thu, Nov :27: originate timestamp: c35e5d55.d69a6f82 Thu, Nov :43: transmit timestamp: c35e5d55.d16fc9bc Thu, Nov :43: filter delay:
102 Fejezet 13. Időbeállítás filter offset: delay , dispersion offset Nov 14:43:17 ntpdate[29631]: adjust time server offset sec Ha szinkronizálás közben akarjuk megfigyelni a rendszert, használjuk az ntptrace parancsot. # ntptrace cudns.cit.cornell.edu: stratum 2, offset , synch distance dtc-truetime.ntp.aol.com: stratum 1, offset , synch distance , refid ACTS Ha a rendszeridő azonnali szinkronizálására van szükségünk, használhatjuk az ntpdate tavoli-szerver-neve parancsot, ekkor azonnal sor kerül az idő kiigazítására. # ntpdate Nov 14:56:28 ntpdate[29676]: adjust time server offset sec Néhány ismert NTP szerver A publikus NTP szerverek listája megtalálható a Public NTP Time Servers ( honlapon. Illik elolvasni a felhasználással kapcsolatos információkat az adott szerver oldalán, mielőtt igénybe vesszük a szolgáltatásaikat, ugyanis nem mindegyik rendelkezik megfelelő sávszélességgel ahhoz, hogy nagyszámú kérést szolgáljon ki. Nem árt előzőleg felvenni a kapcsolatot az adott szerver rendszeradminisztrátorával NTP-vel kapcsolatos hivatkozások Az NTP-ről részletesebb felvilágosítás található a ( és ( honlapokon. Megjegyzések 1. Legalábbis a tudomány mai állása szerint. 2. Vigyázat: a time parancs nem az időt mutatja! 3. További információt ezzel kapcsolatban a következő helyen találsz: ( 95
103 Fejezet 14. Hol találsz segítséget? Help me if you can I m feeling down. And I do appreciate you being round. - The Beatles Hírcsoportok és levelezőlisták Ez a kézikönyv nem képes arra, hogy mindent megtanítson neked, amit a Linuxról tudni kell - nincs hozzá elég hely. Szinte elkerülhetetlen, hogy előbb-utóbb olyan feladatot kell megoldanod, amihez ebben (vagy az LDP egyéb dokumentumaiban) nem találsz segítséget. A Linuxban az egyik legjobb dolog, hogy rengeteg fórum foglalkozik vele. A skála pedig nagyon széles: a kezdők számára készült GYIK-tól kezdve a rendszermag-fejlesztés rejtelméig szinte minden linuxos kérdésre választ lehet találni ezeken a fórumokon. Hogy eredményesen tudd ezeket használni, íme néhány jó tanács: Keresd meg a megfelelő fórumot Az első teendőd, hogy megfelelő fórumot találj. Nagyon sok hírcsoport és levelezőlista foglalkozik a Linuxszal, ezért próbáld meg azt megtalálni és használni, amelyik a legjobban megközelíti az igényeidet. Például nincs sok értelme a sendmail beállításához segítséget kérni egy rendszermag-fejlesztéssel foglalkozó fórumon. A jobbik eset az lesz, ha az ott jelenlévők azt gondolják, buta vagy, és kevés választ fogsz kapni; rosszabb esetben igencsak sértő jellegű válaszokra számíthatsz (flame). Ha szétnézel az elérhető hírcsoportok között, hamar rátalálsz a comp.mail.sendmail-re, ami úgy néz ki, megfelelő hely a sendmaillel kapcsolatos kérdéseidnek. A hírolvasó kliensedben valószínűleg lesz egy lista az elérhető hírcsoportokról, de ha nem így lenne, akkor itt találsz egy teljes listát: ( Mielőtt hozzászólást küldenél a fórumra Ha már megtaláltad a megfelelő fórumot, azt gondolhatod, már küldheted is a kérdésedet. Állj! Még nem készültél fel erre. Utánanéztél már magad a válasznak? Hatalmas mennyiségű HOGYAN és GYIK érhető el a neten, s ha találsz köztük olyat, ami a problémáddal foglalkozik, először azt olvasd el. Ha nincs is benne a válasz a konkrét kérdésedre, akkor is jobban meg fogod érteni az adott területet, s e tudás birtokában pontosabban fogod tudni megfogalmazni a kérdésedet. A hírcsoportok és levelezőlisták archívumaiban is érdemes keresgélni, mert nagyon is lehetséges, hogy valaki már feltette ezt a kérdést, és válaszoltak is rá. A vagy hasonló keresőoldalak segítségét is vedd igénybe, mielőtt beküldöd a kérdésedet a fórumra Hogyan írd meg a hozzászólásodat Nos, tegyük fel, hogy megtaláltad a megfelelő fórumot, elolvastad a témába vágó HOGYANokat és GYIK-gyűjteményeket, kerestél a neten, de még mindig nem találtad meg a megfelelő választ a kérdésedre. Most már elkezdheted megírni a hozzászólásodat. Nem árt, ha az elején világossá teszed, hogy már olvasgattál a témában, pl. így: Elolvastam a Winmodem-HOGYANt és a PPP-GYIK-et, de egyikben sem találtam meg azt, amit keresek; a google-n rákerestem a "Winmodem Linux PPP Setup"-ra, de ez sem dobott ki semmi használhatót. Ebből látszik majd, hogy olyan ember vagy, aki kész erőfeszítéseket tenni a probléma megoldása érdekében, nem pedig egy lusta 96
104 Fejezet 14. Hol találsz segítséget? hülye, aki elvárja, hogy kanállal etessék. Az előbbi valószínűleg segítséget fog kapni, ha akad valaki a fórumon, aki tudja a választ; utóbbinak feltehetően rideg csend vagy szókimondó gúnyolódás lesz a jutalma. Fogalmazz érthetően, tartsd be a nyelvtani és helyesírási szabályokat. Ez hihetetlenül fontos, mert jelzi, hogy precíz és megfontolt, gondolkodó ember vagy. Ne használj ilyen kifejezéseket: 1ébként (az "egyébként" helyett), vok (a "vagyok" helyett). Igyekezz művelt és intelligens ember benyomását kelteni. Jobban fogsz járni, biztosíthatlak. Fontos, hogy ne írj csupa nagybetűvel, ÍGY. A neten ezt úgy értelmezik, mintha kiabálnál, durva és udvariatlan hatást kelt. Egyértelmű részletességgel írd le a problémát és azt, hogy mit tettél már a megoldás érdekében. Teljesen haszontalan olyan kérdést feltenni, hogy Nem működik a Linuxom. Mit tehetnék? Mióta nem működik? Mi módon állt le? Fogalmazz a lehető legpontosabban. Persze ennek is vannak határai, pl. ne írj bele a hozzászólásodba lényegtelen információkat. Ha a levelezőprogramoddal vannak gondjaid, akkor teljesen valószínűtlen, hogy a rendszermag indulási naplófájlja (dmesg) bármi információval szolgálna ez ügyben. Ne kérd, hogy magánlevélben válaszoljanak. A legtöbb linuxos fórumnak épp az a célja, hogy mindenki tanulhasson a másik problémáiból. Ha magán választ kérsz, megfosztod a hírcsoportot vagy fórumot az egyik alapvető értékétől A hozzászólásod formája Ne küldj hozzászólást HTML-formátumban. Sok Linux-felhasználónak olyan levelezőprogramja van, amelyik nem egykönnyen jeleníti meg a HTML-ben írt eket. Bár képesek HTML-leveleket is elolvasni, általában nem teszik. Ha ilyen formában küldöd nekik a leveledet, nagy az esélye, hogy olvasatlanul kerül a kukába. Írj inkább sima szöveg (plain text) formában, így sokkal többen fogják elolvasni Utólagos összefoglaló levél (follow-up) Miután megoldódott a problémád, írj egy rövid utólagos összefoglalást a fórumra, amelyben elmagyarázod, mi volt a konkrét gond és hogyan oldottad meg. A többiek nagyra értékelik majd ezt, hiszen ha legközelebb felteszi valaki ugyanezt (vagy hasonló) kérdést, sokkal könnyebb lesz segíteni neki: az illető megkeresheti a hírcsoport vagy levelezőlista archívumában az ezzel kapcsolatos leveleket és megtalálja a megoldásodat is További információk Ez a kis útmutató csak átfogalmazása és rövid összefoglalása az Eric S. Raymond által írt kitűnő (és sokkal részletesebb) dokumentumnak, amely itt található: Érdemes elolvasnod, mielőtt bármit is írnál bármilyen fórumra. Utána úgy tudod majd megfogalmazni a kérdésedet, hogy maximális eséllyel kaphass megfelelő választ IRC Az IRC-t (Internet Relay Chat) nem tárgyalja Eric Raymond útmutatója, pedig az is nagyszerű módja lehet a segítségkérésnek. Mindenesetre itt sem árt némi gyakorlat a helyes kérdésfeltevésben. A legtöbb IRC-hálózaton igen forgalmas a #linux csatorna, és ha a kérdésedre adandó válasz megtalálható a kézikönyv oldalakon vagy a HOGYANokban, akkor ne lepődj meg, ha ezek elolvasását ajánlják neked. Itt is érvényes, hogy érthető, világos módon és nyelvileg helyesen írjunk. 97
105 Fejezet 14. Hol találsz segítséget? A hírcsoportokról és levelezőlistákról elmondottak nagy része az IRC-re is érvényes, a következő kiegészítésekkel: Színek Ne használj színeket, félkövér, aláhúzott vagy szokatlan (nem ASCII) karaktereket, mert ettől némely régebbi terminál megzavarodik, és ránézésre is egyszerűen csúnya. Ha belépsz egy csatornára és elkezdesz színes vagy félkövér betűket árasztani, számíthatsz rá, hogy ki fognak rúgni Légy udvarias Ne feledd: nem vagy feltétlenül jogosult arra, hogy választ kapj. Ha jól teszed fel a kérdésedet, akkor talán kapsz rá választ, de ez senkinek sem jár alapból. A linuxos IRC-csatornákon mindenki saját jószántából, szabadideje rovására van jelen, senki nem fizet nekik ezért, főleg te nem. Légy udvarias! Bánj úgy a többiekkel, ahogyan szeretnéd, ha veled bánnának. Ha úgy érzed, hogy a többiek nem udvariasak veled, akkor ne kezdd el szidni vagy más módon bosszantani őket, inkább legyél még udvariasabb. Így ők tűnnek majd nevetségesnek, s nem tudnak lerángatni téged a maguk szintjére. Ne szégyeníts meg senkit! Ha hiszed, ha nem, megtették már vele mások korábban egyszer-kétszer, és elsőre sem volt kellemes Írj helyesen, és angolul A legtöbb #linux csatorna angol nyelvű. Ha ott tartózkodsz, beszélj angolul. A nagyobb IRC-hálózatokon vannak más nyelvű #linux csatornák is, például a francia nyelvűt talán #linux.fr-nak hívják, a spanyolt valószínűleg #linux.es vagy #linuxlatino néven találod meg. Ha így nem találsz rá a megfelelő csatornára, akkor a fő (angol nyelvű) #linux csatornán bizonyára tudnak majd segíteni. Ne írj olyanokat, hogy 1337 H4X0R d00d!!!. Akkor sem, ha mások így tesznek. Ostobán néz ki, így te is ostobának fogsz tűnni. Jó esetben csak hülyének néznek, rosszabb esetben kirúgnak a csatornáról Port szkennelés Soha, de soha ne kérd senkitől, hogy szkennelje a portjaidat, vagy hogy próbáljon betörni a gépedre! Nincs rá mód, hogy megtudják, valóban az vagy-e, akinek mondod magad, vagy hogy az az IP-cím, amellyel csatlakozol, valóban a tiéd. Ne hozd az embereket olyan helyzetbe, hogy nemet kelljen mondaniuk egy ilyen kérésre. Te se szkenneld mások portjait, még akkor sem, ha megkérnek rá. Nem tudhatod, valóban az-e az illető, akinek mondja magát, és hogy az az IP-cím, amiről csatlakozik, valóban az övé. Némely jogrendszerben a port szkennelés törvényellenesnek minősül, és egészen biztos, hogy ellenkezik a legtöbb internet-szolgáltató (ISP) szolgáltatási feltételeivel. Sokan naplózzák a bejövő TCP kapcsolatokat, észre fogják venni, hogy szkennelik őket, és sokan jelezni fogják ezt a szolgáltatódnak (az pedig rendkívül egyszerűen ki tudja deríteni, ki volt az) Maradj a csatornán Ne küldj privát üzenetet (/msg) senkinek, hacsak meg nem kért rá. A privát üzenetek csökkentik a csatorna értékét, és vannak, akik egyszerűen jobban szeretnék, ha nem /msg-znél. 98
106 Maradj a témánál Fejezet 14. Hol találsz segítséget? Ne térj el a csatorna topikjától. Ez egy Linux csatorna, nem pedig Mit vett fel Bob bácsi múlt hétvégén. Ha látsz is másokat, akik eltérnek a témától, te ne tedd ezt. Lehet, hogy ők törzsvendégnek számítanak és rájuk más szabályok vonatkoznak CTCP-k Ha tömeges CTCP-t forgatsz a fejedben 1, pingelni akarod a csatornát vagy CTCP verziót nézegetni, vagy bármit CTCP-zni, fontold meg a dolgot. Nagy valószínűséggel igen hamar kirúgnak a csatornáról Hacker, cracker, phreak, warez Ne kérdezősködj exploitok felől, hacsak nem akarod, hogy újabb indok legyen a kirúgásodra. Ne tartózkodj egyidejűleg hacker/cracker/phreaker/warez és linuxos csatornán. Valamilyen rejtélyes oknál fogva a #linux csatornák operátorai gyűlölik azokat, akik szeretnek kárt okozni mások gépében, vagy szoftvert lopni. El sem tudom képzelni, miért Összegzés Elnézést, ha úgy sikerült ez az összefoglaló, mint egy csomó "ne tedd ezt" és néhány "tedd ezt" listája. A "tedd ezt" sorozatot már bőven kifejtettem a hírcsoportokról és levelezőlistákról szóló részben. Talán az a legokosabb, ha bemégy egy #linux csatornára, leülsz és figyeled a beszélgetést úgy félóráig, mielőtt megszólalnál. Ha kiismerted az ottani hangnemet, jobban be tudsz illeszkedni közéjük Ajánlott olvasmányok Nagyon sok kitűnő GYIK létezik a neten arról, hogyan használhatod legjobban az IRC #linux csatornáit. A legtöbb ilyen csatornához saját GYIK tartozik, vagy saját szabálygyűjtemény. Ennek lelőhelyét megtalálhatod a csatorna topikjában (ezt bármikor megtekintheted a /topic paranccsal. Ha vannak ilyen szabályok, olvasd el és tartsd be őket. Egy általános szabály- és tanácsgyűjteményt találsz az The Undernet #linux channel FAQ -ban ( Megjegyzések 1. Ha nem vagy járatos az IRC működésében, elárulom, hogy a CTCP a Client to Client Protocol (kliens-kliens-protokoll) rövidítése. E módszerrel különféle dolgokat tudhatsz meg mások klienseiről. Részleteket az IRC-kliensed dokumentációjában találsz. 99
107 Függelék A. GNU Free Documentation License Version 1.1, March 2000 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely 100
108 Függelék A. GNU Free Documentation License available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work s title, preceding the beginning of the body of the text. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100, and the Document s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. 101
109 Függelék A. GNU Free Documentation License It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document s license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section s title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as 102
110 Függelék A. GNU Free Documentation License invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version s license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, 103
111 Függelék A. GNU Free Documentation License provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document s Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". 104
112 Függelék A. GNU Free Documentation License If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. 105
113 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) A Láthatatlan Egyetem Könyvtárosa egyoldalúan úgy döntött, hogy a megértést segítendő, összeállít egy orángután-ember szótárat. Három hónapig dolgozott rajta. Nem volt könnyű munka. Odáig jutott el, hogy "Oook" (Terry Pratchett, Men At Arms ) A Linux és a rendszeradminisztráció legfontosabb kifejezéseinek magyarázata CMOS RAM A CMOS a "Complementary Metal Oxide Semiconductor" rövidítése. Igen összetett technológia, de leegyszerűsítve nem más, mint egy tranzisztortípus, amely akkor is megőrzi az állapotát, ha nem kap áramot, így egyfajta statikus RAM-ot biztosít, azaz olyan RAM-ot, amelyik nem veszíti el a tartalmát, ha lekapcsoljuk a gépet. account (felhasználói fiók) A Unix rendszerekben a felhasználók felhasználói fiókokat (account) kapnak, azaz egy felhasználónevet és egy jelszót, amellyel beléphetnek a fiókjukba. Rendszerint kapnak egy home könyvtárat is, ahol a fájlokat tárolhatják, és hardver-, valamint szoftverelérési jogokat. Mindezek együtt jelentik az account (fiók) fogalmát. application program (alkalmazás) Olyan szoftver, ami valami hasznosat csinál. Az alkalmazás használatának eredménye az, amiért a számítógépet megvetted. Lásd még: system program (rendszerprogram), operating system (operációs rendszer). bad block (hibás blokk) Olyan blokk (rendszerint a lemez egy szektora), amely képtelen a megbízható adattárolásra. bad sector (hibás szektor) Hasonló a bad block-hoz (hibás blokk), de pontosabb kifejezés abban az esetben, ha a blokkok és a szektorok mérete nem azonos. boot sector (rendszerindító szektor) Rendszerint egy adott partíció első szektora. Egy nagyon rövid programot tartalmaz (néhány száz byte méretűt), amely betölti és elindítja az operációs rendszert. 106
114 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) booting (rendszerindítás) Mindaz, ami a számítógép bekapcsolásától kezdve történik, egészen addig, amíg a gép képes lesz a felhasználó parancsait fogadni. bootstrap loader (rendszerbetöltő) Egy igen kis program (általában a ROM-ban), amely a lemez egy meghatározott részét (pl. az MBR-t) olvassa be és átadja neki a vezérlést. E meghatározott részen található program általában valamivel nagyobb és összetettebb, s ez felelős az adott operációs rendszer betöltéséért, amelynek aztán átadja a vezérlést. cylinder (cilinder) Egy többfejes lemezen a sávok egy csoportja, amelyet az olvasófej mozgatása nélkül lehet elérni. Más szóval, azok a sávok, amelyek azonos távolságban vannak a tengelytől, amely körül a lemez korongjai forognak. Az egy időben olvasandó adatok azonos cilinderre helyezése jelentősen lerövidítheti a hozzáférési időt, ugyanis az író-olvasó fejek mozgása viszonylag lassú a lemezek forgásához képest. daemon (démon) A háttérben, rendszerint észrevétlenül futó processz, amíg valami nem aktiválja. Például az update démon kb. harminc másodpercenként aktiválódik, hogy lemezre írja a cache puffer tartalmát, a sendmail pedig akkor "ébred fel", ha valaki levelet akar elküldeni. daylight savings time (nyári időszámítás) Az év azon időszaka, amikor az órát egy órával előbbre állítják. Szerte a világon használják nyáron, így az esték világosabbak, mint egyébként lennének. disk controller (lemezvezérlő) Hardveres áramkör, amely a lemezelérésre vonatkozó utasításokat értelmezi az operációs rendszertől a fizikai lemez irányában. Olyan absztrakciós réteget biztosít, amely által az operációs rendszernek nem kell tudnia, hogyan kommunikáljon a sok különféle típusú merevlemezzel; mindössze a - viszonylag kisszámú - lemezvezérlő-típusokat kell ismernie. Elterjedt lemezvezérlők: IDE és SCSI. file system (fájlrendszer) Azon eljárások és adatstruktúrák, amelyeket az operációs rendszer használ egy lemezen vagy partíción található fájlok nyomon követésére; az a mód, ahogyan a fájlok a lemezen elhelyezkednek. Ezt a szót használják akkor is, ha egy partícióról vagy lemezről beszélnek, vagy a fájlrendszer típusáról. 107
115 emergency boot floppy (vészindító hajlékonylemez) Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) Olyan hajlékonylemez, amelyet a rendszer indítására használhatunk, még ha a merevlemez fájlrendszere súlyosan sérült is. A Linux különféle terjesztései általában felkínálják a telepítés során egy ilyen rendszerindító hajlékonylemez készítését, és ezt melegen ajánljuk is. Ha az általad használt terjesztés nem ajánlja fel ezt a lehetőséget, akkor olvasd el a The Linux Bootdisk HOWTO ( dokumentumot az LDP oldalán. filesystem (fájlrendszer) Ezt a kifejezést két értelemben is használják, amelyek közt árnyalatnyi az eltérés. Jelentheti egyrészt a meghajtón (merevlemez, hajlékonylemez, CD-ROM stb.) található fájlok és könyvtárak összességét; másrészt pedig azokat a jelölő elemeket a fizikai lemezen, amelyeket az operációs rendszer használ, hogy eldöntse, hová írja a fájlokat (inode, blokk, szuperblokk stb.). Az aktuális jelentést mindig az adott szövegkörnyezet dönti el. formatting (formázás) Szigorúan véve ez a művelet azt jelenti, hogy a lemez felületét sávokra, szektorokra és cilinderekre osztjuk és ezt jelölő elemekkel rögzítjük. Néha (helytelenül) abban az értelemben is használják, hogy fájlrendszert írunk a lemezre (különösen a MS Windows/MS DOS világában). fragmented (töredezettség) Ha egy fájlt nem összefüggő blokkokban írtunk a lemezre. Ha nincs elég hely a lemezen ahhoz, hogy egy teljes fájlt összefüggő blokkokban írjunk a lemezre, akkor a fájl széttöredezik a lemez felszínének két vagy több részén. Ezt a jelenséget nevezik töredezettségnek, ami megnövelheti a fájl betöltésének idejét, hiszen a lemeznek tovább kell keresnie a fájl többi részét. full backup (teljes biztonsági mentés) A teljes fájlrendszer másolása biztonsági adathordozóra (pl. szalag, hajlékonylemez, CD). geometry (lemezgeometria) Mennyi cilinder, cilinderenként mennyi szektor és fej van egy lemezen. high level formatting (magas szintű formázás) Helytelen kifejezés arra, hogy fájlrendszert írunk a lemezre. Gyakran használják az MS Windows és MS DOS világában. 108
116 incremental backups (növekményes biztonsági mentés) Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) Az utolsó teljes mentés óta bekövetkezett változások biztonsági mentése. A növekményes mentés segítségével - ha okosan és rendszeresen használjuk - sok időt és energiát takaríthatunk meg a biztonsági mentések karbantartásakor. inode (inode) Unix rendszerekben a fájlokról szóló információt tároló adatstruktúra. Mindegyik fájl számára külön inode létezik, az egyes fájlokat pedig egyedileg lehet azonosítani aszerint, hogy melyik fájlrendszerben vannak és ott mi az inode-számuk. Egy-egy inode a következő információkat tartalmazza: melyik eszközön van, zárolási információ, a fájl típusa, a fájlhoz tartozó hivatkozások száma, a tulajdonos user és group azonosítója, a fájlban található byte-ok száma, hozzáférések és módosítások kelte, az inode utolsó módosításának ideje, valamint a fájl blokkjainak címe a lemezen. Egy Unix könyvtár nem más, mint a fájlok neve és inode-száma közti kapcsolatok összessége. Egy fájl inode-számát az ls parancs -i kapcsolójával tudhatjuk meg. kernel (rendszermag) Az operációs rendszer azon része, amely a hardverrel való interakciót és az erőforrások megosztását valósítja meg. Lásd még: rendszerprogram. local time (helyi idő) Egy adott földrajzi régió hivatalos ideje (a Földön régiónként eltérő); törvény vagy helyi szokás határozza meg. logical partition (logikai partíció) Egy kiterjesztett partíción belüli partíció, amely logikai olyan értelemben, hogy a valóságban nem létezik, csakis a szoftver logikai struktúráján belül. low level formatting (alacsony szintű formázás) A formázás szinonimája; az MS DOS világában a fájlrendszer létrehozásától való megkülönböztetésül használják, ez utóbbit néha formázásnak is mondják. mail transfer agent (levélküldő program) Rövidítve MTA. Az a program, amely az ek továbbításáért felelős. Amint üzenetet kap egy felhasználói levelezőprogramtól vagy egy másik MTA-tól, átmenetileg helyben tárolja azt, megvizsgálja a címzettet és vagy kézbesíti a levelet (helyi címzett esetén), vagy továbbadja egy másik MTA-nak. Mindkét esetben szerkesztheti és/vagy kiegészítheti a levél fejlécét. Az egyik legszélesebb körben használt MTA Unix környezetben a sendmail. 109
117 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) mail user agent (felhasználói levelezőprogram) Rövidítve MUA. Az a program, amely lehetővé teszi a felhasználó számára, hogy elektronikus leveleket szerkesszen és olvasson. A MUA közvetít a felhasználó és a levélküldő program (Mail Transfer Agent, MTA) között. A kimenő levelek átadódnak egy MTA-nak kézbesítésre, míg a bejövő leveleket onnan veszi fel a program, ahol az MTA hagyta őket (noha az egyfelhasználós gépeken futó felhasználói levelezőprogramok - MUA - POP segítségével is begyűjthetik a leveleket). Ismert programok: pine, elm, mutt. master boot record (MBR) A lemez első logikai szektora, rendszerint itt keresi a BIOS azt a betöltendő kis programot, amely aztán elindítja a számítógépet. network file system (hálózati fájlrendszer) Rövidítve NFS. A Sun Microsystems által kifejlesztett protokoll, meghatározása az RFC 1094-ben található. Segítségével egy számítógép elérheti a hálózati meghajtókon lévő fájlokat, mintha azok a saját helyi lemezén lennének. operating system (operációs rendszer) Szoftver, amely megosztja a számítógépes rendszer erőforrásait (processzor, lemezterület, hálózati sávszélesség stb.) a felhasználók és az általuk futtatott alkalmazások között. Felügyeli a rendszerhez való hozzáférést, ily módon gondoskodik a biztonságról. Lásd még: kernel (rendszermag), system program (rendszerprogram), application program (alkalmazás). partition (partíció) Egy lemez logikai része. Mindegyik partíció saját fájlrendszerrel rendelkezik. A Unix úgy kezeli a partíciókat, mintha önálló fizikai egységek lennének. password file (jelszófájl) Az a fájl, amely a felhasználóneveket és a hozzájuk tartozó információkat (pl. a jelszó) tárolja. Unix rendszereken ez általában az /etc/passwd. A modern Linux rendszereken az /etc/passwd fájl valójában nem tartalmazza a jelszavakat, ezeket inkább egy másik fájlban, az /etc/shadow-ban tárolják, biztonsági okokból. Lásd a megfelelő kézikönyv oldalakat: passwd(5), shadow(5). platters (korongok) Fizikai lemez a merevlemez-meghajtón belül. Egy merevlemez rendszerint több fizikai lemezből áll, amelyeket egymás fölött helyeznek el. Ezekből egy önálló lemez a korong. 110
118 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) power on self test (POST) Egy sor diagnosztikai teszt, amelyek a számítógép bekapcsoláskor futnak le. Jellemzően a következőket jelenti: memóriateszt, a hardverkonfiguráció esetleges változásainak vizsgálata (a legutóbbi állapothoz képest), a BIOS által ismert hajlékony- és merevlemez meghajtók működésének ellenőrzése. print queue (nyomtatási sor) Egy fájl (vagy fájlok csoportja), amelyet a nyomtatási démon használ annak biztosítására, hogy a nyomtatni kívánó alkalmazásoknak ne kelljen megvárniuk a munka folytatásához, hogy a nyomtatási feladat befejeződjön. Lehetővé teszi azt is, hogy több felhasználó használjon egy nyomtatót. read-write head (író-olvasó fej) Vékony elektromágneses tekercs és egy fém kar, amely a lemezre mágneses mintákat ír, ill. onnan ilyeneket olvas. Ezek oldalsó irányban mozognak a korongok forgásához képest (vagyis a korong közepe illetve széle felé, sugárirányban - a lektor). root filesystem (gyökér fájlrendszer) Unix fájlrendszerben minden egyéb felcsatolt fájlrendszer szülője. Csatolási pontja: /. Ez alá egyéb fájlrendszereket lehet felcsatolni (pl. /usr). Ha a gyökér fájlrendszert nem lehet felcsatolni, akkor a rendszermag "pánikol" és a rendszer nem képes betöltődni. run level (futási szint) A Linuxban összesen 10 futási szint van (0-9), ezek közül többnyire csak az első hetet definiálják. Mindegyik futási szint más-más szolgáltatásokat indíthat, így egyazon rendszeren belül több eltérő konfigurációra van lehetőség. A 0. futási szintet rendszerleállás ként definiálták, az 1-est egyfelhasználós üzemmód -ként, a 6-ost pedig újraindítás -ként. A fennmaradó futási szinteket elméletileg tetszése szerint definiálhatja a rendszeradminisztrátor. Mindazonáltal a legtöbb Linux terjesztésben benne van néhány előre definiált futási szint, pl. a 2-es szint lehet többfelhasználós konzolos üzemmód az 5-ös pedig többfelhasználós X rendszer. Ezek a definíciók terjesztésről terjesztésre változhatnak, ezért érdemes megnézni a hozzájuk tartozó dokumentációt. sectors (szektorok) Az a minimális sávhosszúság, amelyet adattárolásra használnak. Általában (de nem mindig) 512 byte-ot jelent. shadow passwords (árnyékjelszó) Mivel a Unix rendszereken a jelszófájl (password file) bárki számára olvasható, általában nem tartalmazza a felhasználók jelszavait. Ehelyett egy úgynevezett árnyékfájlt használnak erre a célra, amit már nem olvasható akárki számára. Ez tartalmazza a felhasználók titkosított jelszavait. 111
119 Szójegyzék (egyelőre piszkozat, de remélhetőleg nem sokáig) single user mode (egyfelhasználós üzemmód) Általában ez az 1-es futási szint. Itt a bejelentkezés csak a root számára engedélyezett. A rendszer hibáinak kijavítására szokták használni (ha a fájlrendszer részben megsérült, még be lehet jelentkezni az 1-es futási szintre és meg lehet javítani), vagy partíciók közötti fájlrendszer-mozgatásra. Ez csak két példa volt, de minden olyan feladat az 1-es szint futtatását kívánja meg, ahol egyszerre csak egy személy írhat a lemezre. spool (puffer) Fájlok vagy más adatok sorba állítására szolgál. Általában nyomtatókkal kapcsolatban használatos, de más feladatok (pl. levelek elküldése) sorba állítására is alkalmas. Egyes források szerint betűszó, a Simultaneous Peripheral Operation On-Line -ból keletkezett, viszont a Jargon File ( szerint ez inkább egy utólag kreált magyarázat. system call (rendszerhívás) A rendszermag által az alkalmazások számára biztosított szolgáltatások, illetve ezek meghívásának módja. Lásd a kézikönyv oldalak 2. szekcióját. swap space (lapozó terület) A merevlemez azon területe, amelyre a rendszer kiírhatja a memória bizonyos részeit. Általában külön partíciót használnak erre a célra, de lehet lapozófájlt (swapfile) is alkalmazni. system program (rendszerprogram) Azon programok, amelyek egy operációs rendszer magas szintű működését valósítják meg, azaz olyan dolgok, amelyek nem függnek közvetlenül a hardvertől. Bizonyos esetekben különleges jogosultságokat kíván meg a futtatásuk (pl. elektronikus levelek kézbesítése), de gyakran csak a rendszer egy részét értik rajta (pl. fordítóprogram). Lásd még: application program (alkalmazás), kernel (rendszermag), operating system (operációs rendszer). track (sáv) A lemez korongjának egy része, amely elhalad egy író-olvasó fej alatt, miközben a fej mozdulatlan, de alatta forog a lemez. Minden sáv szektorokra oszlik, a sávok függőleges csoportját pedig cilindernek nevezzük. 112
A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program
A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása
Gyorskalauz SUSE Linux Enterprise Desktop 11
Gyorskalauz SUSE Linux Enterprise Desktop 11 NOVELL GYORSKALAUZ KÁRTYA A SUSE Linux Enterprise Desktop 11 új verziójának telepítéséhez a következő műveletsorokat kell végrehajtani. A jelen dokumentum áttekintést
A L I N U X f e l é p í t é s e
A L I N U X f e l é p í t é s e Fájlrendszer, könyvtárszerkezet, kernel, terminal, X-window DE-EFK Egészségügyi Ügyvitelszervező Szak Linux c. tantárgy 2006 I. félév F á j l r e n d s z e r Fájlrendszernek
A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program
A GeoEasy telepítése GeoEasy V2.05+ Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2010 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása
Gyorskalauz SUSE Linux Enterprise Server 11
Gyorskalauz SUSE Linux Enterprise Server 11 NOVELL GYORSKALAUZ KÁRTYA A SUSE Linux Enterprise 11 új verziójának telepítéséhez a következő műveletsorokat kell végrehajtani. A jelen dokumentum áttekintést
Unix fájl-hierarchia
Unix fájl-hierarchia Buday Gergely Károly Róbert Főiskola 2014 ősz.... Filesystem Hierarchy Standard 2.3-as verzió Rusty Russell, Daniel Quinlan, Christopher Yeoh 2004. január 28. nincs kőbe vésve....
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád [email protected] www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 15:00-16:00-ig
Gyorskalauz SUSE Linux Enterprise Server 11 SP1. Gyorskalauz. Köszönti az SUSE Linux Enterprise Server! Minimális rendszerkövetelmények
Gyorskalauz SUSE Linux Enterprise Server 11 SP1 Gyorskalauz SUSE Linux Enterprise Server 11 SP1 NOVELL GYORSKALAUZ KÁRTYA A SUSE Linux Enterprise Server új, 11 SP1 verziójának telepítéséhez a következő
Java-s Nyomtatványkitöltő Program Súgó
Java-s Nyomtatványkitöltő Program Súgó Hálózatos telepítés Windows és Linux operációs rendszereken A program nem használja a Registry-t. A program három könyvtárstruktúrát használ, melyek a következők:
Számítógépes munkakörnyezet II. Szoftver
Számítógépes munkakörnyezet II. Szoftver A hardver és a felhasználó közötti kapcsolat Szoftverek csoportosítása Számítógép működtetéséhez szükséges szoftverek Operációs rendszerek Üzemeltetési segédprogramok
Opensuse automatikus telepítése
Leírás www.npsh.hu Opensuse automatikus telepítése Tartalomjegyzék I. Automatikus telepítés indokai... 3 II. Automatikus telepítés lehetőségei opensuse rendszerrel...3 III. Automatikus telepítés előkészí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
Az operációs rendszer Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása Az operációs rendszer feladatai Programok indítása, futtatása Perifériák kezelése Kapcsolat a felhasználóval
Rendszerkezelési útmutató
Rendszerkezelési útmutató Medtronic MiniMed Northridge, CA 91325 USA 800-646-4633 (800-MiniMed) 818.576.5555 www.minimed.com Képviselet az Európai Unióban: Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen
BaBér bérügyviteli rendszer telepítési segédlete 2011. év
BaBér bérügyviteli rendszer telepítési segédlete 2011. év Ajánlott konfiguráció A program hardverigénye: Konfiguráció: 2800 MHz processzor 512 Mbyte memória (RAM) / Szerver gépen 1G memória (RAM) Lézernyomtató
1. A Windows Vista munkakörnyezete 1
Előszó xi 1. A Windows Vista munkakörnyezete 1 1.1. Bevezetés 2 1.2. A munka megkezdése és befejezése 4 1.2.1. A számítógép elindítása 4 1.2.2. Az üdvözlőképernyő 5 1.2.3. A saját jelszó megváltoztatása
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád [email protected] www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 15:00-16:00-ig
Hogyan telepíthetsz fel Arch linuxot
Hogyan telepíthetsz fel Arch linuxot Már régóta kerestem valami jó kis cikket, ami viszonylag részletesen bemutatja ennek a nagyszerű disztribúciónak a telepítését. Eddig semmit nem találtam, de ma végre
Hardver és szoftver követelmények
Java-s Nyomtatványkitöltő Program Súgó Telepítési útmutató Hardver és szoftver követelmények A java-s nyomtatványkitöltő program az alábbi hardverigényt támasztja a számítógéppel szemben: 400 MHz órajelű
1. DVNAV letöltése és telepítése
1. DVNAV letöltése és telepítése A Drén és Valner Szoftver Kft által készített DVNAV programmal lehetőség van a számlázó program által elkészített XML-ek NAV-hoz történő eljuttatására, majd a számlákról
OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -
OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc - [email protected] KÖVETELMÉNYEK GYAKORLATI JEGY: Két zárthelyi dolgozat eredményes megírása. Forrás: http://wiki.koczka.hu ELMÉLETI VIZSGA Az előadások
Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge
Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge Tartalomjegyzék Bevezetés 2 Szükséges hardver és szoftver konfiguráció 3 Testreszabások lementése előző Solid Edge verzióból 4 Előző Solid
Oktatási cloud használata
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnikai és Információs Rendszerek Tanszék Oktatási cloud használata Készítette: Tóth Áron (BME MIT), 2013. A segédlet célja a tanszéki oktatási cloud
iseries Client Access Express - Mielőtt elkezdi
iseries Client Access Express - Mielőtt elkezdi iseries Client Access Express - Mielőtt elkezdi ii iseries: Client Access Express - Mielőtt elkezdi Tartalom Rész 1. Client Access Express - Mielőtt elkezdi.................
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád [email protected] www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 15:00-16:00-ig
FITNESS SYSTEM Telepítési útmutató
FITNESS SYSTEM Telepítési útmutató web: www.szakk.hu e-mail: [email protected] Tartalomjegyzék: Első lépések:... 3 Licenc megállapodás... 3 Telepítési kulcs... 4 Felhasználói adatok... 5 Telepítő csomagok
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
Bevezetés A Memeo Instant Backup egyszerű biztonsági másolási megoldás, mely nagy segítséget nyújt a bonyolult digitális világban. A Memeo Instant Backup automatikus módon, folyamatosan biztonsági másolatot
MS Windows XP Professional SP2 telepítés virtuális gépre. [email protected]
MS Windows XP Professional SP2 telepítés virtuális gépre 1 Előzmények Új gép esetén meg kell győződnünk arról, hogy a gép XP kompatibilis Lehetséges, hogy csak Vista drivereket kínál a gyártó a géphez,
FTP Az FTP jelentése: File Transfer Protocol. Ennek a segítségével lehet távoli szerverek és a saját gépünk között nagyobb állományokat mozgatni. Ugyanez a módszer alkalmas arra, hogy a kari web-szerveren
VisualBaker Telepítési útmutató
VisualBaker Telepítési útmutató Office Hungary Bt web: www.visualbaker.hu e-mail: [email protected] Tartalomjegyzék: Telepítési útmutató... 1 Tartalomjegyzék:... 2 Első lépések:... 3 Telepítési kulcs...
Ismerkedjünk meg a Linuxszal!
LOK 2006 Áttekintés A Linux 1 A Linux Mi is pontosan a Linux? A Linux, mint operációs rendszer 2 3 Áttekintés A Linux Mi a Linux Operációs rendszer 1 A Linux Mi is pontosan a Linux? A Linux, mint operációs
A telepítési útmutató tartalma
1 A telepítési útmutató tartalma 3 Kompatibilitás és rendszerkövetelmények A telepítési folyamat röviden 4 A telepítés indítása 5 Adatbáziskezelő beállítása / telepítése 8 Telepítési módozatok 11 Az ENSO
Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia
Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia Ez a dokumentum az órán bemutatott alapparancsoknak egy vázlatos áttekintése. A parancsokhoz tartozó kapcsolók/opciók (flagek) felsorolása nem teljes.
F-Secure Biztonsági megoldás. Az első lépések Windows-számítógépeken
F-Secure Biztonsági megoldás Az első lépések Windows-számítógépeken Rendszerkövetelmények Rendszerkövetelmények Támogatott operációs rendszerek Microsoft Windows 7, Windows 8 és Vista Windows-munkaállomások
Protection Service for Business. 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 Rendszerkövetelmények Rendszerkövetelmények Támogatott operációs rendszerek Microsoft Windows 7, Windows 8 és Vista Windows-munkaállomások
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád [email protected] www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 12:00-13:00-ig
Digitális aláíró program telepítése az ERA rendszeren
Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,
1.2. NFS kliens telepítése és beállítása
Hálózati adminisztráció Linux (Ubuntu 9.04) 10. gyakorlat Johanyák Zsolt Csaba 1 NFS és Samba szolgáltatások telepítése és beállítása Az NFS segítségével könyvtárakat oszthatunk meg Linux operációs rendszert
A L i n u x r u h á j a
A L i n u x r u h á j a Disztribúciók és azok sajátosságai Ablakkezelők DE-EFK Egészségügyi Ügyvitelszervező Szak Linux c. tantárgy 2006 I. félév D i s z t r i b ú c i ó f o g a l m a A Linux-disztribúció
5.4.2 Laborgyakorlat: A Windows XP telepítése
5.4.2 Laborgyakorlat: A Windows XP telepítése Bevezetés Nyomtasd ki a laborgyakorlatot és végezd el lépéseit! A laborgyakorlat során a Windows XP operációs rendszert fogjuk telepíteni. Szükséges eszközök
ALKALMAZÁSOK ISMERTETÉSE
SZE INFORMATIKAI KÉPZÉS 1 SZE SPECIFIKUS IT ISMERETEK ALKALMAZÁSOK ISMERTETÉSE A feladat megoldása során valamely Windows Operációs rendszer használata a javasolt. Ebben a feladatban a következőket fogjuk
Operációs rendszerek. Az X Window rendszer
Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).
Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése
i Saját Subversion tároló üzemeltetése ii KÖZREMŰKÖDŐK CÍM : Saját Subversion tároló üzemeltetése TEVÉKENYSÉG NÉV DÁTUM ALÁÍRÁS ÍRTA Jeszenszky, Péter 2014. február 16. VERZIÓTÖRTÉNET VERZIÓ DÁTUM LEÍRÁS
italc felhasználói dokumentáció
ITALC Felhasználói Leírás www.npsh.hu italc felhasználói dokumentáció a Nemzeti Fejlesztési Minisztérium részére Védjegyek és Jogi nyilatkozat Copyright Novell, Inc. Minden jog fenntartva. A Novell, és
Virtualoso Server szolgáltatás Virtuális szerver használati útmutató
Virtualoso Server szolgáltatás Virtuális szerver használati útmutató Virtualoso Server Használati útmutató 1 Virtualoso Server szolgáltatás Virtuális szerver használati útmutató A következô pár oldalon
Bejelentkezés az egyetemi hálózatba és a számítógépre
- 1 - Bejelentkezés az egyetemi hálózatba és a számítógépre 1. lépés: az Egyetem Novell hálózatába történő bejelentkezéskor az alábbi képernyő jelenik meg: az első sorban a felhasználónevet, a második
KISOKOS Windows TARTALOM. Vista rendszerhez
KISOKOS Windows Vista rendszerhez TARTALOM 1. fejezet: RENDSZERKöVETELMéNYEK...1 2. fejezet: NYOMTATóSZOFTVER TELEPíTéSE WINDOWS HASZNáLATA ESETéN...2 Szoftver telepítése helyi nyomtatáshoz... 2 Szoftver
KIRA. KIRA rendszer. Telepítési útmutató v1
KIRA rendszer Telepítési útmutató v1 1. Bevezetés A dokumentáció, illetve a dokumentáció mellékleteként megtalálható állományok segítségével készíthető fel a kliens oldali számítógép a KIRA rendszer működtetésére.
tovább használhatjuk a Windows-t.
Complete PC Backup A Windows Vista többfajta adatmentési és rendszer-helyreállítási funkcióval rendelkezik, ezek közül az egyik legérdekesebb és leghasznosabb a teljes rendszert egy gombnyomással visszaállítani
Digitális aláíró program telepítése az ERA rendszeren
Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,
Telenor Webiroda. Kezdő lépések
Telenor Webiroda Kezdő lépések Virtuális Tárgyaló Tartalom 1. Bevezetés...2 2. A szolgáltatás elérése és a kliensprogram letöltése...3 3. A kliensprogram telepítése...6 4. A Virtuális Tárgyaló használatba
Telepítési Kézikönyv
Intelligens Dokumentum Kezelő Rendszer Telepítési Kézikönyv 1/15. oldal Dokumentum áttekintés Dokumentum címe: doknet telepítési kézikönyv Dokumentum besorolása: szoftver telepítési leírás Projektszám:
Hálózatok építése és üzemeltetése
Hálózatok építése és üzemeltetése Linux 1 Rendszergazda jogosultságok (Fehér Gábor slide-jai) 2 Root jogosultságok Többfelhasználós rendszerekben adminisztrációs teendők Felhasználók menedzselése Külső
Debian mint Desktop Operációs rendszer
Debian mint Desktop Operációs rendszer Ez a dokumentum segítséget nyújt a Linux mindennapos használatához, a dokumentumszerkesztéstől a video- és zenelejátszáson át a böngészésig. Az itt felhasznált programok,
XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban
XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban 1. XCZ állomány ellenőrzése és átadása elektronikus beküldésre 2. Nyomtatvány
Linux alapok gyakorlat
11. évfolyam, informatikai rendszerüzemeltető 2018. Témakörök (elméleti tárgyrész) 1. Kialakulása 2. Disztribúciók 3. Telepítés, bootloader 4. Csomagkezelés 5. Rendszer felépítése, kernel (könyvtárak,
3Sz-s Kft. Tisztelt Felhasználó!
3Sz-s Kft. 1158 Budapest, Jánoshida utca 15. Tel: (06-1) 416-1835 / Fax: (06-1) 419-9914 E-mail: zk@3szs. hu / Web: http://www. 3szs. hu Tisztelt Felhasználó! Köszönjük, hogy telepíti az AUTODATA 2007
G Data MasterAdmin 9 0 _ 09 _ 3 1 0 2 _ 2 0 2 0 # r_ e p a P ch e T 1
G Data MasterAdmin TechPaper_#0202_2013_09_09 1 Tartalomjegyzék G Data MasterAdmin... 3 Milyen célja van a G Data MasterAdmin-nak?... 3 Hogyan kell telepíteni a G Data MasterAdmin-t?... 4 Hogyan kell aktiválni
Ubuntu Érettségi Remix Telepítési és beállítási leírás. Informatika érettségihez
Ubuntu Érettségi Remix 17.04 Telepítési és beállítási leírás Informatika érettségihez Tartalomjegyzék Bevezetés... 3 Telepítés... 3 A rendszer beállításai... 8 Új felhasználó létrehozása... 8 A rendszer
AirPrint útmutató. 0 verzió HUN
AirPrint útmutató 0 verzió HUN Megjegyzések meghatározása Ebben a használati útmutatóban végig az alábbi ikont használjuk: Megjegyzés A Megjegyzések útmutatással szolgálnak a különböző helyzetek kezelésére,
2. modul - Operációs rendszerek
2. modul - Operációs rendszerek Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 2. modul (Operációs rendszerek) syllabusát, amely az elméleti és gyakorlati modulvizsga követelményrendszere.
BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.
BaBér Bérügyviteli rendszer Telepítési segédlet 2014. Tartalom 1. Ajánlott konfiguráció... 3 2. A BaBér és az SQL2005 szerver telepítése... 5 3. A BaBér program és az SQL2005-ös adatbázis kezelő telepítése...
Számítógépes alapismeretek 2.
Számítógépes alapismeretek 2. 1/7 Kitöltő adatai: Név: Osztály: E-mail cím: 2/7 Kérdések: Mire szolgál az asztal? Az ideiglenesen törölt fájlok tárolására. A telepített alkalmazások tárolására. A telepített
A CCL program használatbavétele
A CCL program használatbavétele Tartalomjegyzék 1.1 Hardver és szoftverkövetelmények... 2 1.2 CCL program telepítése hálózatba. Telepítés szerver számítógépre... 2 1.3 Cégek... 6 1.3.1 Egy céges felhasználás....
hardver-szoftver integrált rendszer, amely Xwindow alapú terminálokat szervez egy hálózatba
= hardver-szoftver integrált rendszer, amely Xwindow alapú terminálokat szervez egy hálózatba HaXSoN Szerver Vékonyterminál vékonyterminál A HaXSoN vékonyterminál jellemzői - kis méretű, alacsony fogyasztású,
Alkalmazások típusai Szoftverismeretek
Alkalmazások típusai Szoftverismeretek Prezentáció tartalma Szoftverek csoportjai Operációs rendszerek Partíciók, fájlrendszerek Tömörítés Vírusok Adatvédelem 2 A szoftver fogalma A szoftver teszi használhatóvá
NIS + NFS+Automount. Összeállította: Sallai András
NIS + NFS+Automount Összeállította: Sallai András Tartalom NIS-ről NIS telepítés Debian GNU/Linuxon NIS szerver beállítása NIS kliens beállítása NFS szerver telepítés Debian GNU/Linuxon NIS Network Information
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön
Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
IP-címhez kötött webszolgáltatások használata idegen IP-című gépről
IP-címhez kötött webszolgáltatások használata idegen IP-című gépről Bevezetés Hanák D. Péter, BME IIT, 2006. május 22. Ismeretes, hogy egyes webszolgáltatások csak meghatározott IP-című számítógépekrő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
Bevezetés 1 A könyv felépítése 2 Biztonsági programok 3 A könyvben használt jelek 4 I. Rész A számítógép megosztása 5 1 n Saját profilt mindenkinek 7 Alapfogalmak 8 Hogyan mûködik? 8 Biztonság 9 Felhasználói
A Cobra Sprint telepítése CobraContoLight felhasználók számára
A Cobra Sprint telepítése CobraContoLight felhasználók számára 1. A telepítő program elindítása után a Sprint Telepítő Varázsló irányítja a telepítés folyamatát. A Felhasználási (licenc) feltételek elfogadása
1_Linux_bevezeto_bash
1_Linux_bevezeto_bash September 21, 2016 1 Számítógépes alapismeretek 1.1 ELTE - Fizika Bsc 1. évfolyam 1.2 # Félévés tematika: Linux alapismeretek Szövegszerkesztés Adatok ábrázolása Bevezetés a programozás
HÁLÓZATBIZTONSÁG II. rész. Összeállította: Huszár István
HÁLÓZATBIZTONSÁG II. rész Összeállította: Huszár István 1. Védelmi alapmegoldások Felhasználói név + jelszó. Kiszolgáló esetén fokozottabb követelmények a jelszóval kapcsolatban. Belépés után az erőforrásokhoz
Külső eszközök. Felhasználói útmutató
Külső eszközök Felhasználói útmutató Copyright 2006 Hewlett-Packard Development Company, L.P. A Microsoft és a Windows elnevezés a Microsoft Corporation bejegyzett kereskedelmi védjegye. Az itt szereplő
Telepítési és indítási útmutató. DataPage+ 2013
DataPage+ 2013 Tartalomjegyzék Telepítés előfeltételei Alkotólemek... 1 Áttekintés... 1 1. lépés: Futtassuk a setup.exe fájlt és indítsuk el a varázslót... 1 2. lépés: Fogadjuk el a licencszerződést...
eszemélyi Kliens Szoftvercsomag
Belügyminisztérium eszemélyi Kliens Szoftvercsomag Telepítési Útmutató 1 Bevezetés 1.1 Jelen dokumentum célja Az alábbi dokumentum írja le, hogy hogyan kell telepíteni az eszemélyi Kliens szoftvercsomagot.
OTOsuite. Telepítési útmutató. Magyar
OTOsuite Telepítési útmutató Magyar Ez a dokumentum leírja miképp telepítse az OTOsuite szoftvert DVD-ről, pendrive-ról vagy tömörített fájlból. Rendszerkövetelmények 1,5 GHz processzor vagy gyorsabb (ajánlott:
Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek - 105 1. oldal LINUX
1. oldal LINUX 2. oldal UNIX történet Elozmény: 1965 Multics 1969 Unix (Kernighen, Thompson) 1973 Unix C nyelven (Ritchie) 1980 UNIX (lényegében a mai forma) AT&T - System V Microsoft - Xenix Berkeley
OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)
OCSP Stapling Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. OCSP Stapling támogatással rendelkező webszerverek...
M-Files Dokumentumkezelő telepítése
Az Jelen dokumentum a következő fejezetek tartalmazza: a szoftver telepítése az M-Files telepítő programmal; az irattár létrehozása, a felhasználók felvétele az M-Files Server Administrator (szerver) programmal;
Általános áttekintés. Általános áttekintés. Általános áttekintés. Egy boot folyamat
Dr. Mileff Péter 2 Rendszerindítás (boot): az a folyamat, amely a számítógép bekapcsolása után az operációs rendszer betöltését végzi. A ''boot'' (csizma) név egy olyan képbıl származik, mely szerint a
Á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
Á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 Az ÁNYK53 egy keretprogram, ami a személyi jövedelemadó bevallás (SZJA,
A Debian, mint Desktop Operációs Rendszer
A Debian, mint Desktop Operációs Rendszer Ez a dokumentum segítséget nyújt a Linux mindennapos használatához, a dokumentumszerkesztéstől a video- és zenelejátszáson át a böngészésig. Az itt felhasznált
TestLine - GINOP teszt Minta feladatsor
GINOP képzés szintfelmérő tesztje Mit lehet a HTML-el csinálni 1. 1:10 Könnyű emutatót készíteni Weblapot készíteni Jósolni Szöveget szerkeszteni Melyek tartoznak az operációs rendszer alapvető feladatai
RapidMiner telepítés i. RapidMiner telepítés
i RapidMiner telepítés ii COLLABORATORS TITLE : RapidMiner telepítés ACTION NAME DATE SIGNATURE WRITTEN BY Jeszenszky, Péter 2014. szeptember 17. REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Tartalomjegyzék
A CA-42 adatkommunikációs kábel gyors telepítési útmutatója
A CA-42 adatkommunikációs kábel gyors telepítési útmutatója 9234594 2. kiadás A Nokia, a Nokia Connecting People és a Pop-Port a Nokia Corporation bejegyzett védjegyei. Copyright 2005 Nokia. Minden jog
MultiBoot. Felhasználói útmutató
MultiBoot Felhasználói útmutató Copyright 2007 Hewlett-Packard Development Company, L.P. Az itt szereplő információ előzetes értesítés nélkül változhat. A HP termékeire és szolgáltatásaira vonatkozó kizárólagos
Digitális fényképezőgép Szoftver útmutató
EPSON Digitális fényképezőgép / Digitális fényképezőgép Szoftver útmutató Minden jog fenntartva. Jelen kézikönyv a SEIKO EPSON CORPORATION előzetes írásbeli engedélye nélkül sem részben sem egészben nem
Adataink biztonságos tárolása és mentése
Adataink biztonságos tárolása és mentése Akivel már megtörtént, hogy fontos adatot veszített bármilyen okból kifolyólag, az egészen biztosan kínosan ügyel arra, hogy még egyszer ilyen elõ ne fordulhasson
Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5
Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5 3.1 ELSŐ FUTTATÁS 5 3.2 TULAJDONOSI ADATLAP 6 3.3 REGISZTRÁLÁS 6 3.4 AKTIVÁLÁS 6 3.5 MÉRÉS 7 3.5.1 ÜGYFÉL
eszemélyi Kliens Szoftvercsomag
Belügyminisztérium eszemélyi Kliens Szoftvercsomag Telepítési Útmutató 1 Bevezetés 1.1 Jelen dokumentum célja Az alábbi dokumentum írja le, hogy hogyan kell telepíteni az eszemélyi Kliens szoftvercsomagot.
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...
Köszönetnyilvánítás... xv Bevezetés az otthoni hálózatok használatába... xvii A könyvben szereplő operációs rendszerek...xviii Feltételezések...xviii Minimális rendszerkövetelmények... xix Windows 7...
Általános nyomtató meghajtó útmutató
Általános nyomtató meghajtó útmutató Brother Universal Printer Driver (BR-Script3) Brother Mono Universal Printer Driver (PCL) Brother Universal Printer Driver (Inkjet) B verzió HUN 1 Áttekintés 1 A Brother
Ez a felhasználói útmutató a következő modellekre vonatkozik:
AirPrint útmutató Ez a felhasználói útmutató a következő modellekre vonatkozik: HL-L850CDN/L8350CDW/L8350CDWT/L900CDW/L900CDWT DCP-L8400CDN/L8450CDW MFC-L8600CDW/L8650CDW/L8850CDW/L9550CDW A verzió HUN
Szoftvertelepítési útmutató NPD4758-00 HU
Szoftvertelepítési útmutató NPD4758-00 HU Szoftvertelepítés Megjegyzés az USB-csatlakozáshoz: Ne csatlakoztassa az USB-kábelt, amíg nem kap rá utasítást. Ha megjelenik ez a képernyő, kattintson a Cancel(Mégse)
Utolsó módosítás:
Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768
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.
SZOFTVERLELTÁR FREE Amennyiben önnek vállalkozása van, akkor pontosan tudnia kell, hogy milyen programok és alkalmazások vannak telepítve cége, vállalkozása számítógépeire, és ezekhez milyen engedélyeik,
Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer
1 Fájl rendszer Terminológia Fájl és könyvtár (mappa) koncepció Elérési módok Fájlattribútumok Fájlműveletek ----------------------------------------- Könyvtár szerkezet -----------------------------------------
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
Küls eszközök Dokumentum cikkszáma: 396847-211 2006. március Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti. Tartalomjegyzék 1 Az USB-eszközök használata USB-eszköz csatlakoztatása.......................
