Information Technology | UNIX / Linux » Samba fájl és nyomtatószerver heterogén hálózatokra

Datasheet

Year, pagecount:2001, 417 page(s)

Language:Hungarian

Downloads:864

Uploaded:March 20, 2006

Size:4 MB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

Document1 2001. 04 19 9:31 Page 1 k tá ad i og tő elf lesz an fej los a ta b va am Hi a S Fájl- és nyomtatószerver heterogén hálózatokra Samba KOSSUTH Robert Eckstein, David Collier-Brown, Peter Kelly Tartalom Előszó . A Samba . A könyv olvasóközönsége . Kellékek a Samba telepítéséhez . A könyv felépítése . Tipográfiai jelölések . A szerzők kérései . 5 5 6 7 7 8 9 1. fejezet Ismerkedés a Sambával 11 Mi a Samba? . Mit nyújthat számunkra a Samba? . Ismerkedés egy SMB/CIFS hálózattal . Microsoft implementációk . A SAMBA disztribúció áttekintése . Hogyan szerezhető be a Samba? . A Samba 2.0 újdonságai Ez még nem minden . 11 13 19 28 36 38 38 40 2. fejezet A Samba telepítése Unix rendszerre A Samba disztribúció letöltése . A Samba konfigurálása . A Samba fordítása és telepítése . A Samba alapvető konfigurációs fájlja . A Samba démonjainak indítása . A Samba démonok tesztelése . 41 41 44 48 51 56 59 3.

fejezet Windows ügyfelek konfigurálása Windows 95/98 számítógépek beállítása. Windows NT 4.0 számítógépek beállítása Röviden az SMB/CIFS protokollról . 60 60 72 83 4. fejezet Lemezmegosztások 92 A Samba konfigurációs fájlja . 92 A konfigurációs fájl szakaszai . 98 A konfigurációs fájl beállításai . 101 420 | SAMBA A kiszolgáló konfigurálása . A lemezmegosztás konfigurálása . A Samba hálózati beállításai . Virtuális kiszolgálók . A naplózás konfigurációs beállításai . 103 106 111 117 118 5. fejezet Tallózás és a lemezmegosztások folytatása 125 Tallózás . Fájlrendszerbeli különbözőségek . Fájlengedélyek és attribútumok MS-DOS és Unix rendszerben . Névzsugorítás és a kis- és nagybetűk . Zárolások és ,,opportunista” zárolások . 125 138 146 154 161 6. fejezet Felhasználók, biztonság és tartományok Felhasználók és csoportok . Megosztások elérésének szabályozása .

Hitelesítési biztonság . Jelszavak . Windows tartományok . Bejelentkezési szkriptek . 167 167 170 176 184 196 204 7. fejezet Nyomtatás és névfeloldás Nyomtatási feladatok küldése a Sambára . Nyomtatás Windows ügyfél nyomtatóján . Névfeloldás a Sambában . 213 213 225 236 8. fejezet Különleges Samba ismeretek A programozók segítése . Mágikus szkriptek . Nemzetközi beállítások . WinPopup üzenetek . Újonnan felvett beállítások . Vegyes beállítások . Biztonsági másolatok készítése az smbtar eszközzel . 242 242 245 246 249 250 252 258 9. fejezet Hibakeresés a Sambában Az eszközkészlet . A hibafa . Különleges erőforrások . 263 263 270 304 A függelék. A Samba konfigurálása SSL protokollal Röviden a hitelesítésekről . Követelmények . Az SSLeay telepítése . Az SSL Proxy telepítése . Az SSL konfigurációs beállításai . 307 307 308 309 317 318 TARTALOM | 421 B függelék. A Samba teljesítményének

finomhangolása Egy egyszerű teszt . A Samba finomhangolása . Samba kiszolgálók méretezése . 324 324 325 332 C függelék. A Samba konfigurációs beállításainak gyors áttekintése 341 D függelék. A Samba démonjainak és parancsainak összefoglalása 377 A Samba disztribúció programjai . 377 E függelék. A Samba letöltése CVS-sel 398 F függelék. Minta konfigurációs fájl 399 Tárgymutató . 405 A szerzőkről Robert Eckstein szinte mindenbe belekóstolt, ami a számítógépekkel kapcsolatos. Foglalkozott elektronikus kereskedelemmel, készített fordítóprogramokat, de a mesterséges intelligencia bizonyos területei (fuzzy logic) sem állnak távol tőle Mindenesetre a barátai egyetértenek abban, hogy túlságosan is sok időt tölt a számítógép monitora előtt Az O’Reilly kiadónál Robert többnyire Java könyveken dolgozik (ilyen például a Java Swing), de az XML Pocket Reference és a Webmaster in a Nutshell című könyveknek is ő a

szerzője. Szabad idejében rendszeresen beszámol a világhálón népszerű konferenciákról, továbbá cikkeket ír a Java World magazinba. Robert a Trinity egyetem számítástudományi és kommunikációs szakán végezte tanulmányait. Korábban egy biztosítási cégnél dolgozott, majd ezt követően négy évet töltött el a Motorola celluláris szoftverrészlegénél. Jelenleg a Texas állambeli Austinban él újdonsült feleségével, Michelle-lel, és remélik, hamarosan újabb taggal bővül a család. David Collier-Brown rendszerintegrátor tanácsadó, jelenleg Torontóban, a Sun Opcom mérnöki csoportjában dolgozik. Szabad idejében sokat olvas, figyelemmel kíséri felesége baseballcsapatának szereplését, és az ottani nyár két hetében vitorlázik Torontó külső kikötőjében. Peter Kelly szabadúszó rendszertanácsadóként dolgozik a kanadai Torontóban, és elsősorban az internet és a hálózati biztonság a szakterülete. Az utolsó vizsgáira

készül, hogy megkapja az MCSE (Microsoft Certified System Engineer) minősítést, de amikor lehetősége nyílik, szívesen dolgozik Linux rendszerben is. Szabad idejében golfozik, és a hálózati biztonsággal kapcsolatos szakirodalmat tanulmányozza. A borítóról Az O’Reilly-könyvek külső megjelenését az olvasói megjegyzések, a kiadói tapasztalatok és a terjesztők visszajelzései alakítják. Különleges borítók teszik teljessé a különböző műszaki jellegű témák különleges megközelítését, hogy egyéniséget és életet adjanak az élő természettől igencsak távol eső szövegeknek. Könyvünk címoldalán a mintegy ötven fajt számláló szarvcsőrűfélék egyik tagja, a kaffer szarvasvarjú (Bucorvus cafer) látható. Afrika déli és keleti füves vidékein honos Méretét tekintve közepes termetű, igen hosszú, kampós csőre alatt világospiros pikkelyes a nyaka, sötét színű a teste és a szárnya, a lábai rövidek, a felső

szemhéja fölött merev, szőrszerű pillákat visel. A többi szarvcsőrű madárhoz hasonlóan ennek a fajnak is egy sisakszerű kinövés található a csőre fölött, amely évek múltán sűrűn redőssé válik Ez az egyedüli szarvcsőrű, amely a föld talaján él, szükség esetén repülni is tud, és a többi fajtól eltérően a fák lombkoronáiban fészkel – amazok földbe vájt üregekkel is beérik. Többnyire gyümölcsökkel, valamint nagy testű rovarokkal és kis emlősökkel táplálkozik Számos afrikai törzs a kaffer szarvasvarjút szent állatnak tartja, amelyhez ilyen minőségében sok legenda és babona fűződik. FELELŐS KIADÓ KOCSIS ANDRÁS SÁNDOR A KOSSUTH KIADÓ RT. ELNÖK-VEZÉRIGAZGATÓJA A KÖTETET BODÓ KÁROLY SZERKESZTETTE MŰSZAKI VEZETŐ KUN GÁBOR MŰSZAKI SZERKESZTŐ PÁNYI BÉLA WWW.KOSSUTHHU E-MAIL: RT@KOSSUTED.HU NYOMTA ÉS KÖTÖTTE A SZEKSZÁRDI NYOMDA KFT. FELELŐS VEZETŐ VADÁSZ JÓZSEF IGAZGATÓ Előszó Reggel kilenc

óra, és éppen most érkeztünk egy kellemesen átaludt éjszaka után a számítógépközpontba. Rendszergazdaként kellemes az életünk – miért is ne lenne az, ha kiválóan működik a hálózatunk? Kétszáz egyforma számítógép, és mindegyiken ugyanaz az operációs rendszer. Az összes nyomtató bekötve a hálózatba, és bármelyik bárhonnan elérhető az épületen belül. Az automata konfigurációs szkripteknek köszönhetően a cég összes dolgozója számára azonos módon jelennek meg azok a megosztott lemezek, amelyeket beállítottunk a számukra. Igen, így valóban kellemes az élet Hátradőlünk a karosszékben, és belekóstolunk az első reggeli kávéba Aztán egyszer csak riasztás zökkent ki bennünket a kellemes semmittevésből. Csak rossz álom lehet – gondoljuk. Sajnos nem, ez a valóság! Négy különböző számítógép három eltérő operációs rendszert futtatva kétségbeesetten próbál meg kapcsolatot teremteni, és szünet

nélkül cseng a telefon. A felhasználóink többsége nem érti, miért nem tud hozzáférni egy másik számítógépen lévő állományhoz, vagy miért nem tud nyomtatni egy távoli nyomtatón. A naplófájlok arról tanúskodnak, hogy már késő biztonsági másolatokat készíteni Valamilyen rejtélyes oknál fogva a második emeleten lévő PC nem találja a szalagkiszolgálót. Mit tehet ilyen nehéz helyzetben egy rendszergazda? Egyszerű a válasz: vegyen ki egy nap szabadságot, olvassa el ezt a könyvet, és tanuljon meg Sambázni! A Samba A Samba egy sor eszközből áll, amelyek segítségével a hálózaton olyan erőforrások oszthatók meg, mint a nyomtatók és a fájlok. Ezzel ugyan egy kicsit leegyszerűsítjük a dolgot, de a Samba tényleg arra használható, hogy könnyebbé tegye az életünket. A Samba a Microsoft és az IBM által is elfogadott Server Message Block (SMB) protokollt használja arra, hogy TCP/IP hálózaton keresztül alacsony szinten

adatokat cseréljen Windows ügyfelek és Unix kiszolgálók között. A négy képesség, amely rendkívül vonzóvá teszi a Sambát: • A Samba ugyanazt az SMB protokollt használja, amelyet a Microsoft és az IBM operációs rendszerei is használnak a DOS 3.0 verziója óta • A Samba különböző platformokon futhat, beleértve a Unix, az OpenVMS, az OS/2, az AmigaDOS és a NetWare különböző változatait. Ez azt jelenti, hogy a kiszolgálón egyetlen program futtatásával tehetjük elérhetővé a fájlokat és a nyomtatókat a PC-s közösség számára 6 | SAMBA • A Samba szabad szoftver. A Sambának kereskedelmi forgalomban kapható változatai is léteznek, amelyek leutánozzák a Samba képességeit, és meglehetősen drágák. A Samba e programok alternatívájaként használható, és jelentősen csökkenti a kiadásainkat. A Samba a GNU General Public License (GPL) szabályai szerint terjeszthető, és a szerzői Open Source (nyílt forráskódú)

szoftvernek szánják. Más szavakkal ez azt jelenti, hogy szabadon letölthetők mind az alkalmazásai, mind a forráskódjai, sőt, akinek kedve van hozzá, tovább is fejlesztheti az eredeti Samba programokat. • A Samba a kiszolgálóra összpontosítja a hálózat felügyeletét. Nincs szükség arra, hogy egy hajlékonylemezzel vagy CD-vel a kezünkben szaladgáljunk a hálózathoz csatlakozó számítógépekhez az ügyfélszoftverek frissítése céljából. A Samba teljes megoldást kínál a helyi hálózatok számára – álljanak azok akár két otthoni számítógépből, akár egy nagyvállalat több száz csomópontjából. A Samba könnyen telepíthető és felügyelhető, és olyan átlátszó hálózati környezetet teremt, amelyben a felhasználók a munkájukhoz szükséges összes erőforráshoz hozzáférhetnek Miután telepítettük és beállítottuk a Sambát, a következő szolgáltatásokat nyújtja: • Unix fájlokat kínálhatunk fel Windows, OS/2 és

más operációs rendszereket használó ügyfeleknek. • Unixos ügyfelek számára elérhetővé tehetjük a PC-s fájlokat. • Elérhetővé tehetjük a hálózati nyomtatókat a Windows ügyfelek számára. • Névkiszolgálást kínálhatunk (broadcast és WINS). • Engedélyezhetjük, hogy Windows ügyfelek böngésszék a hálózati erőforrásokat. • Windows munkacsoportokat vagy tartományokat hozhatunk létre. • Előírhatjuk az ügyfelek felhasználónevének és jelszavának a hitelesítését. A könyv olvasóközönsége A szerzők a könyvet elsősorban olyan Unix rendszergazdáknak ajánlják, akiknek PC-ket is kell kezelniük a hálózatban, továbbá mindazoknak, akiknek PC-s környezetben Unix kiszolgálóra van szükségük. Ugyanakkor a szerzők nem akarják különböző rendszergazdai eszközök végeláthatatlan sorával terhelni az olvasót Abból indulnak ki, hogy az olvasó alapvetően tisztában van a Unixos rendszerek felügyeletével, de nem

tételezik fel róluk, hogy hálózati szakemberek. Mindenesetre minden segítséget megadnak a különböző meghatározások és kifejezések megértéséhez Mivel a szerzők azt sem feltételezik, hogy az olvasónak óriási gyakorlata lenne a Microsoft Windows operációs rendszer használatában, jóval részletesebben térnek ki a PC oldali telepítési feladatokra, és mind a Windows 95/98, mind a Windows NT rendszerben különböző példákat mutatnak be (a két rendszer több vonatkozásban is eltér egymástól). Unix oldalon olyan, általánosan használt operációs rendszerekhez mutatnak példákat, mint amilyen a Linux 2.0 vagy a Solaris 26 ELŐSZÓ | 7 Kellékek a Samba telepítéséhez Mielőtt elindulnánk, a következőkre lesz szükség: • a legfrissebb Samba disztribúcióra, ami a http://www.sambaorg címen letölthető az internetről, vagy egyszerűen elővehető a számítógépes lapok CD-inek gyűjteményéből; • a hálózathoz csatlakozó

kiszolgáló- és ügyfélgépek nevére és IP címére, a hálózat hálózati maszkjára és a tartománynév-kiszolgálók (DNS) nevére és IP címére. A könyv felépítése A könyv durván két részre osztható. Az első rész a Samba telepítésével (1–3 fejezet), a második a Samba konfigurálásával és optimalizálásával (4–9. fejezet) foglalkozik Az egyes fejezetek rövid tartalma: 1. fejezet Ismerkedés a Sambával Ebben a fejezetben megismerkedünk a Samba összetevőivel, és röviden áttekintjük a NetBIOS és a Windows hálózati vonatkozásait. 2. fejezet A Samba telepítése Unix rendszerre Ebben a fejezetben arról olvashatunk, miként konfigurálhatjuk, fordíthatjuk le, telepíthetjük és tesztelhetjük a Samba kiszolgálót Unix platformon. 3. fejezet Windows ügyfelek konfigurálása Ez a fejezet arról szól, hogy miként konfigurálhatjuk a Microsoft Windows 95/98 és az NT 4.0 ügyfeleket úgy, hogy csatlakozhassanak egy SMB hálózathoz

Röviden bemutatja az SMB protokoll működését is. 4. fejezet Lemezmegosztások Ebben a fejezetben a Samba konfigurációs fájljának különböző részeivel ismerkedünk meg, és megtudjuk, hogyan hozhatunk létre lemezmegosztásokat. 5. fejezet Tallózás és a lemezmegosztások folytatása Ebben a fejezetben folyatjuk a lemezmegosztások tárgyalását, és megvizsgáljuk a tallózás beállítását. 6. fejezet Felhasználók, biztonság és tartományok Ebben a fejezetben arról olvashatunk, miként konfigurálhatjuk az ügyfeleket, milyen biztonsági intézkedéseket tehetünk a Sambában, és hogyan kezelhetjük a titkosított és titkosítatlan jelszavakat. Arról is szólunk, hogyan készíthetjük fel a Sambát arra, hogy elsődleges tartományvezérlő legyen Windows 95/98 és NT rendszert használó ügyfelek számára. 7. fejezet Nyomtatás és névfeloldás A fejezet a nyomtatókkal és a WINS (Windows Internet Name Service) névfeloldás használatával foglalkozik.

8 | SAMBA 8. fejezet Különleges Samba ismeretek Ebben a fejezetben olyan különleges ismereteket sajátíthatunk el, mint a Samba megosztások konfigurálása programozók részére, a nemzetközi beállításokkal kapcsolatos kérdések és a biztonsági másolatok készítése. 9. fejezet Hibakeresés a Sambában Ha problémáink lennének a Samba telepítésével, akkor ez a meglehetősen terjedelmes fejezet ötletekkel szolgál a hiba kijavításához. A. függelék A Samba konfigurálása SSL protokollal Ebben a függelékben arról olvashatunk, hogy az SSL protokollt használva miként konfigurálhatjuk úgy a Sambát, hogy biztonságos kapcsolat jöjjön létre a kiszolgáló és az ügyfelei között. B. függelék A Samba teljesítményének finomhangolása Ez a függelék különböző eljárásokat mutat be a Samba teljesítményének optimalizálásához. C. függelék A Samba konfigurációs beállításainak gyors áttekintése Ez a függelék az smb.conf

fájlban használható beállításokat tekinti át D. függelék A Samba démonjainak és parancsainak összefoglalása Ez a függelék áttekinti a Samba készletébe tartozó démonokat és eszközöket, továbbá felsorol néhány olyan tükörkiszolgálót, ahonnan letölthető a Samba. E. függelék A Samba letöltése CVS-sel Ebben a függelékben arról tájékozódhatunk, miként tölthetjük le CVS rendszer segítségével a Samba legfrissebb verzióját. F. függelék Minta konfigurációs fájl A függelék egy terjedelmes konfigurációs fájlra mutat példát, amit akár egy nagyobb cégnél is használhatunk. A ritkábban használt beállítások szerepét megjegyzésekben tesszük érthetővé Tipográfiai jelölések A könyvben az alábbi tipográfiai jelöléseket használjuk: Dőlt betűs Ezzel jelöljük a fájlneveket, a fájlnevek kiterjesztését, az internetes címeket, a végrehajtható fájlok és parancsok nevét, és a különleges fogalmakat. Azonos

betűszélesség Így jelöljük a Samba konfigurációs beállításait, a szövegben megjelenő egyéb kódokat, és azokat a parancssori adatokat, amelyeket betűhíven kell beírni a képernyőn. Félkövér és azonos betűszélesség Ezzel jelöljük a felhasználó által beírandó parancsokat és azokat az új konfigurációs beállításokat, amelyekre fel akarjuk hívni az olvasó figyelmét. ELŐSZÓ | 9 Dőlt és azonos betűszélesség A kódok és a parancssori információk megváltoztatható részeit jelöli. A bagoly szimbólummal jelölt szövegrész a környezetével kapcsolatos valamilyen fontos megjegyzést tartalmaz. A pulyka szimbólummal megjelölt szövegrész a környezetével kapcsolatban valamilyen figyelmeztetést tartalmaz. A szerzők kérései E könyv szerzői a legjobb képességeik szerint tesztelték és ellenőrizték a könyvben leírtakat, de előfordulhat, hogy időközben megváltoztak bizonyos beállítások (de maguk a szerzők is

hibázhattak). Kérjük, értesítsenek bennünket bármely hibáról, továbbá várjuk az olvasók javaslatait a további kiadásokhoz. Címünk: O’Reilly & Associates, Inc. 101 Morris Street Sebastopol, CA 95472 1-800-998-9938 (az USA-ban és Kanadában) 1-707-829-0515 (nemzetközi/helyi) 1-707-829-0104 (FAX) A kiadó elektronikus levélben is elérhető. A levelezőlistára való feliratkozáshoz vagy katalógus kéréséhez az alábbi címre várjuk az elektronikus leveleket: info@oreilly.com Műszaki jellegű kérdéseket vagy a könyvvel kapcsolatos megjegyzéseket az alábbi címre kérjük: bookquestions@oreilly.com A kiadó egy webhelyet is készített ehhez a könyvhöz, ahol példák, hibajavítások és a további kiadásokkal kapcsolatos tervek tekinthetők meg. A webhely az alábbi címen érhető el: http://www.oreillycom/catalog/samba/ További tudnivalók erről és más könyvekről az O’Reilly alábbi webhelyén találhatók: http://www.oreillycom A magyar

kiadó webhelye, ahol a könyv szövege is megtalálható: http://www.kossuthhu Ismerkedés a Sambával Ha az olvasó tipikus rendszergazda, akkor tudhatja, mit jelent mindenesnek lenni. Nap mint nap azzal telik a munkaideje, hogy vég nélkül bajlódik a hardverek inkompatibilitási problémáival, a rendszerek elavulásával, az adatok biztonsági mentésével és a felhasználók aggódó seregével. Ezért némi fenntartással fogadhatja azt, hogy újabb programmal bővítse az amúgy is sokrétű eszköztárát, amelynek a karbantartásáért felelősséggel tartozik. Ha viszont úgy dönt, hogy csökkenteni kívánja a számítástechnikai környezetének bonyolultságát, valamint a programok zökkenőmentes futtatásához szükséges feladatait, akkor talán pont a Samba lehet az, amire szüksége van. Egy kis magyarázat: e könyv egyik írójának rendszergazdaként az volt a feladata, hogy 70 UNIX fejlesztő munkájáról gondoskodjon, akik 5 Unix kiszolgálón

osztoztak. A szomszédjának 20 Windows 31 felhasználó és 5 OS/2 és Windows NT kiszolgáló volt a gondjaira bízva Erről az emberről igazán elmondható, hogy mindenes volt Amikor kilépett a cégtől, és az összes gépet közös hálózatba kellett kapcsolni, a Samba jelentette a megoldást. A szerzőnk gyorsan lecserélte a Windows NT és az OS/2 kiszolgálókat egy Sambát futtató Unix kiszolgálóra, és a cég fejlesztői számára PC-ket vásárolt. Ez utóbbi miatt azonban nem vett föl egy új, PC-s rendszergazdát; a rendszergazda most öt elosztott PC helyett egyetlen, központi Unix alkalmazásból kezeli a teljes rendszert. Ha Önnek problémái vannak a hálózatával, és biztos abban, hogy van jobb megoldás, akkor bátran fogjon hozzá ennek a könyvnek az olvasásához. Ha pedig már hallott valamit a Sambáról, és szeretné tudni, miben segíthet Önnek, akkor szintén ajánlható ez a könyv. Mindenekelőtt azért, mert megismerteti az olvasóival a Samba

használatát és a képességeit. Rövid időn belül Unix szolgáltatásokkal tudja ellátni az összes Windows alapú gépét anélkül, hogy különösebben sok pénzt vagy időt kellene áldoznia erre. Csábítóan hangzik? Nos, ha igen a válasz, akkor vágjunk is bele! Mi a Samba? A Samba olyan Unix alkalmazások gyűjteménye, amelyek az SMB (Server Message Block = kiszolgálói üzenetblokk) protokollt használják. Számos operációs rendszer, köztük a Windows és az OS/2 ezt az SMB protokollt használja az ügyfél–kiszolgáló típusú hálózatokban. Azzal, hogy a Samba támogatja ezt a protokollt, lehetővé teszi, hogy munkába álljanak a Unix kiszolgálók, és ugyanazt a hálózati protokollt használják, mint amit a Microsoft Windows alkalmazások. Így egy Sambával felszerelt Unix gép álcázott kiszolgálóként jelenhet meg az Ön Microsoft hálózatában, és a következő szolgáltatásokat nyújthatja: 12 • • • • • | SAMBA egy vagy

több fájlrendszer megosztása; mind a kiszolgálón, mind az ügyfelein telepített nyomtatók megosztott használata; ügyfelek segítése a Hálózatok ablak tallózásával; Windows tartományba bejelentkező ügyfelek hitelesítése; a WINS névkiszolgáló használata. A Samba Andrew Tridgell szellemi gyermeke, aki jelenleg a Samba fejlesztői csoport vezetője az ausztráliai Canberrában. A projekt 1991-ben indult el, amikor Andrew a helyi hálózatához olyan fájlkiszolgáló programot készített, ami a Digital Pathworks bármelyik DEC protokollját támogatta. Abban az időben azonban nem tudhatta, hogy a későbbiek során ebből alakul ki az SMB protokoll. Néhány évvel ezután bővítette a testre szabott kiszolgálóját, és SMB Server néven terjeszteni kezdte az interneten a termékét Andrew azonban nem tarthatta meg ezt a nevet – időközben ugyanis már egy másik cég termékének neve lett –, ezért megpróbálkozott az alábbi Unix átnevezési

kísérlettel: grep -i ’s. *m. *b’ /usr/dict/words Az erre érkezett válasz ez volt: salmonberry samba sawtimber scrable A legjobban a ,,Samba” név tetszett. Jelenleg a Samba csomag működése két Unix démon körül forog, amelyek megosztott erőforrásokat – vagy más szóval megosztásokat – kínálnak a hálózatba kapcsolódó SMB ügyfeleknek. (A megosztásokat helyenként szolgáltatásoknak is nevezik) A két démon: smbd Ez a démon lehetővé teszi fájlok és nyomtatók megosztását SMB hálózatban, és az SMB ügyfelek azonosságának és jogosultságának vizsgálatát. nmbd Ez a démon a WINS (Windows Internet Name Service, Windows internet névkiszolgáló) kezeléséről gondoskodik, és segítséget nyújt a tallózásban. A Sambát jelenleg egy önkéntesekből álló csoport tartja karban és bővíti Andrew Tridgell aktív felügyelete alatt. A Linux operációs rendszerhez hasonlóan a Sambát is nyitott forrású szoftvernek (OSS) tekintik a

szerzői, és a GNU General Public License (GPL) szabályai szerint terjesztik. A Samba kifejlesztését kezdetektől fogva részben az Ausztrál Nemzeti Egyetem támogatja, ahol Andrew Tridgell megszerezte a Ph.D doktori címét Emellett bizonyos fejlesztéseket független cégek is támogattak, mint például a Whistle és az SGI. A Sambának jól jött az a törekvés, hogy mind a kereskedelmi, mind a civil szervezetek készek anyagilag is segíteni a nyílt forráskódú programok kifejlesztését. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 13 A Microsoft is hozzájárult a fejlesztéshez anyagilag azzal, hogy felkínálta a saját SMB definícióját és az internetes nyelvet ,,beszélő” közös internetes fájlrendszerét (Common Internet File System, CIFS), mint nyilvános RFC-t (Request for Comments), vagyis a szabványos dokumentációját. A CIFS protokoll nem más, mint az SMB protokoll jövőbeli verzióinak Microsofttól származó átnevezése, amelyet a Windows

termékeiben fognak használni – ezért ez a két fogalom, az SMB és a CIFS felváltva szerepel ebben a könyvben is, vagy gyakran olvasható egymás mellett (,,SMB/CIFS” alakban) a protokoll neveként. Mit nyújthat számunkra a Samba? Amint az előzőekből kitűnt, a Samba a Windows és a Unix gépek egymás mellett létezését segíti ugyanazon a hálózaton. Emellett különleges okai is lehetnek, hogy miért szeretnénk Samba kiszolgálót telepíteni a hálózatunkra: • Nem szeretnénk vagy nem engedhetjük meg magunknak, hogy fizetni kelljen egy minden extrával felszerelt Windows NT kiszolgálóért, ugyanakkor szükségünk van azokra a funkciókra, amelyeket a kiszolgáló kínál. • Közös területet kívánunk az adat- vagy felhasználói könyvtárak számára, hogy át lehessen lépni egy Windows kiszolgálóból egy Unix kiszolgálóba vagy fordítva. • Szeretnénk megosztani a nyomtatókat mind a windowsos, mind a unixos munkaállomások között. • Azt

szeretnénk, hogy Unix kiszolgálóból is elérhessünk NT fájlokat. Tegyünk egy képzeletbeli sétát, hogy lássuk, miként működik a Samba. Tegyük fel, hogy alapvetően a következő hálózati konfigurációval dolgozunk: van egy Sambát értő Unix gépünk, amelyhez a hydra nevet rendeljük, és van két Windows ügyfelünk, melyek a phoenix, illetve a chimaera nevet kapták, ők helyi hálózatban (LAN) vannak összekötve. Tételezzük fel továbbá, hogy a hydra géphez hozzá van kapcsolva egy lp nevű helyi tintasugaras nyomtató, továbbá egy network nevű megosztott lemez, és mindkét eszközhöz a másik két gép is hozzáférhet. A hálózati elrendezést az 11 ábra szemlélteti 1.1 ábra Samba kiszolgálóra épülő egyszerű hálózat 14 | SAMBA Ebben a hálózatban az összes számítógép ugyanannak a munkacsoportnak a része. A munkacsoport egyszerűen egy névvel azonosított tetszőleges gépcsoport, amelyben a tagszámítógépek és azok

erőforrásai SMB hálózaton keresztül kapcsolódnak egymáshoz. A hálózatban tetszőleges időben különböző munkacsoportok létezhetnek, de a mi alapvető hálózati példánkban csak egyetlen, SIMPLE nevű munkacsoport található. Lemezszolgáltatások megosztása Ha mindent jól állítottunk be, akkor a phoenix gép Asztalán a Network Neighborhood (Hálózat) ablakban látnunk kell a hydra nevű Samba kiszolgálót. Az 12 ábrán a phoenix gépnek ez az ablaka látható, amelyben valóban fel van sorolva a SIMPLE munkacsoporthoz tartozó összes számítógép, köztük a hydra is. Figyeljük meg, hogy a lista elején az Entire Network (Teljes hálózat) tétel áll. Amint előbb említettük, egy SMB hálózatba bármely időben egynél több munkacsoport is tartozhat Ha a felhasználó rákattint az Entire Network ikonra, felsorolást láthat a hálózatban éppen létező összes munkacsoportról. 1.2 ábra A Network Neighborhood ablak Közelebbről is szemügyre

vehetjük a hydra kiszolgálót, ha kétszer rákattintunk az ikonjára. Ekkor a hydra saját magával lép kapcsolatba, és bekéri megosztott erőforrásainak listáját – azokat a fájl- és nyomtató-erőforrásokat, amelyekkel a gép fel van szerelve Esetünkben ez a kiszolgálóhoz kapcsolódó lp nyomtató és a network nevű megosztott lemez, amint az 1.3 ábrán látható Vegyük észre, hogy a Windows a gazdanevek megjelenítésekor vegyesen használ kis- és nagybetűket (Hydra) A gazdanevekben nincs jelentősége a kis- és nagybetűk használatának, így a különböző ablakokban a hydra, Hydra és a HYDRA írásmódokkal is találkozhatunk, de mindegyik ugyanazt az egyetlen rendszert jelenti. A Sambának köszönhetően a Windows 98 a Unix kiszolgálót érvényes SMB kiszolgálónak látja, és ugyanúgy férhet hozzá a network mappához, mintha egyszerűen csak egy másik rendszermappa lenne. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 15 1.3 ábra A hydra

kiszolgálón elérhető megosztások a phoenix gépből nézve A Windows 95/98/NT egyik népszerű képessége lehetővé teszi, hogy a Windows Intéző Hálózati meghajtó csatlakoztatása parancsának választásával meghajtóazonosító betűjelet rendeljünk egy ismert hálózati könyvtárhoz*. Miután ezt megtettük, alkalmazásaink egy normál meghajtóbetűjellel érhetik el a mappát a hálózaton keresztül. Így ebben a mappában adatokat tárolhatunk, programokat telepíthetünk és futtathatunk, sőt még jelszóval is megvédhetjük a nemkívánatos látogatókkal szemben. Az 14 ábra arra mutat példát, miként rendelhetünk meghajtóbetűjelet egy hálózati könyvtárhoz. 1.4 ábra Windows meghajtóbetűjel hozzárendelése hálózati meghajtóhoz * Azt is megtehetjük, hogy az egér jobb oldali gombjával rákattintunk egy megosztott erőforrásra, majd a menüben a Hálózati meghajtó csatlakoztatása parancsot választjuk. 16 | SAMBA Vessünk egy

pillantást az 1.4 ábrán látható ablak Path (Elérési út) bejegyzésére Egy hálózatban lévő gépen hasonlóképpen jeleníthető meg egy könyvtár úgy, hogy két fordított törtjel (backslash) után beírjuk a hálózati gép nevét, majd egy újabb fordított törtjel után a hálózati gép könyvtárát, amint itt látható: \hálózati számítógépkönyvtár A Windows világában ez a névmegadás UNC (Universal Naming Convention) megadásként ismert. Így például az 14 ábra párbeszédablakában a hydra kiszolgáló hálózati könyvtárát az alábbi megadás azonosítja: \HYDRA etwork Ha némiképp ismerősnek tűnik ez a névmegadás, akkor valószínűleg az URL (Uniform Resource Locator) megadásra gondolunk, amit webes böngészők, például a Netscape Navigator vagy az Internet Explorer használ az internethez kapcsolódó gépek neveinek feloldásához. Ügyeljünk arra, hogy ne keverjük össze a kétféle megadást: a webböngészők rendszerint a

normál törtjelet használják a fordított törtjel helyett, továbbá az első törtjel előtt megkívánják az adatátviteli protokoll jelölését is (úgy mint ftp, http), valamint utána egy kettőspontot. Az URL-eknek és az UNC-knek a valóságban semmi közük egymáshoz Miután csatlakoztattuk a hálózati meghajtót, a Windows és a programjai úgy tekintik a hálózati könyvtárat, mintha egy merevlemezes meghajtó lenne. Ha bármely olyan alkalmazásunk van, amely támogatja a többfelhasználós működést egy hálózaton, akkor ezeket a programokat a hálózati meghajtóra is telepíthetjük* Az 1.5 ábrán látható az így létrejött hálózati meghajtó, ami a Windows 98 ügyfél ablakában pontosan úgy jelenik meg, mint bármely más tárolóeszköz. Figyeljük meg a G: meghajtó ikonja előtti csővezeték szimbólumot! Jelzi, hogy az illető meghajtó valójában nem merevlemez, hanem hálózati meghajtó. A chimarea nevű Windows NT munkaállomásunkból

nézve a Samba majdnem pontosan úgy látható, mint a Windows 98-as gépből. Az 16 ábrán a Windows NT 40 Network Neighborhood párbeszédablakában ugyanúgy jelenik meg a hydra kiszolgáló A Windows NT Workstation 4.0-s gépen ugyanúgy rendelhetünk betűjelet a hálózati meghajtóhoz, amint azt az előbbiekben tettük Nyomtató megosztása Észrevehettük, hogy az 1.3 ábra párbeszédablakában a hydra gépen elérhető megosztások között az lp jelű nyomtató is megjelenik Ez azt jelenti, hogy a Unix kiszolgálón olyan nyomtató is található, amelyhez a munkacsoportba tartozó különböző SMB ügyfelek hozzáférhetnek. Bármely ügyfél adatokat küldhet a nyomtatóra, amelyeket a Unix kiszolgáló nyomtatási sorba állít, és az érkezésük sorrendjében kinyomtat. * Ne feledkezzünk meg arról, hogy számos végfelhasználói engedély tiltja egy program olyan telepítését a hálózatra, amely lehetővé tenné több ügyfél számára a hozzáférést.

Nézzünk utána a licencszerződésben, hogy biztosak legyünk a dolgunkban 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 17 1.5 ábra A network könyvtárhoz az ügyfél gépén a G: meghajtóbetűjel van hozzárendelve 1.6 ábra A hydra kiszolgálón elérhető megosztások (a chimarea gépből nézve) Egy megosztott nyomtatónak a Windows oldali telepítése még egyszerűbb, mint egy lemezmegosztás elkészítése. Kettőt kattintva a nyomtatóra, majd a gyártóját és a típusát kiválasztva telepíthetjük a Windows ügyfélgépre a nyomtató illesztőprogramját. A Windows ekkor az illető nyomtatónak megfelelő formátumban tudja az információkat a hálózati nyomtatóra küldeni, amelyet úgy érhet el, mint egy helyileg telepített nyomtatót (a fejezet későbbi részében bemutatjuk ezt a műveletet). Az 17 ábrán a Windows 98-as gép Printers (Nyomtatók) ablakában látjuk a hálózati nyomtatót. Figyeljük meg, hogy a nyomtató ikonja fölött is megjelenik a

csővezeték szimbóluma, jelezve, hogy az illető nyomtató a hálózaton keresztül érhető el. A dolgok a Unix oldaláról nézve Amint korábban említettük, a Samba a Unix környezetben démonprogramok gyűjteményeként jelenik meg. Ezeket a démonokat a Unix ps és netstat parancsaival tekinthetjük meg, az általuk létrehozott üzeneteket pedig egyéni debug fájlokon keresztül vagy a Unix syslog segítségével, a beállítástól függően. A konfigurálást a Samba egyetlen, smb.conf nevű konfigurációs fájljában végezhetjük el Ha ezen felül még az egyes démonok működését is látni szeretnénk, akkor a Samba smbstatus programját kell futtatnunk, ami szép sorjában mindent megjelenít. 18 | SAMBA 1.7 ábra A hydra kiszolgálón elérhető hálózati nyomtató (a chimarea gépből nézve) Íme a működése: # smbstatus Samba version 2.04 Service uid gid pid machine -------------------------------------network davecb davecb 7470 phoenix

(192.168220101) Sun May 16 network davecb davecb 7589 chimaera (192.168220102) Sun May 16 Locked files: Pid DenyMode R/W Oplock Name ----------------------------------------------7589 DENY NONE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/inet/ common/system/help.bmp Sun May 16 21:23:40 1999 7470 DENY WRITE RDONLY NONE /home/samba/word/office/ findfast.exe Sun May 16 20:51:08 1999 7589 DENY WRITE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/ lfbmp70n.dll Sun May 16 21:23:39 1999 7589 DENY WRITE RDWR EXCLUSIVE+BATCH /home/samba/quicken/inet/ qdata/runtime.dat Sun May 16 21:23:41 1999 7470 DENY WRITE RDONLY EXCLUSIVE+BATCH /home/samba/word/office/ osa.exe Sun May 16 20:51:09 1999 7589 DENY WRITE RDONLY NONE /home/samba/quicken/ qversion.dll Sun May 16 21:20:33 1999 7470 DENY WRITE RDONLY NONE /home/samba/quicken/ qversion.dll Sun May 16 20:51:11 1999 Share mode memory usage (bytes): 1043432(99%)free+4312(0%)used+832(0%)overhead = 1048576(100%)total 1. FEJEZET ISMERKEDÉS A SAMBÁVAL |

19 Az eredményben három adatcsoportban jelenik meg a Samba állapota, melyek mindegyike különálló szakaszokból áll. Az első szakasz azt mondja meg, hogy milyen rendszerek kapcsolódnak a Samba kiszolgálóhoz, megadva mindegyik ügyfélgép nevét (phoenix és chimarea) és IP címét. A második szakasz felsorolja azon fájlok nevét és állapotát, amelyek a kiszolgáló megosztásain éppen használatban vannak, beleértve írás/olvasási állapotukat és a fájlok esetleges zárolásait is. Végül a harmadik szakasz annak a memóriának a méretét adja meg, amelyet a Samba az általa felügyelt megosztásokhoz aktuálisan kiosztott, beleértve azt a méretet is, amelyet a megosztások aktívan használnak, plusz a további fejlécet. (Vegyük figyelembe, hogy ez nem ugyanaz a memóriaméret, mint amit az smbd vagy az nmbd eljárásai teljes memóriaterületként használnak.) Ne aggódjunk, ha most nem értenénk ezeket a statisztikákat – ahogyan előre haladunk a

könyvben, könnyebben meg fogjuk érteni őket. Ismerkedés egy SMB/CIFS hálózattal Miután befejeztük a Sambában tett rövid sétánkat, szenteljünk némi időt arra, hogy megismerkedjünk a Samba választott környezetével: egy SMB/CIFS hálózattal. Az SMB környezetben folyó hálózati munka lényegesen különbözik egy Unix környezetben folytatott, TCP/IP alapú hálózati munkától, mert számos új koncepcióval és információval kell megismerkednünk. Először az SMB hálózathoz tartozó alapvető koncepciókat tekintjük át, azt követően megismerkedünk néhány Microsoftos megvalósításával, végül megtudjuk, hol illeszthető be egy Samba kiszolgáló a képbe, és hol nem. Röviden a NetBIOS-ról Először menjünk vissza egy keveset időben. 1984-ben az IBM elkészített egy egyszerű alkalmazásprogramozási felületet (API) a számítógépeinek hálózati működtetéséhez, aminek a Network Basic Input/Output (NetBIOS) nevet adta. A NetBIOS API

kezdetleges eszközt kínált ahhoz, hogy egy alkalmazás hozzáférhessen más számítógépekhez, és adatokat osszon meg velük. A NetBIOS API jórészt úgy tekinthető, mint a szabványos BIOS API hívások hálózati kiegészítése. A BIOS csak arra alkalmas, hogy minden egyes alacsony szintű hívás a helyi gép hardverére korlátozódjon, és semmiféle segítséget nem nyújt ahhoz, hogy egy hívás rendeltetési helyét megváltoztathassuk. Ezzel szemben a NetBIOS eredeti rendeltetése az volt, hogy IBM PC-s vagy Token Ring hálózatokban a számítógépek kicserélhessék egymás közt az utasításokat. Ezért szükség volt egy alacsony szintű szállítási protokoll megvalósítására, amin keresztül kéréseket lehetett küldeni az egyik számítógépből a másikba. Az 1985-ös év vége felé az IBM kiadott egy ilyen protokollt, amit összeolvasztott a NetBIOS API-val, és az így létrejött terméknek a NetBIOS Extended User Interface (NetBEUI) nevet adta. A

NetBEUI protokollt kisebb helyi hálózatokhoz (LAN) tervezték, lehetővé téve, hogy a hálózatba kötött mindegyik gépnek saját neve legyen (max. 15 karakteresig) A ,,kisebb hálózat” itt olyan hálózatot jelent, amelyik 255-nél kevesebb csomópontból áll – 1985-ben ez még ésszerű korlátozásnak volt tekinthető. 20 | SAMBA A NetBEUI protokoll nagyon népszerű volt a hálózati alkalmazásokban, beleértve azokat is, amelyek Windows for Workgroups alatt futottak. A későbbiekben a NetBIOS olyan változatai kerültek előtérbe, melyek a Novell IPX hálózati protokolljain valósultak meg, s ezek a NetBEUI-val versengtek. Az akkoriban fejlődésnek indult internetes közösség a meglévő hálózati protokollok közül azonban TCP/IP-t és a UDP/IP-t választotta, ezért hamarosan elengedhetetlenné vált a NetBIOS API megvalósítása ezeken a protokollokon. Emlékezzünk arra, hogy a TCP/IP számokat használ a számítógépek megcímzéséhez,

olyanokat, mint például 192.168220100, a NetBIOS pedig neveket használ Ez jelentette az egyik fő problémát a két protokoll összegyúrásakor. Az Internet Engineering Task Force (IETF) 1987-ben RFC 1001 és 1002 jelöléssel kiadott egy sor szabványosító dokumentumot, melyekben körvonalazták, hogy a NetBIOS miképpen volna képes működni egy TCP/UDP hálózaton. Ez a dokumentumcsomag szabályozza még ma is az összes létező megvalósítást, beleértve azokat is, amelyeket a Windows használ a saját operációs rendszereiben, valamint a Samba szoftverkészletét is. Azóta a szóban forgó dokumentumcsomag által szabályozott szabvány NetBIOS over TCP/IP vagy röviden NBT néven vált ismertté. Az NBT szabvány (RFC 1001/1002) jelenleg a szolgáltatások alábbi hármasát vázolja egy hálózatban: • névkiszolgáló; • két kommunikációs szolgáltatás, nevük: – datagrams (vagy datagram szolgáltatás); – sessions (vagy session szolgáltatás). A

névkiszolgáló az előbb említett, névvel és címmel kapcsolatos problémát oldja meg: lehetővé teszi, hogy a hálózatban mindegyik számítógép deklaráljon egy rá jellemző nevet, ami aztán lefordítható egy, a számítógépek által érthető IP címre, nagyon hasonlóan ahhoz, ahogyan ezt az interneten a DNS teszi. A datagram és a session szolgáltatások másodlagos kommunikációs protokollok, amelyeknek az a feladata, hogy adatokat továbbítsanak a hálózatba kötött NetBIOS számítógépek között. Név igénylése Egy emberi lény viszonylag könnyen igényelhet magának nevet. Ugyanez azonban egy NetBIOS hálózatba kapcsolt gép esetén már nem ennyire egyszerű. Lássunk néhány részletet! Amikor a NetBIOS világában egy számítógép bejelentkezik a hálózatba, és szeretne nevet kapni magának, ezt névregisztrálásnak nevezik. Ugyanabban a munkacsoportban azonban nem igényelheti két gép ugyanazt a nevet, mert ez vég nélküli zavarokhoz

vezethet, amikor bármelyik másik gép kommunikálni szeretne a két gép egyikével. A probléma elkerülésének két megközelítése van: • A NetBIOS névkiszolgáló (NetBIOS Name Server, NBNS) használatával nyomon kell követni, hogy mely gazdagépek regisztráltak maguknak NetBIOS nevet. • Lehetővé kell tenni, hogy a hálózatba kapcsolt mindegyik gép megvédje a saját nevét, amikor egy másik gép megpróbálja használni az ő nevét. Az 1.8 ábra két (sikertelen) névregisztrálást mutat be: egyet a NetBIOS névkiszolgáló segítségével, egyet anélkül. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 21 1.8 ábra Névregisztrálás NBNS igénybevételével és anélkül Ezen kívül kell még valamilyen módot találni arra, hogy egy NetBIOS név átalakítható legyen specifikus IP címmé, amint erről már volt szó. Ezt a módot névfeloldásnak nevezik Az NBT-nél erre kétféle megoldás létezik: • Minden egyes gép jelentse vissza az IP címét, amikor

broadcast (üzenetszórásos) hívás kéri be a gép NetBIOS nevét. • Az NBNS segítse a NetBIOS nevek feloldását IP címekké. Az 1.9 ábra szemlélteti a névfeloldásnak ezt a két módját Amint várható, az NBNS névkiszolgáló megléte a hálózaton nagyon sokat segíthet. Azért, hogy pontosan lássuk, hogyan történhet ez, tekintsük át az NBNS nélküli esetet. Ilyenkor, ha bejelentkezik egy ügyfélgép, szétküld egy üzenetet, amelyben kijelenti, hogy a saját, specifikus NetBIOS nevét akarja regisztrálni. Ha többszöri regisztrálási kísérletet követően sincs senkinek kifogása a név használata ellen, akkor a gép megtartja a nevet. Ha viszont a helyi alhálózatban valamelyik gép már használja a szóban forgó nevet, egy üzenetet küld vissza a névigénylő ügyfélnek, amelyben közli, hogy a név már foglalt. Ezt a gazdanév megvédésének nevezik. Az ilyen módszer akkor jöhet jól, ha egy ügyfél váratlanul kilép a hálózatból: ekkor

ugyanis egy másik gép probléma nélkül megkaphatja a nevét. Másrészt viszont rendkívüli módon megnőne a hálózat forgalma, ha még az olyan egyszerű műveleteket is, mint a névregisztrálás, az egész hálózatot érintően kellene lebonyolítani. 22 | SAMBA 1.9 ábra Névfeloldás NBNS igénybevételével és anélkül Az NBNS használata esetén ugyanez történik azzal a különbséggel, hogy a kommunikáció csak az igénylő gépre és az NBNS kiszolgálóra korlátozódik. Amikor az ügyfélgép bejelenti az igényét egy név regisztrálására, a regisztrálási kérelem az ügyféltől közvetlenül az NBNS kiszolgálóra kerül, és az NBNS kiszolgáló válaszol, hogy a név foglalt-e már vagy sem. Ezt ponttól-pontig kommunikációnak nevezik, és különösen azoknál a hálózatoknál előnyös, amelyeknek egynél több alhálózatuk van. Ennek oka, hogy a forgalomirányítók gyakran eleve úgy vannak konfigurálva, hogy blokkolják a broadcast

csomagokat. Ugyanezek az elvek alkalmazhatók a névfeloldóknál is. Az NBNS nélkül a NetBIOS név feloldása szintén a ,,szétszórásos” mechanizmussal történne. Az összes igénybejelentő csomag eljutna a hálózat összes számítógépéhez, abban a reményben, hogy egyetlen, esetleg érintett gép közvetlenül válaszol a kérő gépnek. Ennyiből már világosan érthető, hogy egy NBNS kiszolgáló és a ponttól-pontig kommunikáció használata összehasonlíthatatlanul kisebb mértékben terheli le a hálózatot, mint az az áradat, amit az összes gépnek elküldendő névfeloldási kérelmek sokasága idézne elő. Csomóponttípusok Hogyan tudnánk megmondani, hogy a hálózatunkban lévő egyes ügyfelek milyen stratégiát használnának a nevük regisztrálásához és feloldásához? Egy NBT hálózat minden egyes gépe a következő jelölések egyikét kapja, attól függően, hogy miként kezeli a név- 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 23

regisztrálást és -feloldást: b-csomópont, p-csomópont, m-csomópont és h-csomópont. Az egyes csomóponttípusok viselkedését az 1.1 táblázat foglalja össze 1.1 táblázat A NetBIOS csomóponttípusai Típus Jelentés b-csomópont p-csomópont m-csomópont Csak broadcast regisztrálást és feloldást használ. Csak ponttól-pontig regisztrálást és feloldást használ. Broadcast eljárást használt a regisztráláshoz. Ha ez sikeres, akkor értesíti az eredményről az NBNS kiszolgálót. Broadcast eljárást használ a feloldáshoz; NBNS kiszolgálót használ, ha a broadcast sikertelen. NBNS kiszolgálót használ a regisztráláshoz és a feloldáshoz; broadcast eljárást használ, ha az NBNS kiszolgáló nem válaszol vagy nem működik. h-csomópont (hibrid) Windows ügyfelek esetében általában azt tapasztaljuk, hogy ezek h-csomópontokként vagy hibrid csomópontokként vannak felsorolva. Mellesleg szólva a h-csomópontokat mint hibatűrőbb típust a

Microsoft fejlesztette ki később, és így nem szerepel az RFC 1001/1002 dokumentációban. Egy Windows 95/98-as gépről úgy tudhatjuk meg, hogy milyen típusú csomópontot képvisel, hogy a futtatási parancssorba beírjuk a winipcfg parancsot, és a megnyíló párbeszédablakban a További információ (More Info) gombra kattintunk. Windows NT gépen írjuk be az ipconfig /all parancsot, majd keressük meg a Csomóponttípus (Node Type) sort. Mit tartalmaz egy név? A NetBIOS által használt nevek eléggé különböznek a feltehetően ismerős DNS nevektől. Először is a NetBIOS nevek betűi folyamatosan helyezkednek el a számukra adott helyen. Másként fogalmazva ez azt jelenti, hogy a neveknek nincsenek olyan, a gazdagép nevétől ponttal elválasztott toldalékai, mint amilyenek például az ora.com vagy a sambaorg nevekben találhatók. Minden egyes számítógépet rá jellemző egyetlen név azonosít Másodszor, a NetBIOS nevek maximum 15 karakterből állhatnak,

nem kezdődhetnek csillaggal (*), továbbá csak az (angol) szabványos alfanumerikus karaktereket (a–z, A–Z, 0–9) és a következő speciális jeleket tartalmazhatják: !@#$%^&()-’{}.~ Bár a pont (.) karakter használata engedélyezett, mégsem tanácsos használni, mert nem garantálható, hogy az ezt tartalmazó nevek a TCP/IP-re épülő NetBIOS jövőbeli változataiban is működni fognak. Nem véletlen egybeesés, hogy az összes érvényes DNS név egyúttal érvényes NetBIOS név is. A valóságban gyakran előfordul, hogy egy Samba kiszolgáló DNS neve egyúttal a kiszolgáló NetBIOS neveként is szolgál. Ha például van egy phoenixoracom nevű 24 | SAMBA gépünk, akkor ennek a NetBIOS neve feltehetően PHOENIX lenne (amely után nyolc üres hely áll). Erőforrások nevei és típusai Egy számítógép a NertBIOS révén nem csak közli másokkal a jelenlétét, hanem arról is tájékoztatja a többieket, hogy milyen típusú szolgáltatásokat

kínál. Így például a phoenix gép jelezheti, hogy nem csupán egy munkaállomás, hanem egyúttal fájlkiszolgáló is, és képes WinPopup üzenetek fogadására. Ezt azzal teheti meg, hogy egy 16 bájtot – úgynevezett erőforrástípus-jelzést – fűz a gép (erőforrás) nevének végére (lásd az 110 ábrát), és egynél többször regisztrálja a nevét. 1.10 ábra A NetBIOS nevek felépítése Az egy bájtos erőforrástípus-jelzés azt a szolgáltatást jelzi, amelyet a megnevezett gép nyújtani képes. Ebben a könyvben gyakran találkozhatunk erőforrástípusokkal, amelyek hegyes zárójelek (<>) között állnak a NetBIOS név után, például így: PHOENIX<00> Megnézhetjük, hogy egy adott NBT géphez milyen nevek vannak regisztrálva, ha a Windows parancssorába az NBTSTAT parancsot beírva futtatjuk ezt a segédprogramot. Mivel a szolgáltatások egyediek (vagyis egynél több nem lehet regisztrálva), az eredménylistában UNIQUE

típusúakként listázódnak ki. Az alábbi részlet például a hydra kiszolgálót írja le: D:>NBTSTAT -a hydra NetBIOS Remote Machine Name Table Name Type Status ------------------------------------------HYDRA <00> UNIQUE Registered HYDRA <03> UNIQUE Registered HYDRA <20> UNIQUE Registered . A listából kiolvasható, hogy a gép (munkaállomás) neve hydra NetBIOS névként van regisztrálva, képes WinPopup üzenetek fogadására, továbbá fájlkiszolgáló. Az 12 táblázat a név lehetséges attribútumai közül sorol fel néhányat. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 25 1.2 táblázat A NETBIOS Unique erőforrástípusai Megnevezett erőforrás A bájt hexadecimális értéke Szabványos munkaállomás szolgáltatásai Üzenetküldő szolgáltatás (WinPopup) RAS kiszolgáló szolgáltatás Tartomány-főtallózó szolgáltatás (az elsődleges tartományvezérlővel társítva) Főtallózó neve NetDDE szolgáltatás Fájlkiszolgáló

(beleértve a nyomtatókiszolgálót) RAS ügyfél szolgáltatás Hálózati monitor közvetítőprogram Hálózati monitor segédprogram 00 03 06 1B 1D 1F 20 21 BE BF Figyeljük meg, hogy mivel a DNS neveknek nincsenek erőforrástípusaik, a tervezők szándékosan a 20-as hexadecimális értéket (egy ASCII szóközt) tették a fájlkiszolgáló típusának alapbeállításává. Csoportnevek és típusok Az SMB a csoportok fogalmát is használja, amivel a gépek regisztrálhatják magukat. Korábban már említettük, hogy a példánkban a gépek egy munkacsoporthoz tartoznak, ami ugyanannak a hálózatnak valamely gépcsoportját jelenti. Így egy hálózatban könnyen lehet például egy EXPORT és egy IMPORT nevű munkacsoport, melyek mindegyike különböző kiszolgálókból és nyomtatókból állhat. A Windows világában egy munkacsoport és egy SMB csoport ugyanazt jelenti. Folytatva az NBTSTAT példánkat, a hydra Samba kiszolgáló egyúttal a SIMPLE munkacsoport

tagja is (a csoport – GROUP – attribútuma hexa 00), és főtallózóként is választható (1E csoport-attribútum). Az NBTSTAT kimenetének fennmaradó része: NetBIOS Remote Machine Name Table, continued Name Type Status --------------------------------------------SIMPLE <00> GROUP Registered SIMPLE <1E> GROUP Registered . MSBROWSE <01> GROUP Registered Az 1.3 táblázat azokat a lehetséges csoport-attribútumokat sorolja fel, amelyekkel egy gép rendelkezhet. További információk a Windows NT in a Nutshell című O’Reilly-könyvben olvashatók, amelynek szerzője Eric Pearce. (Az O’Reilly hasonló témájú könyvei közül Aelen Frisch Windows NT rendszeradminisztráció című kötete jelent meg magyar nyelven a Kossuth Kiadónál, és ugyancsak részletesen foglalkozik a csoportok kérdéseivel – a szerkesztő megjegyzése.) 26 | SAMBA 1.3 táblázat A NETBIOS csoport-erőforrástípusai Megnevezett erőforrás A bájt hexadecimális

értéke Szabványos munkaállomás csoport Logon Server Főtallózó neve Normál csoportnév (a tallózó megválasztásánál használt) Internet csoportnév (rendszergazda) <01><02> MSBROWSE <02> 00 1C 1D 1E 20 01 Az utolsó bejegyzés, az MSBROWSE , arra szolgál, hogy bejelentse magát egy csoport a többi főtallózónak. A névben a nem nyomtatódó karakterek az NBTSTAT nyomaton pontokként jelennek meg. Ne aggódjunk, ha nem értjük az összes erőforrás- és csoporttípust Közülük egyeseket nem kell használnunk a Sambához, másokról pedig a könyvben máshol részletesebben olvashatunk Itt csak az a fontos, hogy az elnevezési mechanizmus logikáját értsük Datagram és session Ezen a ponton tegyünk egy kis kitérőt, és ismerkedjünk meg az NBT másik feladatkörével, nevezetesen két NetBIOS gép közötti kommunikációs szolgáltatásokkal. A TCP/IP alapú NetBIOS két szolgáltatástípust kínál: a datagram szolgáltatást

és a session szolgáltatást. A Samba használatához e két szolgáltatás működésének megértése nem lényeges, de arra azért jó, hogy képet kapjunk az NBT működéséről, valamint arról, hogy miként kereshetünk hibát a Sambában, ha nem működne. A datagram szolgáltatás nem létesít állandó kapcsolatot az egyik és a másik gép között. Az egyik gép egyszerűen kiküldi az adatcsomagokat egy vagy több másik gépnek anélkül, hogy tekintettel lenne a rendeltetési állomásra érkezésük sorrendjére, vagy hogy figyelne arra, hogy egyáltalán megérkeznek-e a csomagok. A datagramok küldése kevésbé terheli ugyan a hálózatot, mint a session szolgáltatás, ennek ellenére képes lefagyasztani a hálózatot, ha nem kellő gondossággal használják (emlékszünk a broadcast névfeloldásra az előző részből?). Ezért a datagramok elsősorban azt a célt szolgálják, hogy gyorsan elküldjenek egyszerű blokkokat egy vagy több gépre A datagram

szolgáltatás az 14 táblázatban felsorolt egyszerű primitíveket használja a kommunikáláshoz. 1.4 táblázat Datagram primitívek Primitív Leírás Datagram küldése Elküld egy datagram csomagot egy gépre vagy gépcsoportra. Datagram küldése mindazon gépekre, amelyek egy datagram broadcast vételével várakoznak. Fogad egy datagramot egy géptől. Várakozik egy broadcast datagramra. Datagram broadcast küldése Datagram vétele Datagram broadcast vétele 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 27 A session szolgáltatás ennél bonyolultabb. A session olyan kommunikációs eljárást jelent, ami elvileg lehetőséget nyújt két NetBIOS alkalmazás közötti problémák vagy működésképtelen kapcsolatok észlelésére. Az NBT session megértését segíti, ha úgy tekintjük, mint egy telefonhívást.* A hívó és a hívott gép között teljes duplex kapcsolat létesül, aminek a beszélgetés egész idején nyitottnak kell maradnia. Mindkét fél tudja,

hogy ki a hívó és ki a hívott, és az 1.5 táblázatban felsorolt egyszerű primitívek segítségével beszélhetnek egymással 1.5 táblázat A session primitívjei Primitív Leírás Hívás Session kezdeményezése egy géppel, amely egy adott néven figyel. Hívást vár egy ismert vagy bármely más hívó féltől. Kilépés egy hívásból. Adatokat fogad egy másik géptől. Információkat kap a kért sessionról. Figyelés Letétel Küldés Session állapota A session az erőforrások megosztásának alapja egy NBT hálózaton. Tipikusan arra használják őket, hogy tartós kapcsolatok jöjjenek létre az ügyfélgépek és a kiszolgáló lemezvagy nyomtatómegosztásai között Az ügyfél ,,felhívja” a kiszolgálót, és információkat küld arra vonatkozóan, hogy mely fájlokat akarja megnyitni, mely adatokat akarja kicserélni stb. A hívások hosszú ideig tarthatnak – órákig vagy akár napokig –, és mindez egyetlen kapcsolat keretében zajlik. Ha

hiba lépne fel, akkor a session szoftvere (TCP) újra elküldi az adatokat mindaddig, amíg azok rendben meg nem érkeznek, ellentétben a datagram szolgáltatás (UDP) ,,küldd el és fohászkodj” típusú módszerével. A valóságban azonban – miközben azt feltételezzük, hogy a session képes a problematikus kommunikációs kapcsolatok kezelésére – nem mindig ilyen jó a helyzet. Amint talán már tapasztalhattuk, a Windows hálózatok használatakor komoly problémák merülhetnek fel. Ha a kapcsolat valamilyen oknál fogva megszakad, a két számítógép között megnyitott session információk könnyen érvénytelenné válhatnak Ha ez történik, akkor a session információk újbóli megszerzésének csak egyetlen módja marad: ugyanaz a két számítógép újra hívja egymást, és elölről kezdik a kapcsolat felépítését. Aki további tudnivalókat szeretne olvasni erről a két szolgáltatásról, annak ajánlható az RFC 1001-es dokumentáció

tanulmányozása. Itt mindössze két fontos dologra hívjuk fel még a figyelmet: • A session mindig két NetBIOS számítógép között jön létre, nem kevesebb, és nem több gép között. Ha egy session szolgáltatás megszakad, akkor a kapcsolat feltételezi, hogy az ügyfél elegendő állapotinformációt tárol ahhoz, hogy újból megteremtődjenek a kapcsolatok. A gyakorlatban azonban ez ritkán fordul elő • A datagramok több gépre is elküldhetők (broadcast), viszont megbízhatatlanok. Más szavakkal ez azt jelenti, hogy a küldő fél semmilyen módon nem képes megtudni, vajon a küldött datagramok tényleg megérkeztek-e a rendeltetési helyükre. * Amint láthatjuk az RFC 1001-ben, a telefonos hasonlat egyértelmű volt az NBT szolgáltatás elkészítését tekintve. 28 | SAMBA Microsoft implementációk Ennyi háttérismeret birtokában most már megnézhetjük, miként valósította meg a Microsoft a bemutatott koncepciókat a CIFS/SMB hálózatokon.

Amint várható volt, a gyakorlati kivitelezés során néhány bonyolult bővítésre is sor került, melyekkel szintén megismerkedünk. Windows tartományok Emlékezzünk vissza, hogy egy munkacsoport olyan SMB számítógépek együttese, amelyek mindegyike egy alhálózatban van, és ugyanahhoz az SMB csoporthoz tartozik. Egy Windows tartomány (domain) ennél egy lépéssel tovább lép: ez a tartomány az SMB gépek olyan csoportját jelenti, amelyben van egy kiszolgáló is, amely a tartományvezérlő szerepkörét tölti be. Ahhoz, hogy egy munkacsoport Windows tartománnyá váljék, a munkacsoportban kell lennie egy tartományvezérlőnek.* Ellenkező esetben csak egy SMB munkacsoportról van szó (lásd az 1.11 ábrát) 1.11 ábra Egy egyszerű Windows tartomány Jelenleg egy tartományvezérlő (logon kiszolgáló) két különálló protokollt használ: egyet a Windows 95/98-as gépekkel való kommunikációhoz, egyet pedig a Windows NT gépekkel való

kommunikációhoz. Mivel a Samba jelenleg csak a Windows 95/98-as gépek tartományvezérlő protokollját valósítja meg (ami lehetővé teszi, hogy tartományvezérlőként működjön Windows 9x gépek körében), még nem támogatja teljes körűen a Windows NT gépekhez szükséges ilyen protokollt. Ugyanakkor a Samba fejlesztő csapata ígéretet tett arra, hogy a jövőbeli Samba 2.1-es változat a Windows NT tartományvezérlő protokollt is támogatni fogja. * A Windows tartományokat a Microsoft ,,Windows NT tartománynak” nevezi, mert feltételezi, hogy a tartományvezérlő szerepét Windows NT gépek töltik be. Mivel azonban ezt a szerepet egy Samba gép is betöltheti, a félreértések elkerülése végett az ilyen csoportokat egyszerűen Windows tartománynak nevezzük. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 29 Mi az oka ezeknek a nehézségeknek? Az a protokoll, amit a Windows tartományvezérlők az ügyfeleikkel és más tartományvezérlőkkel való

kommunikációhoz használnak, a cég tulajdonát képezi, és a Microsoft még nem tette közzé. Ez arra kényszerítette a Samba fejlesztő csoportját, hogy visszafejtsék a tartományvezérlő protokollt, hogy lássák, milyen kódok hajtják végre az egyes speciális feladatokat. Tartományvezérlők A tartományvezérlő egy Windows tartomány idegközpontja, ahhoz hasonlóan, amiképp egy NIS kiszolgáló is az idegközpontja egy Unix hálózati információszolgáltatásnak. A tartományvezérlők különböző feladatokért felelnek Az egyik ilyen felelősségi kör, amellyel foglalkoznunk kell, az úgynevezett hitelesítés. A hitelesítés az az eljárás, amellyel megadható vagy megtagadható egy felhasználótól a hozzáférés egy megosztott erőforráshoz vagy másik hálózati géphez, tipikusan jelszó használata révén. Minden egyes tartományvezérlő használ egy biztonságos fiókkezelőt (SAM), amellyel karbantartja a felhasználónév–jelszó

kombinációt. A tartományvezérlő ezután elkészíti a felhasználói nevekhez kapcsolt jelszavak központi tárát (felhasználónként egy jelszó), ami sokkal hatékonyabb, mintha külön-külön tartaná nyilván az egyes ügyfeleket és a rendelkezésre álló hálózati erőforrásokhoz tartozó jelszavak százait. Amikor egy Windows tartományban egy nem hitelesített ügyfél hozzá szeretne férni a kiszolgáló megosztásaihoz, a kiszolgáló a tartományvezérlőhöz fordul, és megkérdezi tőle, hitelesítve van-e az adott felhasználó. Amennyiben igen, akkor a kiszolgáló létrehoz egy kapcsolatot azokkal a hozzáférési jogokkal, amelyekkel a felhasználó az adott megosztás vonatkozásában rendelkezik. Amennyiben nem, akkor megtagadja a kapcsolat létrehozását Miután a tartományvezérlő elvégezte a felhasználó hitelesítését, visszaküld a felhasználónak egy speciális hitelesítő jelzést, úgyhogy a felhasználónak nem kell ismét bejelentkeznie

ugyanezen tartomány más erőforrásaihoz. Ettől a pillanattól kezdve úgy tekinthető, hogy a felhasználó ,,bejelentkezett” magába a tartományba (lásd az 1.12 ábrát) 1.12 ábra Tartományvezérlő használata a hitelesítéshez 30 | SAMBA Elsődleges és tartalék tartományvezérlők A Windows tartomány egyik alapvető elve a redundancia. Azt a tartományvezérlőt, amelyik egy tartományban éppen aktív, elsődleges tartományvezérlőnek (PDC) nevezik A tartományban e mellett lehet még egy vagy több tartalék tartományvezérlő (BDC) is, amelyek átvehetik az elsődleges tartományvezérlő szerepét, ha az meghibásodna vagy elérhetetlenné válna A BDC-k sűrűn szinkronizálják a SAM adatokat az elsődleges tartományvezérlővel, így ha felmerül az igény, akkor bármelyikük átveheti a az elsődleges tartományvezérlő (PDC) szerepét anélkül, hogy zavart okozna az ügyfelek körében Tudjunk persze, hogy a BDC-k a SAM adatoknak csak egy

olvasható másolatával rendelkeznek, ezért ezeket az adatokat úgy frissíthetik, hogy szinkronizálják őket a PDC-vel. Egy Windows tartományban egy kiszolgáló bármelyik elsődleges vagy tartalék tartományvezérlő SAM-ját használhatja annak a felhasználónak a hitelesítéséhez, aki megpróbál hozzáférni az erőforrásaihoz, és be akar jelentkezni a tartományba. Vegyük észre, hogy egy Windows munkacsoport és egy Windows tartomány viselkedése számos tekintetben átfedi egymást. Ez nem véletlen, hiszen a Windows tartományok koncepciója csak a Windows NT 3.1 bevezetését követően alakult ki, és a Windows tartományokat szándékosan úgy tervezték meg, hogy megtartsák a kompatibilitásukat a Windows for Workgroups 3.1 változatban meglévő munkacsoportokkal A lényeg nagyjából úgy foglalható össze, hogy egy Windows tartomány egyszerűen olyan Windows munkacsoportot jelent, amely kiegészül egy vagy több tartományvezérlővel A Samba minden

probléma nélkül elsődleges tartományvezérlőként működhet Windows 95/98-as gépek között. Ugyanakkor a Samba 20 mint elsődleges tartományvezérlő csak hitelesítési feladatokat tud ellátni; jelenleg más feladatokat nem képes átvenni egy PDC-től. (A könyv olvasásának idején talán már létezik a Samba 21 változat, amivel a Sambát NT ügyfelek körében is használhatjuk PDC-ként.) Továbbá, mivel a Microsoft által a SAM adatok szinkronizálásához használt protokoll zárt protokoll, a Samba jelenleg tartalék tartományvezérlőként sem használható. Tallózás A tallózás ebben a szövegösszefüggésben magas szintű választ jelent az olyan felhasználói kérdésre, mint hogy ,,Milyen gépek vannak ebben a Windows hálózatban?”. Ügyeljünk arra, hogy ennek a tallózásnak semmi köze sincs a World Wide Weben való böngészéshez, eltekintve attól, hogy a tallózás azt is jelenti: lássuk, mit is fedezhetünk fel a környezetünkben. És van

még egy közös sajátosságuk: akárcsak a weben, egy hálózatban is megváltozhat valami minden külön értesítés nélkül A tallózás használata nélkül a felhasználónak ismernie kell annak az adott számítógépnek a nevét, amelyhez a hálózaton keresztül kapcsolódni akar, majd egy alkalmazásban vagy fájlkezelőben kézzel be kell írnia egy alábbihoz hasonló UNC-t (Universal Naming Convention), hogy kapcsolódhasson a hálózatra: \HYDRA etwork A tallózással viszont – egy szabványos felhasználói illesztőfelületet (GUI) használva, például egy Windows ügyfél Hálózatok ablakában – egy egérkattintással megvizsgálhatjuk a számítógép tartalmát. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 31 Tallózási szintek Amint a fejezet elején már említettük, egy SMB/CIFS hálózatban a tallózás kétféle szintjével találkozhatunk: • tallózás a számítógépek listájában (megosztott erőforrásokkal rendelkező gépek); • tallózás

egy adott gép megosztott erőforrásaiban. Nézzük először az első szintet. Minden egyes Windows munkacsoport (vagy tartomány) alhálózatában van egy számítógép, amely a hálózaton aktuálisan elérhető gépek listájának karbantartásáért felel. Ennek a számítógépnek helyi főtallózó a neve, az általa karbantartott listát pedig tallózólistának nevezik Az alhálózatban lévő gépek ezt a tallózólistát használják, hogy csökkenthető legyen a tallózás okozta hálózati forgalom nagysága Ahelyett, hogy minden egyes számítógép dinamikusan lekérdezné az éppen rendelkezésre álló számítógépek listáját, az illető gép a helyi főtallózóhoz fordul, amelytől megkapja a teljes frissített listát. Ahhoz, hogy egy felhasználó egy gép aktuális erőforrásai között tallózhasson, kapcsolódnia kell az adott számítógéphez – a gépen lévő információkat a tallózólistából nem tudja megkapni. Valamely gépen elérhető

erőforrások listájában úgy tallózhat, hogy a Windows 95/98 vagy a Windows NT Hálózatok ablakában rákattint az illető gép ikonjára. Amint a fejezet elején láttuk, a gép erre megjeleníti a rajta elérhető megosztott erőforrások listáját, miután a felhasználó sikeresen átesett a hitelesítésen. Egy Windows munkacsoportban a kiszolgálók mindegyikének – miután regisztrálta a NetBIOS nevét – be kell jelentenie a jelenlétét a helyi főtallózónak, és (elméletileg) azt is, hogy kijelentkezik a munkacsoportból, amikor befejezi a működését. A helyi főtallózó feladata, hogy feljegyezze, mit jelentettek be a kiszolgálók. Hozzátesszük, hogy a helyi főtallózónak nem kell feltétlenül ugyanannak a gépnek lennie, mint amelyik a korábban tárgyalt NetBIOS névkiszolgáló (NBNS). A Windows Hálózatok ablak (Network Neighborhood) furcsán viselkedhet: addig, amíg nem választunk ki tallózásra egy adott számítógépet, a Hálózatok

ablakban elavult adatok is megjelenhetnek. Ez azt jelenti, hogy olyan gépek is lehetnek, amelyek lefagytak, és hiányozhatnak olyanok, amelyeket korábban nem vettünk észre. Röviden szólva: csak akkor bízhatunk abban, hogy a megjelenő megosztások és nyomtatók valóban ,,élnek” a hálózaton, ha kijelöltünk egy kiszolgálót és megteremtettük hozzá a kapcsolatot. A korábban látott szerepektől eltérően szinte bármilyen Windows gép (NT kiszolgáló, NT munkaállomás, 98, 95 vagy Windows 3.1 for Workgroups) betöltheti a helyi főtallózó szerepét A tartományvezérlőkhöz hasonlóan a helyi főtallózónak is lehet egy vagy több tartaléka a helyi alhálózatban, amely meghibásodás vagy elérhetetlenség esetén átveszi a szerepét A folyamatos működés biztosítása céljából a helyi tartaléktallózók gyakorta szinkronizálják a listájukat a helyi főtallózó listájával Bővítsük ki az eddigi Windows tartományunk rajzát egy helyi

főtallózóval és egy helyi tartaléktallózóval Az eredmény az 113 ábrán látható. 32 | SAMBA 1.13 ábra Egy Windows tartomány helyi főtallózóval és helyi tartaléktallózóval kiegészítve Az alábbiak szerint számíthatjuk ki azoknak a tartaléktallózóknak a minimális számát, amelyeket el kell helyezni egy munkacsoportban: • Ha a hálózatban a Windows NT munkaállomások száma 1 és 32 között van, vagy a Windows 95/98-a gépek száma 1 és 16 között van, akkor a helyi főtallózó mellé egy tartaléktallózót kell telepíteni. • Ha a Windows NT munkaállomások száma 33 és 64 között van, vagy ha a Windows 95/98 munkaállomások száma 17 és 32 között van, akkor a helyi főtallózó mellé két tartaléktallózót kell telepíteni. • Minden további, 32 NT munkaállomás-csoporthoz vagy 16 Windows 95/98 gépcsoporthoz eggyel több tartaléktallózót kell telepíteni a helyi főtallózó mellé. Jelenleg nincs felső határa a helyi

főtallózó mellé telepíthető tartaléktallózók számának. Tallózó kiválasztása A tallózás bármely Windows munkacsoportban nagyon lényeges művelet. A hálózatokon azonban nincs mindig minden rendben. Tegyük fel például, hogy egy kis cég főnökének asztalán álló Windows NT kiszolgáló játssza a helyi főtallózó szerepét a hálózatban – mindaddig, amíg a főnök ki nem kapcsolja a gépét, és el nem megy ebédelni. Megegyezés szerint ekkor az alkatrészraktárban lévő Windows NT munkaállomás veszi át a helyi főtallózó szerepét. Igen ám, csakhogy ezen a gépen éppen egy gyengén megírt program fut, ami teljes mértékben igénybe veszi a processzor erejét, és nem tud megbirkózni az újabb feladattal. Ebből levonhatjuk azt a következtetést, hogy a tallózásnak igen nagyfokú türelmet kell tanúsítania a jövő, menő kiszolgálók iránt Mivel szinte bármely Windows gép alkalmas a tallózó szerepkör betöltésére, lennie kell

egy eljárásnak, hogy bármikor eldönthető legyen, melyik gép vegye át ezt a feladatot. Ennek a döntéshozó eljárásnak kiválasztás (election) a neve A kiválasztás algoritmusa majdnem az összes Windows operációs rendszerbe be van építve, tehát ezek megegyezhetnek egymással, hogy melyikük legyen a helyi főtallózó, és melyikük a helyi tartaléktallózó. A választás bármikor kikényszeríthető Visszatérve az 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 33 előző példához, tegyük fel, hogy a főnök befejezte az ebédjét, és újraindítja a kiszolgálóját. Amikor a kiszolgáló feléled, bejelenti a jelenlétét a hálózaton, végbemegy egy kiválasztáskérés, hogy lássa, még mindig az a gép-e a főtallózó, amelyik az alkatrészraktárban van. Miután elküld egy kiválasztáskérést, minden egyes gép datagramokon keresztül szétküldi (broadcast) a magára vonatkozó információkat. Ezek az információk a következőket tartalmazzák: •

a használt kiválasztási protokoll verziója; • a gépen futó operációs rendszer; • az ügyfél által a hálózaton eltöltött idő tartama; • az ügyfél gazdaneve. Ezek az értékek határozzák meg, hogy melyik operációs rendszernek van elsőbbsége, és melyik töltheti be a helyi főtallózó szerepkörét. (A Felhasználók, biztonság és tartományok című 6 fejezet részletesebben is foglalkozik a kiválasztási folyamattal) A kiválasztás programozástechnikai megvalósítása nem túl elegáns, és biztonsági problémák is rontják a helyzetet. Míg egy tallózó tartomány integrálható tartományi biztonsággal, addig a választási algoritmus nem veszi figyelembe, hogy mely számítógépekből lettek tallózók. Ezért a tallózó szolgáltatást futtató bármely számítógép úgy regisztrálhatja magát, mint amelyik részt vesz a tallózó kiválasztásaában, majd (miután győzött) képes lesz a tallózólista módosítására. Ennek ellenére

a tallózás a windowsos hálózati munka egyik kulcseleme, és a kompatibilitás fenntartása iránti igények azt is biztosítják, hogy a következő években is használatban maradjon Felbontható egy Windows munkacsoport több alhálózatra? Igen, bár azok közül, akik ezt megtették, sokaknak nem kis fejfájást okozott. A több alhálózatra való bontás lehetőségét a Windows NT 35 vagy a Windows for Workgroups fejlesztői eredetileg nem tervezték be Ezért az a Windows tartomány, amely két vagy több alhálózatra van felbontva, a valóságban inkább két vagy több egymáshoz ,,ragasztott” munkacsoportnak tekinthető, amelyek ugyanazon a néven osztoznak. Jó hír azonban, hogy továbbra is használható egy elsődleges tartományvezérlő a hitelesítésre minden egyes alhálózatban. Rossz hír viszont, hogy a tallózás már nem annyira egyszerű dolog Amint korábban említettük, minden egyes alhálózatban kell lennie egy saját helyi főtallózónak. Amikor

egy Windows tartomány több alhálózatra bomlik, a rendszergazdának a gépek egyikét tartomány-főtallózóvá kell kijelölnie. Ez a tartomány-főtallózó tartja nyilván a tallózólistát a teljes Windows tartományra vonatkozóan. E tallózólista úgy készül, hogy minden egyes helyi főtallózó tallózólistája rendszeres időközönként szinkronizálódik a tartomány-főtallózó listájával. A szinkronizálást követően a helyi főtallózónak és a tartomány-főtallózónak egymással azonos bejegyzéseket kell tartalmaznia Erre az 114 ábra mutat példát. 34 | SAMBA 1.14 ábra Egynél több alhálózatra bontott munkacsoport Jól hangzik? Azért ez még nem egészen a nirvána, a következő okok miatt: • Ha létezik elsődleges tartományvezérlő, akkor az egyúttal mindig a tartomány-főtallózó is. A Microsoft tervei szerint a kettő mindig ugyanazon a NetBIOS erőforrástípuson (1B) osztozik, és (sajnos) nem választható szét. • A

Windows 95/98-as gépekből nem lehet tartomány-főtallózó, sőt még kapcsolatba sem léphetnek ilyennel. A Samba fejlesztőcsoportja úgy gondolja, hogy ez egy marketingfogás a Microsoft részéről, amely így akarja kényszeríteni a felhasználókat, hogy a több alhálózatból álló munkacsoport minden egyes alhálózatában legalább egy Windows NT munkaállomás (vagy Samba kiszolgáló) legyen. Minden egyes alhálózat helyi főtallózója továbbra is karbantartja az alhálózatára vonatkozó tallózólistát, és az alhálózatban ez lesz a hiteles lista. Így ha egy számítógép szeretné látni a saját alhálózatán belüli kiszolgálók listáját, akkor ennek az alhálózatnak a helyi főtallózóját kérdezi le. Ha egy számítógép az alhálózatán kívüli kiszolgálók listáját szeretné megtekinteni, akkor is csak a helyi főtallózót kell megkeresnie. Erre azért van lehetőség, mert az alhálózat helyi főtallózójának hiteles listája adott

időközönként szinkronizálódik a tartomány-főtallózójával, ami viszont szinkronizálódik a tartományban lévő többi alháló- 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 35 zat helyi főtallózóival. Ennek a műveletnek a tallózólista továbbadása (browse list propagation) a neve Amennyiben szükséges, a Samba betöltheti a tartomány-főtallózó szerepét egy Windows tartományban. Emellett még helyi főtallózóként is működhet egy Windows alhálózatban, és szinkronizálhatja a saját tallózólistáját a tartomány-főtallózóéval. A Windows Internet Name Service (WINS) A Windows Internet Name Service (Windows internetes névszolgáltatás, WINS) a NetBIOS névkiszolgáló (NBNS) Microsoft általi megvalósítása. Mint ilyen, a WINS a NetBIOS számos jellemzőjét örökölte. Először is a WINS egyszerű neveket használ a számítógépek és a munkacsoportok azonosítására: egy géphez például a fred, egy munkacsoporthoz pedig a CANADA név

rendelhető. Emellett a WINS dinamikus: amikor egy ügyfél először kezdeményezi a kapcsolatfelvételt, meg kell adnia a gazdanevét, a címét és a helyi WINS kiszolgálóban lévő munkacsoportjának a nevét. A WINS kiszolgáló mindaddig fenntartja a kapcsolatot, amíg az ügyfél rendszeres időközönként frissíti a WINS regisztrálását, jelezve, hogy még kapcsolatban van a hálózattal. Jegyezzük meg, hogy a WINS kiszolgálók nem egy tartomány vagy egy munkacsoport jellegzetességei, hanem bárhol lehetnek, és bárkit kiszolgálhatnak. Több WINS kiszolgáló beállítható úgy, hogy megadott idő eltelte után egymást szinkronizálják. Ez lehetővé teszi, hogy a hálózatra belépő vagy onnan kijelentkező gépeket az egyik WINS kiszolgáló egy másikhoz küldje. Míg elméletben ez hatékonynak tűnik, hamar zavarossá válhat a helyzet, ha több WINS kiszolgáló fedi le a hálózatot. Mivel a WINS kiszolgálók keresztül-kasul járhatnak több

alhálózatban (vagy fixen bekódoljuk egy WINS kiszolgáló címét minden egyes ügyfelünkbe, vagy DHCP útján juthatunk a címhez), gyakran hatékonyabb, ha – a Windows tartományok számától függetlenül – minden egyes Windows ügyfélhez ugyanazt a WINS kiszolgálót rendeljük. Ilyen módon csak egyetlen hiteles és a helyes információkat tartalmazó WINS kiszolgálónk lesz, és nem több, amelyek közül mindegyik igyekezne folyamatosan szinkronban tartani magát a legutolsó változásokkal. Az éppen aktív WINS kiszolgálót elsődleges WINS kiszolgálónak nevezik. E mellé egy másodlagos WINS kiszolgáló is telepíthető, amely az elsődleges WINS kiszolgáló meghibásodása vagy elérhetetlenné válása esetén átveszi annak a szerepét. Jegyezzük meg, hogy itt nincs lehetőség olyan választásra, amellyel meghatározhatnánk, hogy melyik gépből legyen elsődleges vagy tartalék WINS kiszolgáló – a WINS kiszolgálók megválasztása statikus, és

a rendszergazdának előre el kell döntenie, hogy melyik legyen az. Mind az elsődleges, mind bármelyik tartalék WINS kiszolgáló rendszeres időközönként szinkronizálja a címadatbázisait. A Windows operációs rendszerek családján belül csak egy NT munkaállomás vagy egy NT kiszolgáló töltheti be a WINS kiszolgáló szerepét. A Samba is működtethető elsődleges WINS kiszolgálóként, másodlagos WINS kiszolgálóként viszont nem. Mire képes a Samba? Az Olvasó feltehetően soha nem gondolta volna, hogy ennyire bonyolultak lehetnek a Microsoft hálózatok. Nos, akkor lássuk, hogy miben segíthet nekünk a Samba! Az 16 táb- 36 | SAMBA lázat felsorolja azokat a szerepköröket, amelyeket a Samba egy Windows NT tartományban vagy Windows munkacsoportban betölthet, illetve nem tölthet be. Látható, hogy mivel az NT tartomány protokolljainak jó része a Microsoft tulajdonában van, és még nem dokumentálták őket, a Samba nem tudja helyesen

szinkronizálni az adatait egy Microsoft kiszolgálóval, és számos helyen nem alkalmazható tartalékgépként. Ugyanakkor a Samba 2.0 változata korlátozott mértékben már támogatja az elsődleges tartományvezérlő hitelesítési protokolljait, és naponta újabb és újabb funkciókkal gyarapszik 1.6 táblázat A Samba által betölthető szerepkörök (a 204b változat szerint) Szerepkör Betölthető? Fájlkiszolgáló Nyomtatókiszolgáló Elsődleges tartományvezérlő Tartalék tartományvezérlő Windows 95/98 hitelesítő Helyi főtallózó Helyi tartaléktallózó Tartomány-főtallózó Elsődleges WINS kiszolgáló Másodlagos WINS kiszolgáló Igen Igen Igen (Samba 2.1 vagy újabb ajánlott) Nem Igen Igen Nem Igen Igen Nem A SAMBA disztribúció áttekintése Amint korábban már említettük, a Samba különböző programokból áll, amelyek különféle, de egymással kapcsolatban álló feladatokat végeznek. Ismerkedjünk meg röviden ezekkel, és

lássuk, miként működnek együtt egymással. A Samba disztribúcióban található programok többsége a két démonja köré csoportosítható Nézzük meg egy kicsit közelebbről az egyes démonok feladatát: smbd Az smbd démon a Samba kiszolgáló gép és az ügyfelei közötti megosztott erőforrások kezeléséért felelős. Ez a démon fájl-, nyomtató- és tallózószolgáltatásokat kínál az SMB ügyfelek számára egy vagy több hálózaton keresztül. Az smdb kezeli a Samba kiszolgáló és a hálózati ügyfelei közötti összes értesítést, továbbá ez felel a felhasználó hitelesítéséért, az erőforrások zárolásáért és az adatok SMB protokollon keresztüli megosztásáért. nmbd Az nmbd démon egy egyszerű névkiszolgáló, lemásolja a WINS és a NetBIOS névkiszolgáló funkcióit, amint ez várható is, amikor a LAN Manager csomagjával találkozunk. Ez a démon figyel a névkiszolgáló kéréseire, és a felhívásakor rendelkezésre

bocsátja a megfelelő információkat. Ugyancsak ez a démon adja át a hálózatnak a tallózólistákat, és vesz részt a tallózó kiválasztásában. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 37 A Samba disztribúció emellett még néhány kisebb Unix parancssori eszközt is tartalmaz: smbclient FTP-szerű Unix ügyfél, ami Samba megosztásokhoz való kapcsolódáshoz használható. smbtar Megosztásokban lévő adatok biztonsági másolatának létrehozásához használható program, hasonló a Unix tar parancsához. nmblookup TCP/IP alapú NetBIOS névkereséseket végző program. smbpasswd Ez a program a rendszergazda számára lehetővé teszi a Samba által használt titkosított jelszavak megváltoztatását. smbstatus Ez a program jelentést készít azokról az aktuális hálózati kapcsolatokról, amelyek egy Samba kiszolgálón lévő megosztásokat célozzák. testparm Egyszerű program a Samba konfigurációs fájljának vizsgálatához. testprns Ez a program azt

teszteli, hogy észlelte-e a különböző nyomtatókat az smbd démon. A Samba minden jelentősebb kiadását alapos tesztelésnek teszik ki a bejelentését megelőzően. Emellett a kibocsátását követően gyorsan frissítik, ha valamilyen problémát vagy nemkívánatos mellékhatást fedeznek fel benne. A könyv írásának idején a legfrissebb stabil disztribúció a Samba 205, a Samba 20 régóta várt legújabb verziója Ez a könyv a ma már elavultnak tekinthető 1.9x verziók helyett a Samba 20 által támogatott funkciókra összpontosít. (Amint a szerzők írják, könyvük akkor készült, amikor a Samba fejlesztői a 2.05 sz verziót bocsátották útjára. A magyar kiadás idején a Samba a 220 verziónál tart, a forgalomban lévő Debian stabil [potato] és más disztribúciók azonban még tartalmazzák a 2.07-est, aminek következtében nagyon sok felhasználó bizonyára ezt a ,,régebbi” verziót használja. Mindazonáltal az O’Reilly könyvének

értékét alapvetően nem a verziószámok határozzák meg. A könyv összes információja, útmutatása rendkívül aktuális és hasznos a hazai Linux-társadalom számára. Elsősorban azért, mert még nem jelent meg magyar nyelven ennyire átfogó és ilyen nívójú Samba-szakkönyv. És persze hiba volna a verziószám jelentőségének eltúlzása azért is, mert az újabb és újabb Samba-fejlesztéseket sokszor pusztán a Windows-forráskódok megszerzésének nehézkessége, a kódvisszafejtés elhúzódása kényszeríti ki, aminek a következményeivel viszont e kötet szerzői is foglalkoznak – a lektor megjegyzése.) 38 | SAMBA Hogyan szerezhető be a Samba? A Sambának mind a bináris, mind a forráskódja az interneten keresztül különböző tükörkiszolgálókról szerezhető be. A Samba elsődleges helye a http://wwwsambaorg/ címen érhető el. Aki viszont nem akar arra várni, hogy feltétlenül Ausztráliából érkezzenek meg a csomagok, az az

internet különböző helyein is megtalálja a Samba tükrözéseit. A tükrözések listája a Samba elsődleges honlapján található meg. A Samba 2.0 újdonságai A Samba 2.0 változatát nagy várakozás előzte meg Legfőbb újdonsága az NT tartományok sokkal erősebb támogatása, valamint az új Samba webadminisztrációs eszköz (Samba Web Administration Tool, SWAT), mely utóbbi egy, a Samba konfigurálására használható, böngésző alapú segédprogram. Ezek mellett az 1998 nyarán és őszén bevezetett javítások közül még sok más is bekerült ebbe a változatba. NT tartományok A Samba NT tartományok támogatása (a 2.0x verziótól kezdődően) jelentős javulást eredményezett: ez lehetővé teszi, hogy az SMB kiszolgálók használják a hitelesítő mechanizmusukat, ami nagyon lényeges a jövőbeli NT-kompatibilitás miatt, és támogassák az NT tartományi bejelentkezéseket. A tartományi bejelentkezések lehetővé teszi, hogy egy felhasználó

bejelentkezzen egy Windows NT tartományba, és a tartományban lévő összes számítógépet használhassa anélkül, hogy egyenként be kellene jelentkeznie ezekre a gépekre. A Samba 200 verzióját megelőző verziók ugyan támogatták a Windows 95/98 bejelentkezési szolgáltatásait, de az NT tartományba való bejelentkezéseket nem. A tartományi bejelentkezések támogatása ugyan még nem teljes a Samba 20-ban, de részben már megvalósításra került. Az adminisztrálás könnyítése A SWAT, a Samba webadminisztrációs eszköze lehetővé teszi egy kiszolgáló egyszerű telepítését és a konfigurációjának módosítását anélkül, hogy le kellene mondani az egyszerű, szöveg alapú konfigurációs fájlról. A SWAT grafikus illesztőfelületet kínál azokhoz az erőforrásokhoz, amelyeket a Samba megoszt az ügyfeleivel Emellett a Samba nem kevés kísérletezési és emlékezetre hagyatkozó munkát is megtakarít a hálózaton keresztüli telepítéssel

és a konfigurációs módosításokkal kapcsolatban. Még azt is megtehetjük, hogy a SWAT segítségével elvégzünk egy induló telepítést, majd a konfigurációs fájlt később kézi úton módosítjuk, vagy fordítva. A Samba nem fog panaszkodni Ami a forrásprogramok lefordítását illeti, a GNU autoconf parancsát használhatjuk most arra, hogy könnyebben legyen elvégezhető a kezdeti fordítás és a telepítés, és gyorsabban eljuthassunk a SWAT-hoz. 1. FEJEZET ISMERKEDÉS A SAMBÁVAL | 39 Teljesítmény A Samba új változatában jelentősen megnőtt a teljesítmény és a skálázhatóság: a kódot átszervezték, és alaposan átírták az nmbd-t (a Samba névkiszolgáló démonját): • A név/tallózó szolgáltatás most megközelítőleg 35 000 egyidejű ügyfelet támogat. • A fájl- és nyomtatószolgáltatások 500 egyidejű felhasználót támogatnak egyetlen, közepes méretű kiszolgálóról, a teljesítmény észrevehető csökkenése

nélkül. • Ugyanazon a hardveren a Linux/Samba jobb teljesítményt nyújt, mint egy NT kiszolgáló. És ami mindenek fölött a legjobb: a Samba egyre javul • A javított zároló mechanizmusok lehetővé teszik, hogy az ügyfélgépek helyileg teljes fájlokat gyorsítsanak, aminek köszönhetően jelentősen javul a sebesség anélkül, hogy a gyorsított fájlok ki lennének téve a véletlen felülírás kockázatának. További jellemzők A felsoroltakon kívül a Samba 2.0 még további tulajdonságokkal is rendelkezik A Sambához most ugyanazon a gépen már több ál-Sambát is elkészíthetünk, melyek mindegyike külön kiszolgálónak tettetheti magát, hasonlóan a modern webkiszolgálók virtuális gazdáihoz. Ez lehetővé teszi egy gazda számára, hogy több részleget vagy csoportot szolgáljon ki, vagy normál felhasználónév/jelszó kombinációt használva lemezmegosztásokat kínáljon, míg a nyomtatókat különösebb biztonsági korlátozások nélkül

bárki számára hozzáférhetővé tegye. A nyomtatás könnyebbé vált a Unix System V tulajdonosai számára: a Samba most automatikusan megtalálja a rendelkezésre álló nyomtatókat a Berkeleystílusú nyomtatáshoz hasonlóan Emellett a Samba képes többféle kódlap kezelésére, így például Európán kívüli nyelvek is használhatók, továbbá a Secure Socket Layer (SSL) használatával képes az interneten elküldött összes adatnak, és nemcsak a jelszónak a titkosítására. Kompatibilitási javítások A Samba képességeinek növekedésével együtt nőtt a Windows NT-vel fennálló kompatibilitás foka. A Samba mindig is támogatta a jelszavak Microsoft stílusú titkosítását Most olyan eszközökkel is rendelkezik, amelyekkel átválthat a Microsoft-féle titkosításra, és szinkronizálhatja egymással a Unix és a Microsoft jelszófájlokat. Végül a Samba főtallózója utasítható arra, hogy különböző helyi hálózatokon lévő más SMB

kiszolgálókkal szinkronizálja magát, lehetővé téve, hogy az SMB zökkenőmentesen működjön több hálózaton keresztül. A Samba ehhez más eljárást használ, mint a Microsoft, mely utóbbié nincs dokumentálva Smbwrapper Végül létezik egy teljesen új változatú Unix ügyfél, az úgynevezett smbwrapper. Egy kernel modul helyett, amely lehetővé teszi, hogy a Linux Samba ügyfélként viselkedjen, most egy parancssori bejegyzéssel betölthető az a könyvtár, ami teljes SMB fájlrendszert bocsát bizonyos Unix változatok rendelkezésére. Miután betöltődött a könyvtár, az ls /smb parancs kiadásával kilistázható a munkacsoportban lévő összes gép, és az /smb/kiszol- 40 | SAMBA gálónév/megosztásnév parancs beírásával eljuthatunk egy adott megosztáshoz (megosztott könyvtárhoz), hasonlóan a hálózati fájlrendszerhez (Network File System, NFS). A könyv írásának idején az smbwrapper Linux, Solaris, SunOS 4, IRIX és OSF/1

operációs rendszereken fut, és a közeli jövőben várhatóan további operációs rendszereken is futni fog. Ez még nem minden A Samba csodálatos eszköz, amelynek a képessége a legkisebb SMB/CIFS hálózatokon is megmutatkozik. Ebben a fejezetben bemutattuk a Sambát, és ami ennél is fontosabb, azt is, hogy miként illeszthető be egy Windows hálózatba. A következő fejezetekben megismerkedünk azzal, hogy miként telepíthetjük a Sambát egy Unix kiszolgálóra, ahol a két démonja elhelyezkedik, továbbá azzal, hogy miként konfigurálhatjuk a Windows 95, 98 és NT ügyfeleket a Sambával való együttműködéshez. Hamarosan érezni fogjuk, hogy a vegyes összetételű hálózatokkal kapcsolatos gondjaink és bajaink már a múlté lesznek. Üdvözöljük Önt a Samba csodálatos világában! A Samba telepítése Unix rendszerre Miután már tudjuk, milyen szolgáltatásokat kínál nekünk és a felhasználóinknak a Samba, ideje létrehozni a saját

hálózatunkat. Kezdjük azzal, hogy telepítjük a Sambát egy Unix rendszerre. Amikor szambázni tanulunk, kezdetben kis lépésekkel kezdjük Ugyanez a helyzet a Samba telepítésénél is – itt is lépésről lépésre haladunk előre. Ebben a fejezetben a lépések helyes sorrendjével ismerkedünk meg. Szemléltetési célból a Samba kiszolgáló 2.04-es verzióját fogjuk telepíteni egy 2031 verziójú kernelt futtató Linux rendszerre*. A telepítés lépései azonban minden olyan platformon azonosak, amelyeket támogat a Samba A tipikus telepítés nagyjából egy óra hoszszat tart, beleértve a forrásfájlok letöltését és lefordítását, a konfigurációs fájlok beállítását és a kiszolgáló tesztelését. A telepítés lépései: 1. Forrás- vagy bináris fájlok letöltése 2. Telepítési dokumentáció elolvasása 3. Make-fájl konfigurálása 4. Kiszolgáló kódjának lefordítása 5. Kiszolgáló fájljainak telepítése 6. A Samba konfigurációs

fájljának létrehozása 7. A konfigurációs fájl tesztelése 8. Samba démonok indítása 9. Samba démonok tesztelése A Samba disztribúció letöltése Azok, akik a legfrissebb változatot akarják letölteni, először a http://www.sambaorg webhelyen keressék a Samba szoftverét Miután ráléptek erre a weboldalra, hivatkozásokat látnak, amelyek a világ különböző részein lévő tükörkiszolgálókra mutatnak. Ezek egy része a Sambával foglalkozó szokásos webhely, más részük viszont kifejezetten arra szolgál, hogy le lehessen róluk tölteni a Sambát. Keressék meg közülük a földrajzilag hozzájuk legközelebbi helyet, és töltsék le a szoftvert. * A Linux szabadon terjesztett, a Unixhoz hasonló operációs rendszer, a legtöbb Intel x86, Motorola PowerPC és Sun Sparc platformon fut. Az operációs rendszer rendkívül robosztus felépítésű, viszonylag egyszerűen konfigurálható, és egyre nagyobb népszerűségnek örvend. A Linuxról további

információk a http://www.linuxorg/ internetes címen olvashatók 42 | SAMBA A Sambával foglalkozó szokásos webhelyeken a Sambával kapcsolatos dokumentációk és oktatóanyagok, levelezőlista-archívumok, a legújabb hírek, valamint a Samba forrás- és bináris disztribúciói találhatók. A letöltési helyek (ezeket FTP helyeknek is nevezik) csak a forrás- és a bináris disztribúciókat tartalmazzák. Hacsak nem az a célunk, hogy a Samba kiszolgáló valamelyik régebbi verzióját telepítsük, vagy nem egy bináris disztribúciót akarunk telepíteni, akkor a hozzánk legközelebb eső földrajzi helyről töltsük le a legfrissebb forrásdisztribúciót. A disztribúció mindenkori neve: samba-latest.targz Bináris vagy forrás? Előre lefordított csomagok is rendelkezésünkre állnak nagy számú Unix platformhoz. Ezek a csomagok a Samba mindegyik végrehajtható fájljához tartalmazzák a binárisokat, valamint a standard Samba dokumentációt. Vegyük

figyelembe, hogy bár a bináris disztribúció telepítésével jelentős nehézségeket és időt takaríthatunk meg, vannak bizonyos dolgok, amelyeket érdemes fontolóra vennünk, amikor arról döntünk, hogy a bináris fájlokat használjuk-e, vagy magunk fordítsuk le a forrásfájlokat: • A bináris csomagok a szoftver legújabb változatához képest egy vagy két (esetleg több) alacsonyabb rendű változattal régebbiek lehetnek, és kisebb változtatásokat tartalmaznak néhány kevésbé népszerű platformhoz. Hasonlítsuk össze a forrás és a bináris kibocsátási dokumentációját, hogy meggyőződjünk arról, nincsenek a forrásban olyan új tulajdonságok, amelyekre szükségünk lehet a gépünkön. • Ha az előre lefordított binárisokat használjuk, akkor biztosítanunk kell, hogy rendelkezésre álljanak a végrehajtható fájlok által igényelt könyvtárak. Egyes platformokon a végrehajtható fájlok statikusan vannak csatolva, így ezeken ezzel nem

kell törődni. Más, modernebb Unix operációs rendszereken (mint például Linux, SGUIrix, Solaris, HP-UX stb.) viszont gyakran dinamikus csatolásúak a könyvtárak Ez azt jelenti, hogy a bináris a rendszerünkben az egyes könyvtárak megfelelő verzióját keresi, ezért lehet, hogy újabb verziójú könyvtárat kell telepítenünk. A bináris disztribúcióhoz tartozó README fájl vagy make-fájl sorolja fel a speciális követelményeket.* Számos, megosztott könyvtárt használó gépen létezik egy ldd nevű ügyes eszköz. Ez az eszköz megmondja, hogy egy adott bináris milyen könyvtárakat igényel, és a rendszerben lévő könyvtárak közül melyek felelnek meg ennek az igénynek. Így például a tesztgépünkön az smbd programot vizsgálva a következő eredményt kaptuk: $ ldd smbd libreadline.so3 => /usr/lib/libreadlineso3 libdl.so2 => /lib/libdlso2 libcrypt.so1 => /lib/libcryptso1 libc.so6 => /lib/libcso6 libtermcap.so2 => /lib/libtermcapso2

/lib/ld-linux.so2 => /lib/ld-linuxso2 * Ez különösen igaz azokra a programokra, amelyek a glibc-2.1 könyvtárat használják (ami standard része a Red Hat Linux 6-nak). Ez a könyvtár a kibocsátásakor meglehetős megdöbbenést keltett a fejlesztői közösségben, mert inkompatibilis volt a korábbi glibc verziókkal. 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 43 Ha bármilyen inkompatibilitás áll fenn a gépünkön a Samba és az adott könyvtárak között, akkor a disztribúcióhoz mellékelt dokumentációban kereshetjük meg a megoldást. • Ne feledkezzünk meg arról, hogy minden egyes bináris disztribúció előre adott értékeket tartalmaz a cél platformról, így például az alapértelmezés szerinti könyvtárakról és konfigurációs értékekről. Itt is szükséges tanulmányozni a dokumentációt és a forráskönyvtárban lévő make-fájlt, hogy lássuk, milyen opciókat és változókat használtak a bináris lefordításakor.

Bizonyos esetekben ezek nem felelhetnek meg a mi körülményeinknek Bizonyos konfigurációs elemek a fordítást követően, futásidőben is visszaállíthatók parancssori beállításokkal. Ha például a binárisunk bármelyik napló-, zároló vagy állapotjelentő fájlt ,,rossz” helyre akarja tenni (például a /usr/local könyvtárba), akkor ezt a beállítást újrafordítás nélkül is felülbírálhatjuk. Érdemes még megemlíteni, hogy a Samba forrása ANSI C fordítót igényel. Ha olyan platformon dolgozunk, amelyiken nem ANSI fordító van, hanem például a SunOS 4 verzió cc fordítója, akkor telepítenünk kell ennek az ANSI-kompatíbilis gcc változatát, mielőtt még bármit is tennénk.* Ha valaki nem akar egy fordítóprogram telepítésével bajlódni, az a bináris csomaggal is elkezdheti a munkát. Ha viszont a lehető legnagyobb fokú rugalmasságot és kompatibilitást szeretnénk elérni a rendszerünkben, akkor mindig ajánlatos a legutolsó forrás

lefordításával indulni. Olvassuk el a dokumentációt Ez eléggé nyilvánvalóan hangzik, és talán mondani sem kellene, de bizony sokan lehetnek közülünk, akik egyszerűen kicsomagolják a tömörített programokat, vakon beírják a configure, make és a make install varázsszavakat, majd mint akik jól végezték a dolgukat, kimennek a büfébe, meginni egy kávét. Valljuk be őszintén, hogy talán magunk is többször jártunk el így, mint ahányszor szabad lett volna. Helytelen módszer – főként akkor, ha egy Samba kiszolgálót tartalmazó hálózatot készülünk tervezni. A Samba 2.0 automatikusan konfigurálja saját magát még a fordítás előtt Ezzel csökken a gépspecifikus problémák valószínűsége, de a README fájlban lehet egy olyan beállítás, amit a Samba telepítését követően akarunk elvégezni. A forrás- és a bináris csomagok mellett a docs könyvtárban nagy számban találhatók különböző formátumú dokumentumok A

disztribúcióban a legfontosabb tanulmányozandó fájlok: WHATSNEW.txt docs/textdocs/UNIX INSTALL.txt Ezek a fájlok megmondják, hogy milyen tulajdonságok várhatók az adott Samba disztribúciótól, és ráirányítják a figyelmet azokra az általános telepítési problémákra, amelyekkel esetleg szembe kell néznünk. Feltétlenül tanulmányozzuk át ezeket a dokumentumokat, mielőtt nekilátnánk a fordítási műveletnek. * gcc binárisok szinte minden modern géphez rendelkezésre állnak. A http://wwwgnuorg/ címen felsorolás olvasható azokról a webhelyekről, ahol elérhetők a gcc és más GNU szoftver 44 | SAMBA A Samba konfigurálása A Samba 2.0 és az e feletti verziók forrásdisztribúciója eredendően nem tartalmaz makefájlt Ezt egy GNU configure szkript generálja, ami a samba-20x/source könyvtárban található A configure szkript, amelynek rootként kell futnia, gondoskodik a Samba gépspecifikus felépítéséről Emellett azonban, ha akarjuk,

magunk is dönthetünk néhány globális beállításról. A globális beállításokat parancssori paraméterek átadásával végezhetjük el: # ./configure --with-ssl Ezzel például úgy konfigurálhatjuk a Sambát, hogy támogassa az SSL (Secure Sockets Layer) titkosító protokollt. Ha látni szeretnénk a beállítási lehetőségek teljes listáját, akkor írjuk be a következőt: # ./configure --help E beállítások mindegyike különböző képességeket engedélyez vagy tilt. Egy képesség engedélyezéséhez a --with-képesség toldalékot kell beírni. Ekkor az adott képesség lefordításra és telepítésre kerül. Ehhez hasonlóan egy képesség tiltásához a --withoutképesség toldalékot kell beírni A Samba 205 változatában alapbeállítás szerint a következő képességek mindegyike tiltva van: --with-smbwrapper Tartalmazza az SMB wrapper támogatást, ami lehetővé teszi, hogy a végrehajtható fájlok a Unix oldalon úgy férhessenek hozzá az

SMB/CIFS fájlrendszerekhez, mintha ezek normál Unix fájlrendszerek lennének. Ajánlott ennek a képességnek az engedélyezése. Meg kell azonban jegyezni, hogy a könyv nyomdába adásakor különböző inkompatibilitások álltak fenn az smbwrapper és a libc GNU 21-es verziója között, és nem volt lefordítható. Ezekről az inkompatibilitásokról további információk a Samba honlapján olvashatók --with-afs Tartalmazza a Carnegie Mellon egyetemről származó Andrew fájlrendszert. Ha valaki a Samba segítségével AFS fájlokat is kezelni akar, annak az javasolható, hogy a Sambát először e tulajdonság engedélyezése nélkül fordítsa le, hogy meggyőződjön, minden rendben van-e. Ha kifogástalanul működik a változata, akkor újra fordítsa le a Sambát, most már engedélyezve ezt a tulajdonságot, és hasonlítsa össze az ekkor észlelt hibákat az előző telepítéskor észlelt hibákkal. --with-dfs Tartalmazza a DFS-t, ami az AFS egy későbbi

verziója, és OSF/1 (Digital Unix) platformon használható. Jegyezzük meg, hogy ez nem azonos a Microsoft DFS rendszerével, hanem teljes mértékben eltér attól Ebben az esetben is az javasolható, hogy először a tulajdonság engedélyezése nélkül fordítsuk le a Sambát, hogy lássuk, minden rendben van-e, és csak ezt követően fordítsuk le újból, engedélyezve ezt a tulajdonságot, és most is hasonlítsuk össze a hibákat. 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 45 --with-krb4=base-directory Tartalmazza a Kerberos 4.0 verzió támogatását, valamint a disztribúció alapkönyvtárát is specifikálja A Kerberos a MIT által kifejlesztett hálózati biztonsági protokoll, ami a privát kulcsú titkosítást végzi el a csomópontok közötti szigorú biztonság megteremtéséhez. Egyébként a Microsoft bejelentette, hogy Kerberos 50 lesz a Microsoft Windows 2000 (NT 50) szabványos hitelesítő mechanizmusa Ugyanakkor a Kerberos 5.0 hitelesítő

mechanizmusa meglehetősen eltér a Kerberos 40 hitelesítő mechanizmusától. Ha telepítve van a rendszerünkben a Kerberos 40 verzió, akkor a Samba fejlesztő csoportja azt javasolja, hogy frissítsük azt, és a --with-krb5 opciót használjuk (lásd a következő bekezdést). A Kerberosról további információk a http://web.mitedu/kerberos/www címen találhatók --with-krb5=base-directory Tartalmazza a Kerberos 5.0 verzió támogatását, valamint a disztribúció alapkönyvtárát is specifikálja A Microsoft bejelentette, hogy a Kerberos 50 lesz a Microsoft Windows 2000 (NT 5.0) szabványos hitelesítő mechanizmusa Ugyanakkor azonban nem garantálható, hogy a Microsoft a jövőben nem fogja a Kerberost a saját igényei szerint bővíteni. Jelenleg a Samba Kerberosa csak a normál szövegű jelszóinterfész használatát támogatja, a titkosítottat nem A Kerberosról további információk a http://webmitedu/kerberos/www címen találhatók --with-automount Tartalmazza

az automount támogatást – ezt a tulajdonságot gyakran használják olyan helyeken, ahol NFS található. --with-smbmount Tartalmazza az smbmount támogatást, ami csak a Linuxnál létezik. A könyv írásának idején ezzel a tulajdonsággal nem foglalkoztak, ehelyett a Samba fejlesztő csoportja az smbwrapper képességet bocsátja a rendelkezésünkre. Az smbwrapper több Unix platformon használható, mint az smbmount, ezért helyette inkább a --withsmbwrapper opciót használjuk. --with-pam Tartalmazza a beépíthető hitelesítési modulokat (pluggable authentication modules, PAM), ami általánosan használt hitelesítést jelent a Linux operációs rendszerben. --with-ldap Tartalmazza az LDAP (Lightweight Directory Access Protocol) protokollt. A LDAP jövőbeli verzióját a Windows 2000 (NT 5.0) operációs rendszer fogja használni; a Samba támogatása csak kísérleti jellegű. Az LDAP rugalmas ügyfélkiszolgáló könyvtárprotokoll, ami olyan információkat

továbbíthat, mint a hitelesítések és a csoporttagságok* * A könyvtár itt nem egy fájlrendszer könyvtárát jelenti, hanem inkább egy névjegyzéket, amilyen például egy telefonkönyv. Az ebben tárolt információk egyszerűen lekérdezhetők egy nyilvános LDAP rendszerben 46 | SAMBA --with-nis Tartalmazza azt a támogatást, amelynek segítségével jelszófájl-információk szerezhetők egy NIS-ből (Yellow Pages). --with-nisplus Tartalmazza azt a támogatást, amelynek segítségével jelszófájl-információk szerezhetők egy NIS+-ból (ez a NIS utódja). --with-ssl Tartalmazza az SSL (Secure Sockets Layer) kísérleti támogatását. Ez a protokoll titkosított kapcsolatokat hoz létre az ügyfél és a kiszolgáló között A Samba konfigurálása SSL protokollal című A függelék írja le, hogy miként telepíthető a Samba SSL támogatással. --with-nisplus-home Tartalmazza azt a támogatást, amelynek segítségével megkereshető, hogy melyik

kiszolgáló tárolja egy adott felhasználó home könyvtárát, és lehetővé teszi a kapcsolódását. Igényli a --with-nis és általában a --with-automounter opciót --with-mmap Tartalmazza a kísérleti memórialeképzési kódot. Ez nem szükséges a gyors zároláshoz, ami már használja az mmap-t vagy a System V megosztott memóriáját --with-syslog Tartalmazza azt a támogatást, amellyel használható a SYSLOG segédprogram a Samba kiszolgáló által generált információk naplózásához. A Sambában egy sor olyan konfigurációs beállítás létezik, amelyet használva engedélyezhető a SYSLOG támogatása. A ,,Lemezmegosztások” című 4 fejezet tárgyalja ezeket a beállításokat --with-netatalk Tartalmazza azt a kísérleti támogatást, amelynek segítségével közös műveletek végezhetők a (Macintosh) Netatalk fájlkiszolgálóval. --with-quotas Tartalmazza a lemezkvóták támogatását. Mivel ezek az opciók alapbeállítás szerint tiltottak, az

általuk megvalósítható képességek egyike sem döntő fontosságú a Samba számára. Előfordulhat azonban, hogy időközben talál valaki néhány hasznos dolgot közülük, és vissza akar térni a kiindulási ponthoz, hogy eszerint módosítsa a saját verzióját. A 2.1 táblázat néhány további paramétert sorol fel, amelyek szintén átadhatók a configure szkriptnek, ha a Samba disztribúció egyes részeit különböző helyeken akarjuk tárolni, talán azért, mert több lemezt vagy partíciót akarunk használni Figyeljük meg, hogy az alapbeállítások esetenként olyan előtagokra hivatkoznak, amelyek korábban specifikálva lettek a táblázatban. 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 47 2.1 táblázat További konfigurációs beállítások Beállítás Jelentése Alapértelmezett könyvtár --prefix=könyvtár Architektúrafüggetlen fájlok telepítése a megadott alapkönyvtárba. Architektúrafüggő fájlok telepítése a megadott

alakönyvtárba. Felhasználói végrehajtható fájlok telepítése a megadott könyvtárba. Rendszergazdai végrehajtható fájlok telepítése a megadott könyvtárba. Programokhoz kapcsolódó végrehajtható fájlok telepítése a megadott könyvtárba. Csak olvasható, architektúrafüggetlen fájlok telepítése a megadott könyvtárba. Program-függvénytárak telepítése a megadott könyvtárba. Include fájlok telepítése a megadott könyvtárba. Információs fájlok telepítése a megadott könyvtárba. Kézikönyv telepítése a megadott könyvtárba. /usr/local/samba --eprefix=könyvtár --bindir=könyvtár --sbindir=könyvtár --libexecdir=könyvtár --datadir=könyvtár --libdir=könyvtár --includedir=könyvtár --infodir=könyvtár --mandir=könyvtár /usr/local/samba eprefix/bin eprefix/bin eprefix/libexec prefix/share eprefix/lib prefix/include prefix/info prefix/man Most is érvényes, hogy mielőtt futtatnánk a configure szkriptet, mi legyünk a

rendszerben a rootfelhasználók. Ellenkező esetben az alábbihoz hasonló hibaüzenetet kaphatjuk: configure: warning: running as non-root will disable some tests (figyelmeztetés: nem rootként futtatáskor néhány teszt nem végezhető el) Bizonyára nem szeretnénk, ha a Samba make-fájl létrehozásakor nem futhat le néhány teszt, mert ekkor potenciális hibákkal kell számolnunk a Samba lefordításakor és futtatásakor. Az alábbiakban egy példa látható a configure szkript futtatására – ez a szkript hozza létre a Samba 2.04 make-fájlt Linux platformon Figyeljük meg, hogy a configure szkriptet a source könyvtárból kell futtatnunk, továbbá azt is, hogy a fájl középső sorai kimaradtak: # cd samba-2.04b/source/ # ./configure | tee mylog loading cache ./configcache 48 | SAMBA checking checking checking checking checking checking for gcc. (cached) gcc whether the C compiler (gcc -O ) works. yes whether the C compiler (gcc -O ) is a cross-compiler. no

whether we are using GNU C. (cached) yes whether gcc accepts -g. (cached) yes for a BSD compatible install. (cached) /usr/bin/install -c (kihagyott tartalom) checking configure summary configure OK creating ./configstatus creating include/stamp-h creating Makefile creating include/config.h Általánosságban a configure minden olyan sora, amelyik nem a checking vagy a creating szóval kezdődik, hibaüzenet. Gyakran hasznos, ha a konfiguráló szkript kimenetét átirányítjuk egy fájlba, hogy gyorsan megtalálhassuk a hibákat, amint ezt a fentiekben a tee paranccsal tettük. Ha hiba lépett fel a konfigurálás során, akkor erről bővebb információt a configlog fájlban találhatunk, amit a configure szkript hoz létre a helyi könyvtárban Ha rendben megtörtént a konfigurálás, akkor egy checking configure üzenetet kapunk, amit egy configure OK üzenet, majd négy vagy öt további üzenet követ, amelyek fájlok létrehozásáról tájékoztatnak. Eddig megvolnánk A

következő lépés a fordítás A Samba fordítása és telepítése Ezen a ponton már készen állunk a Samba végrehajtható fájljainak létrehozására. A fordítás ugyancsak egyszerű művelet: a source könyvtárban írjuk be a parancssorba a make parancsot. A make segédprogram egy sor magyarázó és sikerekről tájékoztató üzenetet ír a képernyőre az alábbi sorral kezdve: Using FLAGS = -O -Iinclude . Ez a segédprogram mind az smbd, mind az nmbd részére elvégzi a szükséges fordításokat, és a bin/make printerdef összeszerkesztő parancssorral fejeződik be. A következő példa a make parancs üzeneteit mutatja be a Sambának egy 2.04 Linux kiszolgálóra történő telepítésekor: # make Using FLAGS = -O -Iinclude -I./include -I/ubiqx -I/smbwrapper -DSMBLOGFILE="/usr/local/samba/var/log.smb" -DNMBLOGFILE="/usr/local/ /samba/var/log.nmb" -DCONFIGFILE="/usr/local/samba/lib/smbconf"

-DLMHOSTSFILE="/usr/local/samba/lib/lmhosts" -DSWATDIR="/usr/local/ /samba/swat" -DSBINDIR="/usr/local/samba/bin" -DLOCKDIR="/usr/local/ 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 49 /samba/var/locks" -DSMBRUN="/usr/local/samba/bin/smbrun" -DCODEPAGEDIR="/usr/local/samba/lib/codepages" -DDRIVERFILE="/usr/ /local/samba/lib/printers.def" -DBINDIR="/usr/local/samba/bin" -DHAVE INCLUDES H -DPASSWD PROGRAM="/bin/passwd" -DSMB PASSWD FILE=" /usr/local/samba/private/smbpasswd" Using FLAGS32 = -O -Iinclude I./include -I/ubiqx -I/smbwrapper -DSMBLOGFILE="/usr/local/samba/ /var/log.smb" -DNMBLOGFILE="/usr/local/samba/var/lognmb" -DCONFIGFILE="/usr/local/samba/lib/smb.conf" -DLMHOSTSFILE="/usr/ /local/samba/lib/lmhosts" -DSWATDIR="/usr/local/samba/swat" -DSBINDIR="/usr/local/samba/bin" -DLOCKDIR="/usr/local/samba/

/var/locks" -DSMBRUN="/usr/local/samba/bin/smbrun" -DCODEPAGEDIR=" /usr/local/samba/lib/codepages" -DDRIVERFILE="/usr/local/samba/ /lib/printers.def" -DBINDIR="/usr/local/samba/bin" -DHAVE INCLUDES H -DPASSWD PROGRAM="/bin/passwd" -DSMB PASSWD FILE="/usr/local/samba/ /private/smbpasswd" Using LIBS = -lreadline -ldl -lcrypt -lpam Compiling smbd/server.c Compiling smbd/files.c Compiling smbd/chgpasswd.c (kihagyott tartalom) Compiling rpcclient/cmd samr.c Compiling rpcclient/cmd reg.c Compiling rpcclient/cmd srvsvc.c Compiling rpcclient/cmd netlogon.c Linking bin/rpcclient Compiling utils/smbpasswd.c Linking bin/smbpasswd Compiling utils/make smbcodepage.c Linking bin/make smbcodepage Compiling utils/nmblookup.c Linking bin/nmblookup Compiling utils/make printerdef.c Linking bin/make printerdef Ha a fordítás során problémáink lennének, akkor nézzünk utána a Samba dokumentációjában, hogy könnyen orvosolható-e

a baj. Másik lehetőség, hogy nézzük át vagy írjunk levelet a Samba levelezőlistáira, amelyek címe a ,,Hibakeresés a Sambában” című 9. fejezet végén, és a Samba honlapján található. A fordítással kapcsolatos problémák többsége rendszerspecifikus, és szinte mindig könnyen megoldható. Most, hogy már lefordítottuk a fájlokat, a # make install paranccsal telepíthetjük őket a megadott könyvtárakba. Ha történetesen frissítünk, akkor a régi Samba fájlok .old kiterjesztéssel megmaradnak, és a make revert parancs kiadásá- 50 | SAMBA val visszatérhetünk az előző verzióhoz. Miután a make install parancs elvégezte a feladatát, az old fájlokat (amennyiben vannak ilyenek) másoljuk át új helyre, vagy nevezzük át őket. Ugyanis ha nem tennénk így, akkor a Samba legközelebbi telepítésekor az eredeti .old fájlok minden figyelmeztetés nélkül felülíródnának, és elveszítenénk a korábbi verziót Ha úgy konfiguráltuk a

Sambát, hogy a fájlokhoz az alapbeállítás szerinti könyvtárakat használtuk, akkor az új fájlok a 2.2 táblázatban felsorolt könyvtárakba települnek Ne feledjük, hogy a telepítést olyan felhasználói jogosultságokkal kell elvégeznünk, melyekhez e célkönyvtárakra vonatkozóan írási jogok tartoznak. Ezekkel általában a root rendelkezik 2.2 táblázat A Samba telepítési könyvtárai Könyvtár Leírás /usr/local/samba /usr/local/samba/bin /usr/local/samba/lib /usr/local/samba/man /usr/local/samba/private /usr/local/samba/swat /usr/local/samba/var Fő fa Binárisok smb.conf, lmhosts, konfigurációs fájlok stb Samba dokumentáció Samba titkosított jelszófájlja SWAT fájlok Samba naplófájlok, zárolási fájlok, tallózólista, megosztott memóriafájlok, processz ID fájlok A könyv további részében esetenként a fő fa helyére samba dir néven hivatkozunk. A legtöbb konfigurációban ez a telepített Samba csomag alapkönyvtára:

/usr/local/samba. Ellenőrizzük, hogy nem tettük-e írásvédetté a /usr partíciót. A napló-, zárolási és jelszófájlokat valószínűleg máshová akarjuk elhelyezni. Az alábbiakban az a telepítés látható, amit e könyv szerzői végeztek a saját gépükön. Látható, hogy a disztribúció alapkönyvtáraként a /usr/local/samba könyvtárat használták (vagyis a samba dir könyvtárat): # make install Using FLAGS = -O -Iinclude -I./include -I/ubiqx -I/smbwrapper -DSMBLOGFILE="/usr/local/samba/var/log.smb" -DNMBLOGFILE="/usr/local/ /samba/var/log.nmb" -DCONFIGFILE="/usr/local/samba/lib/smbconf" - (kihagyott tartalom) The binaries are installed. You may restore the old binaries (if there were any) using the command "make revert". You may uninstall the binaries using the command "make uninstallbin" or "make uninstall" to uninstall binaries, man pages and shell scripts. 2. FEJEZET A SAMBA TELEPÍTÉSE

UNIX RENDSZERRE | 51 (kihagyott tartalom) =============================================================== The SWAT files have been installed. Remember to read the README for information on enabling and using SWAT. =============================================================== Ha az utolsó üzenet a SWAT-ról szól, akkor tudhatjuk, hogy sikeresen telepítettük az öszszes fájlt. Gratulálhatunk magunknak: a Samba már a rendszerünkben van! Az utolsó telepítési lépések Még néhány utolsó simítást el kell végezni. Vegyük fel például a Samba Web Administration Tool (SWAT) nevű eszközt az /etc/services és az /etc/inetdconf konfigurációs fájlok közé. A SWAT démonként az inetd alatt fut Segítségével egy webböngésző használható az SMB konfigurációs fájlok szerkesztésére vagy módosítására. 1. A SWAT felvételéhez írjuk be az alábbi sort az /etc/services fájl végére: swat 901/tcp 2. Írjuk be az alábbi sort az /etc/inetdconf fájlba

(Ellenőrizzük az inetdconf kézikönyvében az inetdconf konfigurációs fájl pontos formátumát, hogy nem tér-e el az alábbi példától.) Ne feledkezzünk meg arról, hogy át kell váltanunk a SWAT binárist tartalmazó elérési útra, ha azt nem az alapértelmezés szerinti /usr/local/samba helyre telepítettük. swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat Ezzel már tényleg végeztünk a telepítéssel. Mielőtt azonban elindíthatnánk a Sambát, még el kell készítenünk hozzá egy konfigurációs fájlt. A Samba alapvető konfigurációs fájlja A Samba konfigurálásának kulcspontja az smb.conf konfigurációs fájl Ez lehet nagyon egyszerű, és rendkívül összetett is. A könyv további része javarészt abban segíti az olvasót, hogy közvetlen közelről is megismerkedjen ezzel a fájllal. Először kezdjük egy egyszerű fájllal, ami lehetővé teszi, hogy elinduljanak a Samba démonjai, és lássuk, hogy minden úgy történik, ahogyan

lennie kell. A további fejezetekben arról olvashatunk, miként konfigurálhatjuk többrétűen a Sambát, és miként bízhatunk rá érdekes feladatokat A telepítési folyamat nem hozza létre automatikusan az smb.conf fájlt, bár bizonyos mintafájlokat tartalmaz a Samba disztribúció. A kiszolgáló szoftver teszteléséhez az alábbi fájlt fogjuk használni. A fájl neve smbconf, és a /usr/local/samba/lib könyvtárban van* [global] workgroup = SIMPLE * Ha az olvasó nem fordította volna le a Sambát, hanem ehelyett letöltött egy binárist, akkor olvassa át a csomaghoz tartozó dokumentációt, és nézze meg, hogy hol várja a Samba az smb.conf fájlt Ha a Sambát előre telepítve kapta meg a Unix rendszerével együtt, akkor feltehetően már van valahol a rendszerében egy smb.conf fájl 52 | SAMBA [test] comment = For testing only, please path = /export/samba/test read only = no guest ok = yes Ez a rövid konfigurációs fájl azt mondja meg a Samba

kiszolgálónak, hogy a kiszolgáló az /export/samba/test könyvtárát test néven ajánlja fel SMB/CIFS megosztásként. A kiszolgáló egyúttal a SIMPLE nevű munkacsoport tagja is lesz, és az ügyfeleinek is tagoknak kell lenniük. (Az olvasó használja itt a saját munkacsoportja nevét, ha már ismeri azt) A könyv következő, a Windows ügyfelek telepítéséről szóló fejezetében a [test] megosztást használjuk. Itt most a telepítést a Unix kiszolgáló gyökeréből kiadott alábbi parancsok végrehajtásával fejezzük be: # mkdir /export/samba/test # chmod 777 /export/samba/test Meg kell jegyeznünk itt, hogy a rendszer biztonsága tekintetében ez a legrosszabb telepítési lehetőség. Pillanatnyilag azonban csak tesztelni akarjuk a Sambát, ezért egyelőre ne foglalkozzunk biztonsági kérdésekkel. Továbbá a jelszavak titkosításával kapcsolatban van néhány olyan téma, amelyekkel a későbbiekben, a Windows ügyfelek kapcsán fogunk találkozni,

úgyhogy ez az a telepítés, ami a legkevesebb fejfájást okozza. Ha az olvasó a Windows 98 vagy a Windows NT Service Pack 3-as vagy újabb verzióját használja, akkor a Samba konfigurációs fájl [global] szakaszába a következő bejegyzést kell beírnia: encrypt passwords = yes. Ezen túlmenően le kell futtatni a smbpasswd programot (ez tipikusan a /usr/local/samba/bin/ könyvtárban van), és újból be kell írnia a Unix kiszolgálón lévő azon felhasználók felhasználónév/jelszó kombinációját, akik számára lehetővé akarja tenni, hogy hozzáférjenek a Samba titkosított ügyféladatbázisában lévő megosztásokhoz. Ha például azt szeretné, hogy a steve nevű Unixos felhasználó hozzáférhessen egy SMB ügyfél megosztásaihoz, akkor a következőt kell beírnia: smbpasswd -a steve. Az első alkalommal, amikor felvesz egy felhasználót, a program egy hibaüzenetben közli, hogy a titkosított jelszóadatbázis nem létezik. Nem kell aggódni emiatt,

mert a program majd elkészíti Győződjön meg arról, hogy a titkosított adatbázisba felvett felhasználónév/jelszó kombináció megegyezik azzal a kombinációval, amit a Windows ügyfél oldalon használni szándékozik. SWAT A Samba 2.0 verzióját használva egyszerűbben is elkészíthető a konfigurációs fájl, mint ha kézzel írnánk meg. A böngészőnkből lépjünk rá a http://localhost:901 webcímre, és root felhasználónévvel jelentkezzünk be, amint ez a 2.1 ábrán látható: 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 53 2.1 ábra Bejelentkezés a SWAT-be Miután bejelentkeztünk, kattintsunk a képernyő tetején látható GLOBAL gombra. Ekkor megjelenik a 2.2 ábrán látható Global Variables oldal 2.2 ábra A SWAT Global Variables oldala 54 | SAMBA Ebben a példában a munkacsoport nevének mezőjébe a SIMPLE, a biztonsági mezőbe pedig a USER nevet írtuk be. A menüben ezek mellett már csak egyetlen beállítást kell

megváltoztatni, mégpedig azt, amelyik meghatározza, hogy a helyi hálózatban melyik rendszer oldja fel a NetBIOS címeket. Ennek a rendszernek WINS server a neve Az oldal legalján, a wins support mezőben a Yes választ állítsuk be, hacsak nincs már egy WINS kiszolgáló a hálózatunkban. Ha lenne, akkor ehelyett a wins server mezőbe írjuk be a WINS kiszolgáló IP címét. Ezt követően lépjünk vissza az oldal tetejére, és a Commit Changes gombra kattintva írjuk ki a változtatásokat az smbconf fájlba 2.3 ábra A SWAT megosztáskészítő képernyője Következő lépésként kattintsunk a Shares ikonra. Ekkor a 23 ábrán láthatóhoz hasonló oldal jelenik meg. Kattintsunk a Choose Share gomb melletti Test mezőre Ekkor megjelenik a 24 ábrán látható Share Parameters képernyő A comment sorba beírt megjegyzéssel emlékeztetjük magunkat arra, hogy ez egy test nevű megosztás az smbconf fájlban A SWAT ide másolja be ezeket az információkat. Ha

rákattintunk a View gombra, a SWAT az alábbi smb.conf fájlt listázza ki: # Samba config file created using SWAT # from localhost (127.001) # Date: 1998/11/27 15:42:40 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 55 2.4 ábra A SWAT Share Parameters képernyője # Global parameters workgroup = SIMPLE [test] comment = For testing only, please path = /export/samba/test read only = no guest ok = yes Miután elkészült ez a konfigurációs fájl, átugorhatjuk a következő lépést, mert a SWAT garantáltan helyes szintaxist használ. A konfigurációs fájl tesztelése Ha a konfigurációs fájl elkészítéséhez nem a SWAT segítségét vettük igénybe, akkor célszerű tesztelnünk a fájlt, hogy nincs-e szintaktikai hiba benne. Lehet, hogy gyerekesnek tűnik egy mindössze nyolc sorból álló fájlra lefuttatni egy tesztprogramot, de jó, ha ez gyakorlatunkká válik, mert a későbbiekben, amikor egy, a valóságban is használni kívánt fájlt megírunk, már

nem nélkülözhetjük. 56 | SAMBA A testparm nevű elemző program szintaktikai hibákat keres egy smb.conf fájlban, és ha talál ilyeneket, akkor megjeleníti ezeket azokkal a szolgáltatásokkal együtt, amelyek engedélyezve vannak a gépünkön. Következzék egy példa: vegyük észre, hogy a nagy igyekezetben a workgroup szót hibásan, workgrp alakban írtuk be (a program listája meglehetősen hosszú lehet, ezért ajánlható, hogy az utolsó részeket a tee parancs beírásával irányítsuk át egy fájlba): Load smb config files from smb.conf Unknown parameter encountered: "workgrp" Ignoring unknown parameter "workgrp" Processing section "[test]" Loaded services file OK. Press enter to see a dump of your service definitions # Global parameters [global] workgroup = WORKGROUP netbios name = netbios aliases = server string = Samba 2.05a interfaces = bind interfaces only = No (kihagyott tartalom) [test] comment = For testing only, please

path = /export/samba/test read only = No guest ok = Yes Az érdekes részek a lista elején és a végén vannak. A lista elején kiírásra kerülnek azok a szintaktikai hibák, amelyeket a fájlban elkövettünk, a végén pedig felsorolást kapunk azokról a szolgáltatásokról, amelyekről a kiszolgáló feltételezi, hogy fel tudja kínálni. Jó tanács: győződjünk meg arról, hogy a mi és a kiszolgáló elvárásai egybeesnek. Ha minden rendben volt, akkor nekifoghatunk elindítani a kiszolgáló démonjait. A Samba démonjainak indítása Két Samba démon van, az smbd és az nmbd, amelyeknek futniuk kell ahhoz, hogy helyesen működjön a Samba. Ezek háromféle módon indíthatók el: • kézzel; • önmagukban álló démonokként; • az inetd szuperdémonból. 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 57 A démonok kézi indítása Ha nagyon sietünk, akkor a Samba démonjait kézzel is elindíthatjuk. Rootként írjuk be a következő parancsokat:

# /usr/local/samba/bin/smbd -D # /usr/local/samba/bin/nmbd -D Ettől a ponttól kezdve a Samba futni fog a rendszerünkben, és kész arra, hogy kapcsolatokat építsen fel. Önmagukban álló démonok Ha a Samba műveleteket önmagukban álló démonokként akarjuk futtatni, akkor az előző részben felsorolt parancsokat fel kell vennünk a standard Unix-indító szkriptekbe. Ez különbözőképpen történhet meg attól függően, hogy BSD-stílusú vagy System V Unix rendszerünk van-e BSD Unix BSD-stílusú Unix esetében az alábbi kódot kell felvenni az rc.local fájlba, ami tipikusan az /etc vagy az /etc/rc.d könyvtárban található: if [ -x /usr/local/samba/bin/smbd]; then echo "Starting smbd." /usr/local/samba/bin/smbd -D echo "Starting nmbd." /usr/local/samba/bin/nmbd -D fi Ez a kód nagyon egyszerű: megvizsgálja, hogy az smbd fájlnak van-e végrehajthatósági engedélye, és ha van, akkor a rendszer indításakor elindítja mindkét Samba

démont. System V Unix A System V Unix rendszer esetében a dolgok már kicsit bonyolultabbak. A System V tipikusan olyan szkripteket használ, amelyek elindítanak és leállítanak démonokat a rendszeren Ezért nekünk kell megmondanunk a Sambának, hogy miként működjön, amikor elindul, és amikor leáll. Módosíthatjuk az /etc/rclocal könyvtár tartalmát, és az alábbihoz hasonló kódot vehetjük fel az smb programba: #!/bin/sh # Contains the "killproc" function on Red Hat Linux ./etc/rcd/initd/functions PATH="/usr/local/samba/bin:$PATH" 58 | SAMBA case $1 in ’start’) echo "Starting smbd." smbd -D echo "Starting nmbd." nmbd -D ;; ’stop’) echo "Stopping smbd and nmbd." killproc smbd killproc nmbd rm -f /usr/local/samba/var/locks/smbd.pid rm -f /usr/local/samba/var/locks/nmbd.pid ;; *) echo "usage: smb {start|stop}" ;; esac Ezt a szkriptet elkészítve a következő parancsokkal indíthatjuk el és

állíthatjuk le az SMB szolgáltatást: # /etc/rc.local/smb start Starting smbd. Starting nmbd. # /etc/rc.local/smb stop Stopping smbd and nmbd. Indítás az inetd démonból Az inetd démon a Unix rendszer internetes ,,szuperdémonja". Ez az /etc/services fájlban definiált TCP portokat figyeli, és minden egyes portra végrehajtja az /etc/inetd.conf fájlban definiált megfelelő programot. Ennek az elrendezésnek az az előnye, hogy nagy számban lehetnek felkérésre készen várakozó démonjaink, amelyeknek azonban nem kell egyidejűleg futniuk. E démonok helyett az inetd démon figyeli a felkéréseket Ennek fejében mindössze annyi a teendőnk, hogy létre kell hoznunk egy új démon processzt, és egy helyett két fájlt kell szerkesztenünk. Ez akkor használható, ha csak egy vagy két felhasználónk van, vagy ha túl sok démon van a gépünkön Így egy frissítést is könnyebb végrehajtani, anélkül, hogy megzavarnánk egy meglévő kapcsolatot Ha a

démonokat az inetd démonból akarjuk indítani, akkor először nyissuk meg a szövegszerkesztőnkben az /etc/services fájlt. Ha még nem definiáltuk az alábbiakat, akkor vegyük fel bele a következő két sort: netbios-ssn netbios-ns 139/tcp 137/udp 2. FEJEZET A SAMBA TELEPÍTÉSE UNIX RENDSZERRE | 59 Következő lépésként szerkesszük az /etc/inetd.conf fájlt Keressük meg az alábbi két sort, és ha nem léteznének, akkor írjuk be őket. Ha már van egy smbd és nmbd sor a fájlban, akkor úgy szerkesszük őket, hogy az általunk telepített új smbd és nmbd démonra mutassanak. A különböző Unix változatok egymástól némileg eltérő szintaxist használhatnak ebben a fájlban; útmutatóul nézzük meg a meglévő bejegyzéseket és az inetd.conf kézikönyvét: netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd Végezetül zárjuk le az összes smbd vagy nmbd processzt, és

küldjünk az inetd processznek egy leállítás (hangup, HUP) jelet. (Az inetd démon a HUP jel beérkezésekor újraolvassa a konfigurációs fájlt) Ehhez a ps paranccsal keressük meg a processzazonosítóját (ID), és az alábbi parancs kiadásával küldjük el a leállító jelet: # kill -HUP process id Ezt követően összeállnak a részprogramok, és elindul a Samba. A Samba démonok tesztelése Talán alig hihető, de már szinte mindent elvégeztünk a Samba kiszolgáló telepítéséhez. Már csak az van hátra, hogy meggyőződjünk mindennek a helyes működéséről. Ennek egyik kényelmes módja az smbclient program futtatása, amelynek segítségével megvizsgálhatjuk, hogy milyen szolgáltatásokat képes nyújtani a kiszolgáló a hálózaton. Ha minden rendesen működik, akkor képesnek kell lennünk a következőre: # smbclient -U% -L localhost Ha minden rendben volt, akkor a program arról tájékoztat, hogy a Hydra kiszolgáló Simple munkacsoportjában

létrejött egy test nevű lemezmegosztás. Ha bármilyen probléma lépne fel, ne essünk pánikba! Próbáljuk meg kézi módon elindítani a démonokat, és vizsgáljuk meg a rendszer kimenő üzeneteit, vagy nézzük át a /usr/local/samba/var/log.smb könyvtárban lévő fájlokat, hogy megállapíthassuk, mi történt Ha komolyabb hibára gyanakszunk, akkor ugorjunk át a ,,Hibakeresés a Sambában” című 9. fejezetre, és nézzük meg, milyen hibák fordulhatnak elő a démonokkal kapcsolatban Ha nem volt hiba, vagy az előfordult hibákat sikerült kijavítani, akkor ezzel sikeresen befejeztük a lemezmegosztást kínáló Samba kiszolgáló telepítését. Ez ugyan egy egyszerű szolgáltatás, de már használhatjuk arra, hogy a következő fejezetben telepítsük és teszteljük a Windows 95 és NT ügyfeleket. A későbbiekben aztán tovább bővítjük a szolgáltatások körét olyan kínálatokkal, mint a home könyvtárak, nyomtatók, biztonság, és azt is látni

fogjuk, miként integrálható a kiszolgáló egy nagyobb Windows tartományba. Windows ügyfelek konfigurálása Örömünkre szolgálhat, hogy eléggé egyszerűen konfigurálhatjuk úgy a Windowst, hogy használni tudjuk az új Samba kiszolgálónkat. Az SMB ugyanis a Microsoftnak a helyi hálózatok erőforrásainak megosztásához használt saját nyelve, úgyhogy a telepítés jó része már megtörtént a Windows ügyféloldalán. Ebben a fejezetben főként olyan témákkal foglalkozunk, amelyek a Windows és a Unix – két, egymástól teljesen különböző operációs rendszer – közötti kommunikációval és koordinációval kapcsolatosak. A Samba a TCP/IP protokollt használja ahhoz, hogy kommunikáljon a hálózaton az ügyfeleivel. Ha az olvasó még nem használta volna a TCP/IP protokollt a Windows rendszerű számítógépén, akkor ebben a fejezetben megtudhatja, hogyan telepítheti ezt Ezt követően úgy kell konfigurálni a Windows gépet, hogy

működjön egy TCP/IP protokollt használó hálózatban. Miután teljesült ez a két előfeltétel, megtudjuk, miként érhető el a Samba kiszolgálón egy megosztott lemez. A fejezet három fő részből áll. Az első rész a Windows 95/98 számítógépek, a második a Windows NT 4.0 gépek beállítását mutatja be A harmadik rész néhány előzetes információt ad arról, hogy miként épülnek fel az SMB kapcsolatok a Windows ügyfelek és a kiszolgálók között. Ezek az információk a könyv további fejezeteinek megértéséhez lesznek hasznosak Windows 95/98 számítógépek beállítása A Windows 95/98 rendszert sajnos nem úgy tervezték meg, hogy egynél több személy is használhassa – ez a koncepció sokkal inkább a Unix vagy a Windows NT rendszerben valósul meg. Ennek ellenére a Windows 95/98 rendszer korlátozott módon azért támogatja a többfelhasználós üzemmódot: ha közöljük az operációs rendszerrel ezt a kívánságunkat, akkor minden

egyes felhasználó számára elkészít egy saját profilt és jelszófájlt Ez azonban nagyon távol áll az igazi többfelhasználós biztonságtól. Másként kifejezve a Windows 95/98 – a Unixtól eltérően – nem akadályozza meg, hogy az egyik felhasználó tönkretegye egy másik felhasználónak a helyi merevlemezen végzett munkáját, de azért ezek a profilok elég jók ahhoz, hogy elinduljunk belőlük. Fiókok és jelszavak Első lépésként közölnünk kell a Windows-zal, hogy tárolja külön-külön a profilokat, és gyűjtse össze a felhasználóneveket és jelszavakat, hogy hitelesíteni tudja mindazokat, akik megpróbálnak hozzáférni egy Samba megosztáshoz. Ezt a Windows Vezérlőpultján, a jel- 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 61 szavak beállításánál tehetjük meg. Ha valaki nem ismerné még a Vezérlőpultot, akkor kattintson a Windows bal alsó sarkában lévő Start gombra, a megnyíló menüben mutasson a Beállítások

tételre, és az újabb menüben kattintson a Vezérlőpult névre. Ehelyett azt is megteheti, hogy kettőt kattint a képernyő bal felső sarkában lévő Sajátgép nevű ikonra, és a megnyíló ablakban rákattint a Vezérlőpult ikonra. A Vezérlőpulton kattintsunk kettőt a Jelszó ikonra, és a megjelenő párbeszédablakban kattintsunk a Felhasználói profil fülre. Ekkor a 31 ábrán látható párbeszédlap jelenik meg Ezen a párbeszédlapon kattintással kapcsoljuk be az ,,A felhasználók testre szabhatják a” kezdetű szöveghez tartozó választógombot. Ezzel mondjuk meg a Windowsnak, hogy külön felhasználói profilokban tároljon minden egyes felhasználót, és tárolja az általunk megadott felhasználónevet és jelszót. Ez utóbbiakat fogjuk majd a későbbiekben arra használni, hogy kapcsolatba lépjünk egy SMB/CIFS kiszolgálóval. Végül jelöljük be a Felhasználói profilok beállításai keretben lévő mindkét négyzetet az ábrán látható

módon 3.1 ábra A Jelszó tulajdonságai párbeszédlap Következő lépésként kattintsunk a Jelszó tulajdonságai párbeszédablak Jelszó megváltoztatása nevű fülére. Ahhoz, hogy a Samba lehetővé tegye a megosztásainak elérését, a Windowsban megadott felhasználónévnek és jelszónak meg kell egyeznie a Samba kiszolgálón lévő fióknévvel és jelszóval. Ne aggódjunk, ha nem lehetne megjeleníteni ezt a párbeszédlapot; ez minden bizonnyal azért van, mert korábban még nem állítottunk be magunknak Windows felhasználónevet és jelszót Egyszerűen kattintsunk a párbeszédablak alján lévő OK gombra, és amikor a Windows megkérdezi, hogy kívánjuk-e a rendszer újraindítását, akkor igennel válaszoljunk. Ezt követően lapozzunk át a fejezet ,,Bejelentkezés első alkalommal” című részére A Windows jelszó megváltoztatása Miután rákattintottunk a Jelszó megváltoztatása fülre, megnyílik a 3.2 ábrán látható párbeszédlap 62

| SAMBA 3.2 ábra A Jelszó megváltoztatása párbeszédlap Kattintsunk a Windows jelszó módosítása gombra. Ekkor megnyílik a 33 ábrán látható, Windows jelszó megváltoztatása nevű ablak. Ebben az ablakban úgy módosíthatjuk a jelszavunkat, hogy megegyezzen a Samba kiszolgálón létrehozott azon fiókunk jelszavával, amelyen keresztül majd be fogunk jelentkezni a kiszolgálóra. 3.3 ábra A Windows jelszó megváltoztatása ablak Bejelentkezés első alkalommal Ha a Jelszó tulajdonságai párbeszédablakból nem lenne elérhető a Jelszó megváltoztatása párbeszédlap füle, akkor a Windows az újraindítását követően bekér egy felhasználónevet és egy jelszót. Adjuk magunknak ugyanazt a felhasználónevet és jelszót, amit a Samba kiszolgálón is használunk. Miután megerősítettük az új felhasználónevet és jelszót, vagy egy már meglévőt használunk, a Windows a 3.4 ábrán látható ablakban megkérdezi, akarjuk-e, hogy elkészítsen

számunkra egy felhasználói profilt 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 63 3.4 ábra A Windows hálózati profiljai Kattintsunk az Igen gombra. Ekkor a Windows létrehoz egy külön profil- és jelszófájlt, és ebben tárolja a jelszavunk másolatát. Ha ezek után kapcsolódunk a Sambához, a Windows innen küldi ki a jelszavunkat, amire a megosztások hozzáférésekor a hitelesítéshez van szükség. Egyelőre nem foglalkozunk többet a profilokkal; ezekről részletesebben majd a ,,Felhasználók, biztonság és tartományok” című 6. fejezetben olvashatunk Azt azonban még megjegyezzük, hogy ezek a jelszófájlok némi biztonsági kockázatot rejtenek magukban: valaki ellophatja a jelszófájlunkat, és visszafejtheti a benne lévő jelszavakat, mert ezek meglehetősen gyengén vannak titkosítva. A Windows 95/98-as rendszerben ez ellen sajnos semmit sem lehet tenni A Windows 2000 (NT 50) rendszerben már sokkal biztonságosabb algoritmus szerint

titkosítják a jelszavakat A hálózat telepítése Következő lépésként azt kell megvizsgálnunk, hogy megfelelőképpen van-e telepítve a rendszerünkben a TCP/IP hálózati protokoll. Ehhez kattintsunk kettőt a Vezérlőpult Hálózatok ikonjára Ekkor megjelenik a 35 ábrán látható, a hálózati konfigurációt bemutató párbeszédablak. A Microsoft hálózata úgy működik, hogy meghatározott protokollokat, mint például az IPX vagy a TCP/IP protokollt meghatározott hardvereszközökhöz, például egy Ethernet kártyához vagy egy telefonos kapcsolathoz köt. Azáltal, hogy egy protokollt egy hardvereszközön keresztül küld el, a gép egy adott típusú hálózatban ügyfélként vagy kiszolgálóként is működhet Ami a Sambát illeti, számunkra most az az érdekes, hogy a TCP/IP protokollt egy hálózati eszközhöz kötve ügyfélként szerepeltessük a gépünket egy Microsoft hálózatban. Ezért az említett párbeszédablakban legkevesebb azt kell

látnunk, hogy a Microsoft Network ügyfél (Client for Microsoft Network) összetevő telepítve van a gépünkön, és remélhetőleg egy hálózati hardvereszköz (célszerűen egy Ethernet kártya) is hozzá van kötve a TCP/IP protokollhoz. Ha csak egyetlen hálózati hardvereszköz van a gépünkben, akkor az eszköz neve alatt a TCP/IP protokoll is megjelenik. Ha a párbeszédablakunk a 3.5 ábrán láthatóhoz hasonló tartalmú, akkor a protokoll hozzá van kötve az eszközhöz A párbeszédablakban a ,,Microsoft Networks fájl- és nyomtatómegosztás” komponens is szerepelhet, ami ugyancsak hasznos. Emellett megjelenhet még benne a NetBEUI vagy a Novell Networking, amelyek a Windows telepítésének standard részei, de a TCP/IP protokoll használatakor nemkívánatosak. Ha sikerül, távolítsuk el a NetBEUI összetevőt, mert ez fölösleges, és csak problémát okoz, amikor esetleg hibákat kell keresnünk. Ha a hálózatunkban nincsenek Novell kiszolgálók, akkor a

Novell (IPX/SPX) protokollt is törölhetjük 64 | SAMBA 3.5 ábra A Windows 95/98 Hálózat párbeszédablaka A TCP/IP felvétele Ha az előbbi párbeszédablakban nem jelenne meg a TCP/IP protokoll, akkor telepítenünk kell azt. Ha az olvasó használta már ezt a protokollt, akkor hagyja ki ezt a részt, és lapozzon a fejezet ,,Név és munkacsoport beállítása” című részére. A TCP/IP könnyen telepíthető, mert a Microsoft a saját változatát ingyen kínálja. A protokoll felvételéhez kattintsunk a párbeszédablakban az összetevők felsorolása alatt látható Hozzáadás gombra Az ekkor megnyíló, a 36 ábrán látható párbeszédablakban a Protokoll tételre, majd a Hozzáadás gombra kattintva közöljük ezt a szándékunkat. 3.6 ábra A felveendő hálózati összetevő kiválasztása 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 65 Következő lépésként a 3.7 ábrán látható párbeszédablakban a gyártók közül kattintsunk a

Microsoft tételre, majd a hálózati protokollok listájában a TCP/IP tételre, végül az OK gombra. Ezzel visszatérünk a hálózat párbeszédablakához Az OK gombra kattintva zárjuk be ezt az ablakot. Ezt követően a Windows a telepítő lemezről telepíteni fogja a szükséges összetevőket, és újraindítja a gépet. 3.7 ábra A telepítendő protokoll kiválasztása A TCP/IP konfigurálása Ha egynél több hálózati eszközünk van (például egy Ethernet kártyánk és egy modemünk), akkor mindegyik hardvereszköznek egy nyíllal kötődnie kell a TCP/IP protokollhoz a 3.8 ábrán látható módon. Jelöljük ki azt a TCP/IP protokollt, amelyik a Samba hálózati eléréséhez használandó hálózati eszközhöz van kötve, és kattintsunk a Tulajdonságok gombra Miután ezt megtettük, megnyílik a 3.9 ábrán látható, a hardvereszközhöz tartozó TCP/IP tulajdonságai párbeszédablak. Ez a párbeszédablak hét párbeszédlapból áll, amelyek közül a

következő négyen kell elvégezni a konfigurálást: • IP cím; • DNS konfiguráció; • WINS konfiguráció; • Kötések. Az IP cím párbeszédlap A 3.9 ábrán látható IP cím párbeszédlapon kapcsoljuk be az ,,IP cím megadása” választógombot, és a rendelkezésre álló mezőkbe írjuk be az IP és az alhálózati maszk címét A gépünkhöz magunknak, vagy a hálózat rendszergazdájának kell hozzárendelnie egy IP címet. Az itt álló értékeknek a számítógépet ugyanabban az alhálózatban kell elhelyezkednie, mint ahol a Samba kiszolgáló is van Ha például a kiszolgáló címe 192168220100, és 66 | SAMBA 3.8 ábra A megfelelő TCP/IP protokoll kijelölése 3.9 ábra A TCP/IP tulajdonságai párbeszédablak 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 67 a hálózati maszk címe 255.2552550, akkor a Windows 98 számítógéphez a 19216823610 címet (amennyiben ez szabad cím), alhálózati címként pedig a Samba hálózati címét

kell használni. Ha a hálózaton már a DHCP (Dynamic Host Configuration Protocol) protokollt használtuk az IP címek Windows gépekhez való kiosztásához, akkor az ,,IP cím automatikus megállapítása” választógombot kapcsoljuk be. A DNS beállítás párbeszédlap A DNS (Domain Name Service = tartománynév-szolgáltató) a felelős az olyan, internetes számítógép-neveknek, mint a blabla.mintacom olyan, a gépek számára olvasható IP címekre történő lefordítására, mint például a 192.16823610 Ez egy Windows 98 számítógépen kétféle módon tehető meg: vagy meghatározunk egy kiszolgálót, amelyik elvégzi ezt helyettünk, vagy fenntartunk egy név- és címpárokat tartalmazó helyi listát, amelyre hivatkozhatunk. Azok a hálózatok, amelyek az internethez kapcsolódnak, tipikusan egy tartománynévkiszolgálót használnak, mert egyébként a szükséges gazdafájlok mérete nagyon nagy lenne. Egy, az internethez nem kapcsolódó helyi hálózat

esetében a lehetséges gazdák listája rövid és jól ismert lehet, és a Unix gépen az /etc/hosts fájlban tárolható. Ha kétségeink lennének afelől, hogy kell-e használnunk egy DNS névkiszolgálót, vagy hogy mi lehet ennek a címe, akkor nézzünk bele a Unix kiszolgálók /etc/resolv.conf fájljába Minden olyan gépen, amelyik DNS-t használ, léteznie kell ennek a fájlnak, aminek ehhez hasonló a tartalma: #resolv.conf domain example.com nameserver 127.001 nameserver 192.16823620 A bemutatott példában a lista második nameserver sora tartalmazza a helyi hálózat egy másik gépének a 192.16823620 IP címét Ez a gép megfelelő jelölt lehet DNS kiszolgálóként való használatra* A 3.10 ábrán látható párbeszédablak megfelelő mezőjébe egy vagy több DNS kiszolgáló helyes IP címét kell beírnunk (itt olyan internetes cím, mint például az dnsoreillycom nem használható.) A 127001 címet se használjuk – ez sohasem lehet egy DNS kiszolgáló

helyes címe! Próbáljunk a hálózatunkban már létező címek közül választani. Az /etc/resolvconf fájlban felsorolt bármelyik névkiszolgáló használható, de jobb eredményt érhetünk el egy közeli kiszolgálóval. (Ha nem találnánk a Unix gépünkön /etc/resolvconf fájlokat, akkor tiltsuk le a DNS-t mindaddig, amíg nem találunk legalább egy DNS kiszolgálócímet.) Tegyük fel, hogy csak egyetlen DNS kiszolgálónk van, és annak 192.16823620 a címe Kattintsunk a DNS engedélyezése választógombra, amint ez a 3.10 ábrán látható, és írjuk be a kiszolgáló címét a DNS kiszolgáló keresési sorrendje alatti mezőbe. Ezt követően írjuk be a Gazda mezőbe a Windows 95/98 gépünk nevét, a Tartomány mezőbe pedig annak a tartománynak a nevét, amelyben a számítógépünk van. A Tartományutótag keresési sorrendje mezőt a Samba esetében nyugodtan üresen hagyhatjuk * A többi címet kizárhatjuk, mert minden Unix gépnek van 127.001 localhost

címe, függetlenül attól, hogy kapcsolódik-e egy hálózathoz vagy sem. Egyes rendszerek a helyes működésükhöz ezt a címet igénylik 68 | SAMBA 3.10 ábra A DNS beállítás párbeszédlap A WINS konfiguráció párbeszédlap A WINS a Windows Internet Name Service rövidítése, és a NetBIOS névkiszolgáló Microsoft-féle változatát jelenti. Ha engedélyezzük a WINS konfigurálását a Samba gépen, közölnünk kell a Windows-zal a Samba kiszolgáló címét. Ha olyan WINS kiszolgálókat használunk, amelyeken a Windows NT operációs rendszer fut, adjuk meg itt mindegyikük címét. A 311 ábrán a WINS konfigurálása párbeszédlap látható A WINS párbeszédlapon ne használjunk vegyesen Samba WINS és Windows NT kiszolgálót az elsődleges/másodlagos kombinációban. Mivel ez a kettő nem többszörözheti az adatbázisait, a vegyes használatuk névfeloldási problémákhoz vezet. A párbeszédlapon jelöljük be a WINS engedélyezése

választógombot, és a rendelkezésre álló mezőbe írjuk be a WINS kiszolgáló címét, majd kattintsunk a Hozzáadás gombra. A Hatókörazonosító mezőt hagyjuk üresen. Hostfájlok Ha nincs sem DNS, sem WINS kiszolgálónk, és nem akarunk broadcast névfeloldást használni, akkor a gép rendelkezésére kell bocsátanunk egy IP címeket és hostneveket tartal- 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 69 3.11 ábra A WINS konfigurálása párbeszédlap mazó táblát a Unix szabványos /etc/hosts formátumában. Windows gépen ezt a táblát a WINDOWSHOSTS könyvtárban kell elhelyezni azon a meghajtón, amelyiken a Windows telepítve van (ez tipikusan a C: meghajtó). Egy egyszerű hostfájl az alábbiakat tartalmazhatja: # 127.001 192.1682361 192.1682362 192.1682363 192.1682364 192.16823610 localhost escrime.examplecom escrime riposte.examplecom riposte wizzin.examplecom wizzin touche.examplecom touche hobbes.examplecom hobbes Ezt a hostfájlt közvetlenül

átmásolhatjuk bármelyik Unix gép /etc/hosts/ könyvtárából – a formátumai azonosak. A Windows rendszerben azonban csak a legvégső esetben használjunk hostfájlokat a névfeloldáshoz A kötések vizsgálata Utoljára a 3.12 ábrán látható Kötések párbeszédlapot kell megnéznünk 70 | SAMBA 3.12 ábra A Kötések párbeszédlap A Microsoft Network ügyfél tétel melletti négyzetnek bejelöltnek kell lennie, jelezve, hogy a gép TCP/IP protokollt használ. Ha a párbeszédlapon a Microsoft Networks fájl- és nyomtatómegosztás tétel is megjelenik, akkor azt is jelöljük be, amint az ábrán látható Név és munkacsoport beállítása Végül kattintsunk a TCP/IP beállítások párbeszédablakában az OK gombra, hogy visszatérjünk a Hálózat ablakhoz. Kattintsunk az Azonosítás fülre, hogy megjelenjen a 313 ábrán látható párbeszédlap. 3.13 ábra Az Azonosítás párbeszédlap 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 71 Itt

másodszor is meg kell adnunk a számítógépünk nevét. Ezúttal azonban nem a DNS gazda- és tartománynevet, hanem a gép NetBIOS nevét kell megadnunk. A legcélszerűbb azonban, ha itt is a ugyanazt a gazdanevet választjuk. Nagyon vigyázzunk, hogy ne kövessünk el gépelési hibát: igencsak zavaró lehet, ha úgy állítjuk be a számítógépünket, hogy a TCP/IP-nek pali, míg az SMB-nek plai néven mutatkozik be! Ugyanitt kell megadnunk a munkacsoportunk nevét is. Esetünkben ez a SIMPLE név, de ha valaki A Samba telepítése Unix rendszerre című 2. fejezetben, a Samba konfigurációs fájl elkészítésekor más nevet használt, akkor itt is azt használja Kerüljük a WORKGROUP nevet – ha nem így tennénk, ugyanahhoz a munkacsoporthoz tartoznánk, amelyhez a világon az összes konfigurálatlan (vagy rosszul konfigurált) gép tartozik A Samba kiszolgáló elérése Az OK gombra kattintva fejezzük be a konfigurálást. A számítógépet újra kell indítanunk,

hogy érvényre jussanak az új beállítások. Most jön a nagy pillanat. A Samba kiszolgálónk már fut, és a Windows 95/98 ügyfélgépet is úgy konfiguráltuk, hogy kommunikálhasson vele Miután újraindult a Windows ügyfélgép, jelentkezzünk be, és az Asztalon kattintsunk kettőt a Hálózatok ikonra A Samba kiszolgálónak tagként meg kell jelennie a munkacsoportban, amint a 3.14 ábrán látható 3.14 ábra A Windows Hálózatok párbeszédablaka Kettőt kattintva a kiszolgáló nevére meglátjuk a hálózaton keresztül a kiszolgálón elérhető erőforrásokat, amint a 3.15 ábra mutatja (ebben az esetben ez egy nyomtató és a test könyvtár). 3.15 ábra Megosztott erőforrások a kiszolgálón 72 | SAMBA Ha most olyan párbeszédablak jelenne meg, amelyik bekérné egy IPC$ felhasználó jelszavát, akkor a Samba nem fogadta el az ügyfélszámítógép által küldött jelszót. Ebben az esetben az ügyféloldalon létrehozott felhasználónévnek és

jelszónak pontosan egyeznie kell a Samba kiszolgálón lévő felhasználónév/jelszó kombinációval Ha az ügyfélgépen a Windows 98 vagy a Windows NT Service Pack 3, illetve ennél újabb verziója fut, akkor a jelszó bekérésének valószínűleg az az oka, hogy az ügyfélgép a jelszót titkosított formában, és nem normál szövegként küldte el. A problémán úgy segíthetünk, hogy két további konfigurációs lépést végzünk el a Samba kiszolgálón. Elsőként vegyük fel a Samba konfigurációs fájljának [global] szakaszába a következő bejegyzést: encrypt password = yes. Második lépésként keressük meg a Samba kiszolgálón a smbpasswd programot (alapértelmezés szerint ez a /usr/local/samba/bin könyvtárban van), és ennek segítségével vegyünk fel egy bejegyzést a Samba titkosított jelszóadatbázisába. Ha például egy steve nevű felhasználót akarunk felvenni a Samba titkosított jelszóadatbázisába, akkor írjuk be: smbpasswd -a

steve. Amikor első alkalommal írjuk be ezt a jelszót, a program hibaüzenetet küld, jelezve, hogy nem létezik a jelszóadatbázis. Ezt követően elkészíti az adatbázist, amit tipikusan a /usr/local/samba/private/smbpasswd fájlban tárol. Ha a párbeszédablakban nem jelenne meg a kiszolgáló, akkor indítsuk el a Windows Intézőjét, és az Eszközök menüben válasszuk a Hálózati meghajtó csatlakoztatása parancsot. Az ekkor megnyíló párbeszédablakban beírhatjuk a kiszolgáló és a megosztott test mappa nevét a Windows UNC formátumában: \kiszolgáló est, amint ezt az első fejezetben tettük. Ezzel megkíséreltük felvenni a kapcsolatot a Samba kiszolgálóval és az ideiglenes megosztásaival. Ha ez sem segítene, akkor a Hibakeresés a Sambában című 9 fejezetben keressük a megoldást a problémára. Windows NT 4.0 számítógépek beállítása A Windows NT operációs rendszert futtató számítógépeket némileg eltérő módon kell beállítani,

mint azokat a gépeket, amelyeken a Windows 95/98 rendszer fut. Ahhoz, hogy a Sambát Windows NT rendszerű géppel együtt is lehessen használni, mind a Workstation szolgáltatásra, mind a TCP/IP protokollra szükség van. Bár mindkettőt beépítve tartalmazza az NT, részletesen áttekintjük a beállításukat, mert nem biztos, hogy helyesen vannak konfigurálva. Hat alapvető lépésre van szükség: 1. Név hozzárendelése a számítógéphez 2. A Workstation szolgáltatás telepítése 3. A TCP/IP protokoll telepítése 4. A számítógép nevének és IP címének beállítása 5. A DNS és a WINS névkiszolgálók beállítása 6. A protokoll és a szolgáltatás egymáshoz kötése 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 73 Alapvető beállítások Ebben a fejezetrészben azokról a lépésekről lesz szó, amelyeket végrehajtva egy Windows NT gép együttműködhet egy Samba kiszolgálóval. Ha valakit részletesebben is érdekel egy Windows NT

számítógép hálózati felügyelete, az olvassa el Craig Hunt és Robert Bruce Thompsom Windows NT TCP/IP Network Administration című könyvét (kiadó: O’Reilly). Az alábbi lépéseket ,,Rendszergazda” néven bejelentkezve kell végrehajtani A számítógép elnevezése Első lépésként NetBIOS nevet kell adnunk a számítógépnek. A Vezérlőpulton kattintsunk kettőt a Network (Hálózat) ikonra. Ekkor megnyílik az azonos nevű párbeszédablak Ebben az első párbeszédlap a 3.16 ábrán látható Identification (Azonosítás) lap 3.16 ábra A Network párbeszédablak Identification lapja Itt egy névvel kell azonosítanunk a számítógépet (a példában az Artish nevet használtuk). A munkacsoport nevét az alapértelmezett névről változtassuk arra a névre, amelyet a Samba kiszolgáló smb.conf fájljában adtunk meg A példában a munkacsoportnak SIMPLE a neve A Windows 95/98-tól eltérően azonban a neveket itt nem szerkeszthetjük – ehelyett a két

szövegmező alatti Change (Módosítás) gombra kell kattintani. Ekkor megnyílik az Identification Changes (Azonosítók módosítása) párbeszédablak, amelyben megadható a munkacsoport és a számítógép neve, amint ez a 3.17 ábrán látható Vigyázzunk: a számítógép nevét később, a TCP/IP konfigurálásánál is meg kell adnunk, ezért jegyezzük fel vagy meg az itt beírt nevet. A most megadott név a számítógép NetBIOS neve A TCP/IP gazdaneveként ettől ugyan eltérő nevet is használhatunk, de ez általában nem célszerű Ne aggódjunk amiatt, hogy a Windows NT kikényszeríti a nagybetűk használatát: a rendszer eléggé intelligens ahhoz, hogy megfelelően értelmezze a neveket, amikor létrehozza a kapcsolatot a hálózattal. 74 | SAMBA 3.17 ábra Az azonosító módosítása A TCP/IP protokoll telepítése Következő lépésként válasszuk a Hálózat párbeszédablakban a Protocols (Protokollok) lapot, és ellenőrizzük, telepítve van-e a

TCP/IP protokoll (lásd a 3.18 ábrát) 3.18 ábra A Protocols párbeszédlap 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 75 Ha nincs telepítve a protokoll, akkor telepítenünk kell. Ehhez kattintsunk az Add (Hozzáadás) gombra, hogy megnyíljon a 319 ábrán látható Select Network Protocol (Hálózati protokoll kiválasztása) párbeszédablak. A Windows 95/98-tól eltérően azonnal meg fog jelenni a TCP/IP protokoll a felsorolt protokollok között. 3.19 ábra A Select Network Protokol párbeszédablak 3.20 ábra A Network párbeszédablak Services lapja 76 | SAMBA Jelöljük ki a TCP/IP protokollt, és zárjuk be a párbeszédlapot. Amennyiben lehetséges, csak ezt a protokollt telepítsük. Az esetek többségében nem kell telepítenünk a NetBEUI protokollt – ha így tennénk, a számítógép mindkét protokollon keresné a megosztásokat, pedig csak az egyiket kell használnia.* A Workstation szolgáltatás telepítése Miután telepítettük a

TCP/IP protokollt, válasszuk a Network párbeszédablak Services (Szolgáltatások) lapját, és jelöljük ki a Workstation (Munkaállomás) tételt (lásd a 3.20 ábrát). Ez a szolgáltatás egyébként a Microsoft hálózati ügyfélszolgáltatása, ami lehetővé teszi, hogy a számítógép hozzáférjen az SMB szolgáltatásokhoz. A Workstation szolgáltatást kötelezően telepíteni kell – egyébként ez mind a Windows NT Workstation 4.0, mind a Server 4.0 telepítésekor alapértelmezés szerint meg is történik Ha mégsem lenne a gépünkön, akkor pontosan úgy kell ezt telepíteni, mint a TCP/IP protokollt. Ebben az esetben kattintsunk az Add (Hozzáadás) gombra, és jelöljük ki a Workstation Service tételt a 3.21 ábrán látható módon 3.21 ábra A Select Network Services párbeszédablak A TCP/IP konfigurálása Miután telepítettük a Workstation szolgáltatást, térjünk vissza a Protocols párbeszédlaphoz, és az ablakban jelöljük ki a TCP/IP Protocol

tételt. Ezt követően kattintsunk a párbeszédlap alján lévő Properties (Tulajdonságok) gombra Ekkor megnyílik a Microsoft TCP/IP Protocol párbeszédablak. Ez öt párbeszédlapból áll, amelyek közül azonban * Amíg a számítógép a használaton kívüli protokollon keresztül keresgél, nem jut ideje a hasznos protokollra. Ez az eredménytelen keresgélés csökkenti a teljesítményt, másrészt érthetetlen késedelmeket okoz 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 77 (a Windows 95/98-hoz hasonlóan) csak a következő három lapon kell beállításokat végeznünk: • IP cím; • DNS; • WINS cím. Az IP cím párbeszédlap Az IP cím párbeszédlap a 3.22 ábrán látható 3.22 ábra A Microsoft TCP/IP Properties párbeszédlap IP Address lapja Kapcsoljuk be a Specify an IP address (Adjon meg egy IP címet) választógombot, és a rendelkezésre álló mezőkbe írjuk be a számítógépnek és az alhálózati maszknak a megfelelő hálózati

kártyához (Ethernet kártya) tartozó címét. Magunk, vagy a rendszergazda már kiválaszthatott egy ügyfélcímet ugyanabban az alhálózatban (LAN), amelyikben a Samba kiszolgáló is van. Ha például a kiszolgáló címe 192168220100, az alhálózati maszk címe pedig 255.2552550, akkor az NT munkaállomás címeként a 192168220105 címet (amennyiben ez nem foglalt), az alhálózati maszk címeként pedig a kiszolgáló maszkjáét használhatjuk. Ha a hálózatban van DHCP kiszolgáló, akkor az Obtain an IP address (Az IP címet a DHCP kiszolgáló osztja ki) választógombot kapcsoljuk be. 78 | SAMBA Ha az olvasó nem tudja, hogy milyen IP címet használjon, és nincs kihez segítségért fordulnia, használja a 192.168xx címek valamelyikét, mert az Internic ezt a címtartományt kifejezetten a helyi hálózatok számára foglalta le. Ha el tudja érni a rendszergazdát, akkor tőle kérjen olyan IP címet, amelyet az adott hálózatban használhat. Az átjáró

(gateway) mezőbe az útvonalválasztó (router) számítógép neve írható be. Útvonalválasztóra akkor van szükség, ha egy számítógépnek több hálózattal is kapcsolatot kell tartania. Ha van ilyen számítógép a hálózatban, akkor ide annak az IP címét kell beírnunk A DNS párbeszédlap A következő lépésben a 3.23 ábrán látható DNS párbeszédlapon kell elvégeznünk a szükséges beállításokat 3.23 ábra A DNS párbeszédlap 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 79 A DNS (Domain Name System) dolga az, hogy az emberek számára értelmezhető számítógépneveket, mint például az atrish.examplecom nevet a neki megfelelő IP címekké – mint például 192.16823610 – alakítsa át NT számítógépen ez kétféle módon végezhető el. Az egyik módja az, hogy megadjuk azt a DNS kiszolgálót, amelyik ezt az átalakítást elvégzi. A másik lehetőség az, hogy a munkaállomásunkhoz elkészítünk egy helyi listát azokról a név-

és címpárokról, amelyeket a hálózatban használhatunk. Azon helyi hálózatok esetében, amelyek nem kapcsolódnak az internethez, a lehetséges gazdagépek száma általában kicsi és jól ismert. Ezeket a gépeket könnyen számon tarthatjuk egy helyi fájlban. Ezzel szemben azok a hálózatok, amelyek csatlakoznak az internetre, DNS kiszolgálót használnak, mert lehetetlen előre kitalálni, hogy mely címeket szeretnénk elérni a világhálón. Ha kétségeink vannak afelől, hogy kell-e használnunk egy DNS kiszolgálót, vagy mi lehet ennek a címe, akkor nézzük meg a Samba kiszolgálón található /etc/resolv.conf fájlt: minden olyan gépen, amelyik DNS kiszolgálót használ, létezik ez a fájl. A fájlban ehhez hasonló bejegyzések lehetnek: #resolv.conf domain example.com nameserver 127.001 nameserver 192.16823620 Ebben a példában az elsőként felsorolt névkiszolgálónak (nameserver) 127.001 a címe, ami azt jelenti, hogy maga a Samba kiszolgáló is DNS

kiszolgáló az adott helyi hálózatban.* Ebben az esetben a DNS párbeszédlap megfelelő mezőjébe e névkiszolgáló IP címét (ne a 127.001 localhost címét) írjuk be Ehelyett a nameserver kezdetű sorokban lévő többi cím is használható. Próbáljunk a hálózatunkban már létező címek közül választani Az /etc/resolv.conf fájlban felsorolt bármelyik névkiszolgáló használható, de jobb eredményt érhetünk el egy közeli kiszolgálóval. Végül írjuk be még egyszer a számítógépünk nevét. Ügyeljünk arra, hogy pontosan ugyanazt a nevet írjuk be, mint amelyiket a Network párbeszédablak Identification lapján megadtunk. Írjuk be annak a DNS tartománynak a nevét is, amelyikhez a számítógépünk tartozik. Ha például a munkaállomásunk tartományneve examplecom, akkor ezt a nevet írjuk be. A többi beállítási lehetőséget nyugodtan figyelmen kívül hagyhatjuk A WINS cím párbeszédlap Ha nem használunk DNS kiszolgálót, akkor

valamilyen más módon kell gondoskodnunk arról, hogy a NetBIOS nevek IP címekké alakuljanak át és fordítva. Itt az javasolható, hogy konfiguráljuk mind a DNS, mind a WINS kiszolgálót. A Windows NT előnyben részesíti a WINS kiszolgálót, ami viszont a maga részéről visszanyúl a DNS kiszolgálóhoz, ha nem tudná feloldani a gépi címeket. A WINS Address párbeszédlap a 324 ábrán látható Ha van a hálózatban WINS kiszolgáló, akkor annak a címét írjuk be a Primary WINS Server mezőbe. Ha a Samba kiszolgáló van WINS kiszolgálóként konfigurálva (vagyis a Samba kiszolgálón az smb.conf fájlba beírtuk a wins service = yes bejegyzést), akkor a * A 127.001 cím az ún localhost cím, és mindig önmagát jelenti Ha például egy Unix kiszolgálón a parancssorba beírjuk a ping 127.001 parancsot, akkor erre mindig kapunk választ, hiszen ezzel magát a gazdagépet szólítjuk meg. 80 | SAMBA 3.24 ábra A WINS Address párbeszédlap Samba

kiszolgáló IP címét írjuk be ide. Más esetben a hálózatban lévő más WINS kiszolgáló címét adjuk meg Feltűnhetett, hogy egy lenyitható listát is tartalmaz a párbeszédlap: ebben a listában azt az Ethernet kártyát kell választanunk, amelyiken a TCP/IP fut, hogy a WINS a megfelelő hálózaton végezze el a névfeloldást. Ha hálózati kártya és modem is van a számítógépünkben, akkor győződjünk meg arról, hogy itt a hálózati kártyát választottuk Végül jelöljük be az ,,Enable DNS” (DNS engedélyezése Windows feloldáshoz) négyzetet, hogy a WINS a DNS-t használja, ha nem talál egy nevet. A többi beállítási lehetőséget nyugodtan figyelmen kívül hagyhatjuk. Hostfájlok Ha nincs sem DNS, sem WINS kiszolgálónk, és nem akarunk broadcast névfeloldást használni, akkor a gép rendelkezésére kell bocsátanunk egy IP címeket és hostneveket tartalmazó táblát a Unix szabványos /etc/hosts formátumában. Ez az eljárás nem

javasolható, mert egy ilyen fájl karbantartása nehézségeket jelenthet bármely dinamikus hálózaton, de a lényeget elmagyarázzuk. Ha a Windows NT a C: könyvtárba van telepítve, akkor a hostfájl a C:WINNTSystem32driversetcHOSTS könyvtárban van Egy hostfájl az alábbiakat tartalmazhatja: 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA 127.001 192.1682361 192.1682362 192.1682363 192.1682364 192.1682365 192.1682366 192.1682367 localhost escrime riposte wizzin touche gurgi jessiac skyline | 81 escrime.examplecom riposte.examplecom wizzin.examplecom touche.examplecom gurgi.examplecom jessiac.examplecom skyline.examplecom Ezt a hostfájlt közvetlenül átmásolhatjuk bármelyik Unix gép /etc/hosts/ könyvtárából – a formátumai azonosak. Ekkor ennek a fájlnak ugyanaz a feladata, mint a Unix kiszolgálón lévő hostfájlnak. Ismét hangsúlyozzuk, hogy Windows rendszerben csak a legvégső esetben használjunk hostfájlokat a névfeloldáshoz Kötések A kötés

ebben a szövegkörnyezetben azt jelenti, hogy a TCP/IP protokoll az ügyfélszámítógépet az Ethernet kártyán keresztül megfelelően kapcsolja hozzá a hálózat szolgáltatásaihoz. Ha visszatérünk a Network párbeszédablakhoz, és a Show Bindings for (Kötések mutatása) listában az ,,all service” (minden szolgáltatás) tételt választjuk, majd a fastruktúrában a + (plusz) gombokra kattintunk, akkor a 3.25 ábrán látható szerkezetet látjuk Ez azt jelenti, hogy a Workstation, a Server és a NetBIOS szolgáltatások a WINS ügyfélhez kapcsolódnak. A Microsoft TCP/IP-nél ez a kötések helyes beállítása 3.25 ábra A szolgáltatások kötése 82 | SAMBA Kapcsolódás a Samba kiszolgálóhoz A Network párbeszédablak többi lapján meghagyhatjuk az alapértelmezett beállításokat. Az OK gombra kattintva fejezzük be a konfigurálást. Miután betöltődtek a szükséges fájlok (ha egyáltalán voltak ilyenek), a számítógépet újra kell

indítanunk, hogy érvényre jussanak az új beállítások Most jön a nagy pillanat. A Samba kiszolgálónk már fut, és a Windows NT ügyfélgépet is úgy konfiguráltuk, hogy kommunikálhasson vele. Miután újraindult a Windows ügyfélgép, jelentkezzünk be, és az Asztalon kattintsunk kettőt a Network Neighborhood (Hálózatok) ikonra A Samba kiszolgálónak tagként meg kell jelennie a munkacsoportban, amint a 3.26 ábrán látható 3.26 ábra A Windows NT Network Neighborhood ablaka Kettőt kattintva a kiszolgáló nevére meglátjuk a hálózaton keresztül a kiszolgálón elérhető erőforrásokat, amint a 3.27 ábra mutatja (ebben az esetben ez egy nyomtató és a test könyvtár). További tudnivalókért olvassuk át a fejezet ,,A Samba kiszolgáló elérése” című előző részét. 3.27 ábra Megosztott erőforrások a kiszolgálón 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 83 Ha most olyan párbeszédablak jelenne meg, amelyik bekérné egy IPC$

felhasználó jelszavát, akkor a Samba nem fogadta el az ügyfélszámítógép által küldött jelszót. Ebben az esetben az ügyféloldalon létrehozott felhasználónévnek és jelszónak pontosan egyeznie kell a Samba kiszolgálón lévő felhasználónév/jelszó kombinációval Ha az ügyfélgépen a Windows 98 vagy a Windows NT Service Pack 3, illetve ennél újabb verziója fut, akkor a jelszó bekérésének valószínűleg az az oka, hogy az ügyfélgép a jelszót titkosított formában, és nem normál szövegként küldte el. A problémán úgy segíthetünk, hogy két további konfigurációs lépést végzünk el a Samba kiszolgálón. Elsőként vegyük fel a Samba konfigurációs fájljának [global] szakaszába a következő bejegyzést: encrypt password = yes. Második lépésként keressük meg a Samba kiszolgálón a smbpasswd programot (alapértelmezés szerint ez a /usr/local/samba/bin könyvtárban van), és ennek segítségével vegyünk fel egy bejegyzést a

Samba titkosított jelszóadatbázisába. Ha például egy steve nevű felhasználót akarunk felvenni a Samba titkosított jelszóadatbázisába, akkor írjuk be: smbpasswd -a steve. Amikor első alkalommal írjuk be ezt a jelszót, a program hibaüzenetet küld, jelezve, hogy nem létezik a jelszóadatbázis. Ezt követően elkészíti az adatbázist, amit tipikusan a /usr/local/samba/private/smbpasswd fájlban tárol. Ha a párbeszédablakban nem jelenne meg a kiszolgáló, akkor indítsuk el a Windows NT Intézőjét, és az Eszközök menüben válasszuk a Hálózati meghajtó csatlakoztatása parancsot. Az ekkor megnyíló párbeszédablakban beírhatjuk a kiszolgáló és a megosztott test mappa nevét a Windows UNC formátumában: \kiszolgáló est. Ha ez nem segítene, akkor a Hibakeresés a Sambában című 9. fejezetben keressük a megoldást a problémára Ha minden rendben ment, akkor gratulálhatunk magunknak! Próbáljunk írni a kiszolgálóra és küldjünk adatokat a

hálózati nyomtatóra. Meglepődve tapasztalhatjuk, hogy milyen simán működik minden. Most, hogy konfiguráltuk mind a Samba kiszolgálót, mind az ügyfeleit, rátérhetünk arra, hogy miként működik a Samba, és hogyan konfigurálhatjuk a kedvünk szerint. Röviden az SMB/CIFS protokollról A fejezetet az SMB/CIFS protokollról szóló rövid ismertetővel zárjuk le. Az SMB/CIFS az a protokoll, amelyet a Windows 95/98 és NT számítógépek az egymás közötti és a Samba kiszolgálóval való kommunikációhoz használnak. Felső szinten az SMB protokollkészlet meglehetősen egyszerű. Olyan fájl- és nyomtatókezelő parancsokat tartalmaz, amelyeket egy helyi lemezre vagy nyomtatóra is kiadhatunk, így például: • fájl megnyitása és bezárása; • fájlok és könyvtárak létrehozása és törlése; • fájlok írása és olvasása; • fájlok keresése; • nyomtatásra váró fájlok sorba állítása vagy törlése a várakozási sorból. 84 | SAMBA

Az előző műveletek mindegyike SMB üzenetté kódolható, és kiküldhető a kiszolgálóra, illetve a kiszolgálóról. Az SMB név az adatformátumából származik: a formátum a szabványos DOS rendszerhívások adatstruktúráinak felel meg, amelyeknek Server Message Blocks volt a nevük, és amelyek úgy alakították át az adatokat, hogy egy hálózaton keresztül más gépekre is elküldhetők legyenek. Az SMB formátum Richard Sharpe, a Samba munkacsoport tagjának meghatározása szerint az SMB nem más, mint egy ,,kérés-válasz protokoll”. A protokoll valóban úgy működik, hogy egy ügyfél elküld egy SMB kérést egy kiszolgálóra, amire a kiszolgáló egy SMB választ küld vissza. Ritkán fordul csak elő, hogy a kiszolgáló olyan kérést küld, ami nem egy kérésre lenne a válasz. Az SMB üzenetek nem olyan bonyolultak, mint azt gondolnánk. Vizsgáljuk meg közelebbről egy ilyen kérés belső szerkezetét Az üzenet két részre bontható: a

rögzített hoszszúságú fejlécre (header) és a parancssztringre, amelynek a mérete az üzenet tartalmától függően tág keretek között változhat. Az SMB fejlécének formátuma Az SMB fejlécének formátumát a 3.1 táblázat szemlélteti Az SMB parancsoknak nem kell használniuk az SMB fejlécben lévő összes mezőt. Ha például egy ügyfél első alkalommal kísérli meg a kapcsolatfelvételt egy kiszolgálóval, akkor még nem rendelkezhet tree identifier (TID) értékkel – ezt csak a sikeres kapcsolódást követően kapja meg –, ezért a fejléc ezen mezőjébe a nulla értékű TID (0xFFFF) kerül. Más, ugyancsak használaton kívüli mezőket 0 értékek tölthetnek ki. Az SMB fejléc mezőit a 3.1 táblázat sorolja fel 3.1 táblázat Az SMB fejléc mezői Mező Méret bájtokban Leírás 0xFF ’SMB’ COM RCLS REH ERR REB RES TID 1 1 1 1 2 1 14 2 PID UID MID 2 2 2 Protokoll azonosító Parancskód 0x00 és 0xFF között Hibaosztály Fenntartott

Hibakód Fenntartott Fenntartott Tree identifier; az ügyfél által használt erőforrás egyedi ID-je A hívó processz ID-je Felhasználó azonosítója Többszörös azonosító; processzen belüli kérések átirányítására szolgál. 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 85 Az SMB parancsok formátuma Közvetlenül a fejléc után változó számú bájtok állnak, amelyek az SMB parancsot vagy választ alkotják. Minden egyes parancsnak, mint például az Open File (COM mezőazonosítója: SMBOpen) vagy a Get Print Queue (SMBsplretq) parancsnak saját paraméterkészlete és adatai vannak Az SMB fejléc mezőihez hasonlóan – az adott parancstól függően – a parancs egyes mezői is üresek lehetnek Így például a Get Server Attributes (SMBdskattr) parancs a WCT és a BCC mezőket nullával tölti fel. A parancsszegmens mezőit a 3.2 táblázat sorolja fel 3.2 táblázat SMB parancs tartalma Mező Méret bájtokban Leírás WCT VWV 1 Változó BCC

DATA 2 Változó Szavak száma Paraméter-szószámláló (a méretet a WCT határozza meg) Paraméter-bájtszámláló Adatok (a méretet a BCC határozza meg) Ne aggódjunk, ha nem értenénk az egyes mezők jelentését; a Samba rendszergazdai használatához erre nem lesz szükség. Ugyanakkor ezek az ismeretek jól jöhetnek akkor, ha meg kell fejtenünk a rendszer hibaüzeneteit. A fejezet későbbi részében, a tcpdump program módosított változatát használva bemutatunk néhány olyan SMB üzenetet, amelyet gyakran küldenek ki az ügyfelek és a kiszolgálók. (Ha valaki grafikus felületet használva mélyebben el akar merülni az SMB üzenetek világában, próbálja ki az ,,ethereal” programot, amely GTK függvénytárakat használ; erről az eszközről további információk a Samba honlapján találhatók.) Aki többet szeretne tudni az SMB protokoll egyes parancsairól, olvassa el az SMB/CIFS dokumentációját az ftp://ftp.microsoftcom/developr/drg/CIFS/

FTP-helyen. SMB változatok Az SMB protokoll a bevezetését követően több alkalommal is újabb parancsokkal bővült ki. Mindegyik új változat kompatíbilis az előzővel Ez lehetővé teszi, hogy egy helyi hálózatban egyidejűleg több olyan ügyfél és kiszolgáló is működjön, amelyek az SMB különböző változatait használják A 3.3 táblázat az SMB protokoll főbb változatait sorolja fel Az SMB egyes ,,dialektusainak” is számos saját alváltozatuk van Ezek a főbb operációs rendszerek egyes kiadásait támogató parancsokkal egészítik ki az alap parancskészletet. Az ügyfelek és a kiszolgálók az ID sztring alapján állapítják meg, hogy a protokoll melyik szintjét használják az egymás közötti kommunikációban. 86 | SAMBA 3.3 táblázat Az SMB protokoll nyelvjárásai Protokoll neve ID sztring Operációs rendszer Core Core Plus LAN Manager 1.0 LAN Manager 2.0 LAN Manager 2.1 NT LAN Manager 1.0 Samba’s NT LM 0.12 Common Internet

File System PC NETWORK PROGRAM 1.0 MICROSOFT NETWORKS 1.03 LANMAN1.0 LM1.2X002 LANMAN2.1 NT LM 0.12 Samba CIFS 1.0 Windows NT 4.0 Samba Windows 2000 A Samba az NT LAN Manager 1.0 változathoz az NT LM 012 specifikációt valósítja meg Ez visszafelé kompatíbilis az összes többi SMB változattal. A CIFS lényegében nem más, mint a LAN Manager 0.12 néhány specifikus kiegészítéssel SMB ügyfelek és kiszolgálók Amint korábban említettük, az SMB ügyfél/kiszolgáló protokollt jelent. Teljesen leegyszerűsítve ez azt jelenti, hogy az ügyfél elküld egy kérést a kiszolgálóra, a kiszolgáló pedig a kérésre reagálva elküldi a választ. Ugyanakkor ez a szereposztás gyakran meg is fordulhat, akár ugyanazon az SMB munkameneten belül is. Képzeljünk el például két Windows 95/98 számítógépet a 3.28 ábrán látható elrendezésben A WIZZIN nevű számítógép egy nyomtatót oszt meg a hálózaton, míg az ESCRIME nevű számítógép egy

lemezkönyvtárat. Az elrendezésben a WIZZINE gép az ügyfél szerepét játssza, amikor hozzáfér az ESCRIME gép hálózati meghajtójához, ugyanakkor ez a szereposztás megfordul, és kiszolgáló lesz belőle, amikor az ESCRIME számítógéptől érkezik hozzá egy nyomtatási kérés. 3.28 ábra Két olyan számítógép, amelyek mindegyikének van megosztott erőforrása Mindezeket a lehetőségeket figyelembe véve a Samba a következő terminológiát használja: • Kiszolgáló az a számítógép, amelynek megosztható erőforrásai vannak. • Ügyfél az a számítógép, amely használni kívánja ezeket az erőforrásokat. • Egy kiszolgáló bármikor ügyfél is lehet (egy másik számítógép erőforrásáé). 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 87 Figyeljük meg, hogy az előző meghatározások semmilyen formában sem térnek ki arra, hogy milyen erőforrások tehetnek kiszolgálóvá egy számítógépet, vagyis hogy mekkora a

lemezterülete vagy milyen gyors a processzora. Egy régi, 486-os számítógépből, amelyhez egy nyomtató kapcsolódik, ugyanúgy lehet kiszolgáló, mint egy 10 GB-os merevlemezzel felszerelt UltraSparc munkaállomásból. A Microsoft Windows termékei az SMB ügyfelet és az SMB kiszolgálót is beépítve tartalmazzák az operációs rendszerben. A Windows NT Server 40 a Windows for Workgroups rendszerhez képest újabb SMB protokollt használ, és javított hálózati biztonságot kínál, amint erről majd a 6. fejezetben olvashatunk Emellett nagy számban kaphatók a kereskedelemben SMB kiszolgálói termékek olyan nagy cégektől, mint a Sun, a Compaq, az SCO, a HewlettPackard, a Syntax és az IBM. Sajnos ügyfél oldalon jóval kisebb a választék, ami jobbára csak a Digital Equipment cég Pathworks programjára és természetesen a Sambára korlátozódik. Egy egyszerű SMB kapcsolat Mielőtt lezárnánk ezt a fejezetet, tekintsünk át röviden egy egyszerű SMB

kapcsolatot. Magának a kapcsolatnak a felépülése és lefolyása meglehetősen műszaki jellegű, aminek az ismerete nem nélkülözhetetlen egy Samba rendszergazda számára – ezért akár ki is hagyható. A célunk jórészt csak az, hogy bemutassuk, miként ,,tárgyal” egy protokoll egy másik protokollal abból a célból, hogy a hálózaton keresztül létrejöjjön a kapcsolat két számítógép között. Az ügyfél és a kiszolgáló számítógépnek négy lépést kell megtennie annak érdekében, hogy létrejöjjön az ügyfél és a megosztott erőforrás közötti kapcsolat: 1. Virtuális kapcsolat létesítése 2. A kommunikációhoz használandó protokollváltozat egyeztetése 3. A munkamenet (session) paramétereinek beállítása 4. Fa kapcsolat létrehozása az erőforráshoz Ezeket a lépéseket egy korábban már említett, hasznos eszköz segítségével vizsgáljuk meg: ez a módosított tcpdump program, amely a Samba webhelyéről tölthető le. Ez a

program a samba.org webhelyen, a samba/ftp/tcpdump-smb könyvtárból tölthető le; a könyv írásának idején a 3.4-5 volt a legújabb verzió Ugyanúgy használhatjuk ezt a programot, mint a szabványos tcpdump alkalmazást, de vegyük fel hozzá az -s 1500 kapcsolót, hogy ne csak az első néhány bájtot, hanem a teljes csomagot kapjuk meg. Virtuális kapcsolat létesítése Amikor egy felhasználó első alkalommal kísérli meg a hozzáférést egy hálózati lemezmeghajtóhoz, vagy először küld egy nyomtatási feladatot egy távoli nyomtatóra, a NetBIOS gondoskodik session szinten a kapcsolat létrehozásáról. Az eredmény egy, az ügyfelet és a kiszolgálót összekötő kétirányú virtuális csatorna. A valóságban mindössze két üzenetre van szüksége az ügyfélnek és a kiszolgálónak ahhoz, hogy létrejöjjön ez a kapcsolat. Ezt a tcpdump programmal befogott alábbi, session szintű kérés és válasz szemlélteti: 88 | SAMBA >>> NBT

Packet NBT Session Request Flags=0x81000044 Destination=ESCRIME Source=WIZZIN NameType=0x20 (Server) NameType=0x00 (Workstation) >>> NBT Packet NBT Session Granted Flags=0x82000000 A protokollváltozat egyeztetése Ebben a fázisban már megnyílt a csatorna az ügyfél és a kiszolgáló között. A következő lépésben az ügyfél elküld egy üzenetet a kiszolgálóra, hogy megbeszéljék a használandó SMB protokollt. Amint korábban említettük, az ügyfél a tree identifier mezőjét (TID) nullára állítja, mivel még nem tudja, hogy milyen TID-t kell használnia A tree identifier az a szám, amelyik a kiszolgáló egyik megosztott erőforrásához tartozó kapcsolatot azonosítja. Az üzenetben lévő parancs az SMBnegprot, amely kéri a teljes munkamenet során használandó protokollváltozat egyeztetését. Figyeljük meg, hogy az ügyfél az általa használható változatok teljes listáját elküldi, míg fordítva nem ez történik A kiszolgáló az

SMBnegprot kérésre az ügyfél által felkínált változatok listájának egyik indexével (sorszámával) válaszol. Az index 0-tól indul, és 0xFF az értéke, ha a protokollváltozatok egyikét sem tudja elfogadni A példánknál maradva a kiszolgáló az 5-ös értéket küldi vissza, amivel azt jelzi, hogy a munkamenet további részében az NT LM 0.12 dialektust kívánja használni >>> NBT Packet NBT Session Packet Flags=0x0 Length=154 SMB PACKET: SMBnegprot (REQUEST) SMB Command = 0x72 Error class = 0x0 Error code = 0 Flags1 = 0x0 Flags2 = 0x0 Tree ID = 0 Proc ID = 5371 UID = 0 MID = 385 Word Count = 0 Dialect=PC NETWORK PROGRAM 1.0 Dialect=MICROSOFT NETWORKS 3.0 Dialect=DOS LM1.2X002 Dialect=DOS LANMAN2.1 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 89 Dialect=Windows for Workgroups 3.1a Dialect=NT LM 0.12 >>> NBT Packet NBT Session Packet Flags=0x0 Length=69 SMB PACKET: SMBnegprot (REPLY) SMB Command = 0x72 Error class = 0x0 Error code = 0

Flags1 = 0x0 Flags2 = 0x1 Tree ID = 0 Proc ID = 5371 UID = 0 MID = 385 Word Count = 02 [000] 05 00 A session és a bejelentkezés paramétereinek beállítása Következő lépésként a session és a bejelentkezés paramétereit kell elküldeni. Ebbe beleértendő a fiók neve és jelszava (ha van ilyen), a munkacsoport neve, az átvihető adatcsomag maximális mérete, valamint azoknak a még teljesítetlen kéréseknek a száma, amelyek egyidejűleg várakozhatnak a sorukra A következő példában a bemutatott Session Setup parancs a ,,hátán” hordoz egy másik SMB parancsot. A parancs neve után álló X betű jelzi ezt, és a második parancs hexadecimális kódja a Com2 mezőben van megadva Esetünkben ez a parancs a 0x75, ami a Tree Connect and X parancs. Az SMBtconX üzenet az smb buf pufferben keresi az erőforrás nevét (ez a példában látható kérés legutolsó mezője). A példában az smb buf puffer a \ESCRIMEPUBLIC karakterláncot tartalmazza, ami az ESCRIME

csomópont megosztott könyvtárának a teljes neve az elérési útjával együtt. Az ehhez hasonló ,,and X” parancsok felgyorsítják az átvitelt, mert a kiszolgálónak nem kell arra várnia, hogy az ügyfél újabb kérést küldjön. Figyeljük meg, hogy a TID értéke továbbra is nulla. A kiszolgáló azt követően küldi el a TID-t, miután létrejött a munkamenet és a kapcsolat a kért erőforráshoz. Azt is vegyük észre, hogy a jelszó normál szövegként kerül elküldésre. A későbbiekben majd titkosítani fogjuk a jelszót. >>> NBT Packet NBT Session Packet Flags=0x0 Length=139 90 | SAMBA SMB PACKET: SMBsesssetupX (REQUEST) SMB Command = 0x73 Error class = 0x0 Error code = 0 Flags1 = 0x10 Flags2 = 0x0 Tree ID = 0 Proc ID = 5371 UID = 1 MID = 385 Word Count = 13 Com2=0x75 Res1=0x0 Off2=106 MaxBuffer=2920 MaxMpx=2 VcNumber=0 SessionKey=0x1FF2 CaseInsensitivePasswordLength=1 CaseSensitivePasswordLength=1 Res=0x0 Capabilities=0x1

Pass1&Pass2&Account&Domain&OS&LanMan= KRISTIN PARKSTR Windows 4.0 Windows 40 PassLen=2 Passwd&Path&Device= smb bcc=22 smb buf[]=\ESCRIMEPUBLIC Kapcsolat létrehozása az erőforráshoz Utolsó lépésként a kiszolgáló visszaküld egy TID-t az ügyfélnek, jelezve, hogy jogosult a hozzáférésre, és az erőforrás készen áll. Emellett a ServiceType mezőben egy ,,A”-t küld vissza, amivel azt jelzi, hogy a szolgáltatás típusa fájlkiszolgálás. A használható szolgáltatástípusok: • ,,A” lemezhez vagy fájlhoz; • ,,LPT1” a nyomtatáshoz; • ,,COMM” a modemhez vagy a nyomtatóhoz való közvetlen kapcsolathoz; • ,,IPC” named pipe-hoz. A kivitel: >>> NBT Packet NBT Session Packet Flags=0x0 Length=78 3. FEJEZET WINDOWS ÜGYFELEK KONFIGURÁLÁSA | 91 SMB PACKET: SMBsesssetupX (REPLY) SMB Command = 0x73 Error class = 0x0 Error code = 0 Flags1 = 0x80 Flags2 = 0x1 Tree ID = 121 Proc ID = 5371 UID = 1 MID = 385 Word

Count = 3 Com2=0x75 Off2=68 Action=0x1 [000] Unix Samba 1.91 [010] PARKSTR SMB PACKET: SMBtconX (REPLY) (CHAINED) smbvwv[]= Com2=0xFF Off2=78 smbbuf[]= ServiceType=A: Most, hogy az ügyfél megkapta a TID-jét, bármilyen olyan parancsot küldhet, amilyent a helyi merevlemezére is kiadhat. Fájlokat nyithat meg, olvashatja azokat és írhat beléjük, törölheti őket, újakat hozhat létre, kereshet fájlokat stb. Lemezmegosztások Az előző három fejezetben megtudtuk, hogyan telepíthetjük a SAMBA programot egy Unix kiszolgálóra, és miként állíthatunk be Windows ügyfélgépeket úgy, hogy egy egyszerű lemezmegosztást használhassanak. Ebben a fejezetben arról olvashatunk, miként tehetjük hatékonyabbá a Sambát a hálózatunkban. A Samba két, smbd és nmbd démonjának működését egy egyszerű ASCII fájl, az smb.conf szabályozza Ebben a fájlban 200-nál is több különböző beállítás választható, amelyek meghatározzák, miként reagáljon a

Samba a legkülönbözőbb hálózati eseményekre, többek között például egy engedély vagy egy titkosított kapcsolat létrehozása iránti kérelemre. A következő öt fejezetben ezzel a fájllal és a lehetséges beállításaival ismerkedünk meg. E beállítások némelyikét sűrűn fogjuk használni, és gyakran módosítjuk is, míg másokra esetleg sohasem lesz szükségünk – attól függően, hogy a Samba mely képességeit akarjuk felkínálni az ügyfelei számára. Ez a fejezet a Samba konfigurációs fájl felépítését mutatja be, valamint azt, hogy a különböző beállításai révén miként hozhatunk létre és módosíthatunk lemezmegosztásokat. Az utána következő fejezetek a tallózással, a felhasználók konfigurálásával, a biztonsággal, a tartományokkal, a nyomtatókkal és számos egyéb lehetőséggel foglalkoznak, amelyeket megvalósíthatunk a Samba kiszolgálóhoz kapcsolódó hálózaton. A Samba konfigurációs fájlja Az

alábbiakban egy példát látunk a Samba konfigurációs fájljára. Aki dolgozott már Windows .INI fájlon, annak ismerős lehet az smbconf fájl szerkezete: [global] log level = 1 max log size = 1000 socket options = TCP NODELAY IPTOS LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes 4. FEJEZET LEMEZMEGOSZTÁSOK | 93 printable = yes min print space = 2000 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/test Lehet, hogy most még nem értjük a fájl tartalmát, de ha nagyon sietünk, akkor ezt egy az egyben, nyugodtan használhatjuk. (Ha nem sietős a dolgunk, akkor rövidesen azt is látni fogjuk, miként készíthetünk el egy ilyen fájlt a ,,semmiből”.) Dióhéjban összefoglalva a fenti konfigurációs fájl elkészít egy naplófájlt, aminek a mérete nem haladhatja meg az 1 MB-ot, optimalizálja a TCP/IP kapcsolatokat a Samba kiszolgáló és az SMB ügyfelei között, továbbá

lehetővé teszi, hogy a Samba lemezmegosztást hozzon létre mindazon felhasználók számára, akiknek szabványos Unix fiókjuk van a kiszolgálón. Ezen túlmenően a kiszolgálón regisztrált összes nyomtató nyilvánosan elérhető lesz, akárcsak az a csak olvasható megosztás, ami az /export/samba/test könyvtárban található. A fájl utolsó része hasonló ahhoz a lemezmegosztáshoz, amit a Samba teszteléséhez használtunk a 2. fejezetben A konfigurációs fájl felépítése Tekintsük át most ezt a konfigurációs fájlt eggyel magasabb szintről: [global] . [homes] . [printers] . [test] . A szögletes zárójelek között álló nevek az smb.conf fájl egyes szakaszait azonosítják A szakasznevek azokat a megosztásokat (vagy más néven szolgáltatásokat) nevezik meg, amelyekre vonatkoznak. Így például a [test] és a [homes] szakasz egy-egy lemezmegosztást jelent, és a Samba kiszolgáló adott könyvtárára vonatkozó beállításokat tartalmazza A

[printers] szakasz a kiszolgálóhoz csatlakozó nyomtatókra vonatkozó beállításokat tartalmazza Az smbconf fájl összes szakasza a [global] szakasz kivételével lemezvagy nyomtatómegosztásként a Samba kiszolgálóhoz kapcsolódó összes ügyfél rendelkezésére áll A szakasznevek közötti sorok egyedi konfigurációs beállítások, amelyek csak az illető megosztásra vonatkoznak. Ezek a sorok mindaddig folytatódnak, amíg nem jön egy újabb, szögletes zárójelek között álló szakasznév, vagy nem fejeződik be a fájl. Ezeknek a konfigurációs beállításoknak nagyon egyszerű a formátumuk: beállítás = érték 94 | SAMBA Az smb.conf fájlban úgy végezhetünk el egy beállítást, hogy valamilyen értéket rendelünk az adott beállításhoz Felhívjuk itt a figyelmet arra, hogy a Sambában egyes beállításoknak eléggé szerencsétlen az (angol nyelvű) nevük Amíg például a read only (csak olvasható) név önmagáért beszél, és a

legújabb Samba változatok is ezt használják, addig a public már csak a régebbi változatokban fordul elő; ma ennek szinonimájaként a kevésbé félreérthető guest ok (engedélyezett a vendégek hozzáférése) nevet használják. Ebben a fejezetben a főbb feladatok kapcsán szót ejtünk néhány régebbi, általánosan használt névről. A ,,Samba konfigurációs beállításainak gyors áttekintése” című C függelékben ábécésorrendben soroljuk fel az egyes beállítási lehetőségeket és a jelentésüket Szóközök, idézőjelek és vesszők A konfigurációs beállításokkal kapcsolatban fontos megjegyezni, hogy az érték megadásában számítanak a szóközök. Tekintsük például az alábbi beállítást: volume = A Nagy Fekete merevlemez A Samba a volume szó utolsó e betűje után álló szóközt és az egyenlőségjel, valamint az A betű közötti szóközt ,,lenyeli”. Ezeknek a szóközöknek nincs jelentőségük Az értékben szereplő

további szóközöknek viszont van jelentőségük, és a Samba a fájl beolvasásakor ezeket megtartja. A beállítások nevében nincs jelentősége a szóköznek (mint például guest ok), de javasoljuk, hogy igazodjunk a szokásokhoz, és tartsuk meg a szavak közötti szóközöket. A konfigurációs beállítások értékének megadásánál idézőjeleket is használhatunk az érték elején és végén. A Samba ezeket az idézőjeleket figyelmen kívül hagyja Magának a beállításnak a nevét azonban sohase tegyük idézőjelek közé – a Samba ezt hibának tekinti. Végül még annyit, hogy ha az érték több elemből áll, akkor az elemeket szóközökkel vagy vesszőkkel választhatjuk el egymástól. Az alábbi két értékmegadás azonos: netbios aliases = szende, szundi, hapci netbios aliases = szende szundi hapci Egyes értékeknél azonban bizonyos esetekben kötelezően szóközöket, más esetekben pedig vesszőket kell használni a listaelemek

elválasztásához. Kis- és nagybetűk A Samba konfigurációs fájljában nincs jelentősége a kis- és nagybetűk használatának, kivéve az olyan eseteket, amikor ez zavart okozna az alapul szolgáló operációs rendszerben. Tegyük fel például, hogy az alábbi beállítást írtuk be egy olyan megosztásba, ami az /export/samba/simple könyvtárra vonatkozik: PATH = /EXPORT/SAMBA/SIMPLE A Sambának nem okoz problémát, hogy a path beállítás és a hozzá rendelt érték csupa nagybetűből áll. Amikor viszont megpróbál kapcsolatot teremteni az adott könyvtárral, a művelet sikertelen lesz, mert a könyvtárt tartalmazó gépen futó operációs rendszer a Unix fájlrendszerét használja, amelyik pedig különbséget tesz a kis- és a nagybetűk között. 4. FEJEZET LEMEZMEGOSZTÁSOK | 95 Következésképpen a megadott elérési utat nem találja meg, és az ügyfél nem lesz képes kapcsolódni az adott megosztáshoz. Sorok törése A Samba konfigurációs

fájljában a bejegyzések sorát egy fordított törtjellel () törhetjük meg az alábbiak szerint: comment = Az első megosztás tartalmazza az elsődleges másolatokat az új Teamworks szoftvertermékéről. A fordított törtjel azt jelzi a Sambának, hogy a két sort egyetlen sornak tekintse. A második sor a törtvonal utáni első nem üres karakterrel, vagyis ebben a példában az az szó a betűjével kezdődik. Megjegyzések A Samba konfigurációs fájlba úgy szúrhatunk be megjegyzéseket, hogy a sorokat egy létra karakterrel (#) vagy egy pontosvesszővel (;) kezdjük. A két karakter egymással egyenértékű Az alábbi példában a Samba az első három sort megjegyzésnek tekinti: # Ez a nyomtatókat leíró szakasz. A kinyomtatandó szóközök ; számát minimum 2000-re állítottuk be, hogy legyen elég ; hely az egymást követő nyomtatási feladatok között. [printers] public = yes min print spaces = 2000 A Samba a konfigurációs fájlban lévő összes

megjegyzéssort figyelmen kívül hagyja: a sort kezdő létra karakter vagy pontosvessző után bármit beírhatunk. Figyeljük meg azt is, hogy a megjegyzéssorok több sorba töréséhez nem a fordított törtjelet használjuk. A Samba a megjegyzéssorokban álló többi karakterhez hasonlóan ezt sem veszi figyelembe. Módosítások futásidőben Az smb.conf fájlt és a benne lévő bármelyik beállítást a Samba démonjainak futása közben bármikor módosíthatjuk. Alapbeállítás szerint a Samba minden 60-adik másodpercben átnézi a konfigurációs fájlt, hogy lássa, módosult-e időközben. Ha módosulást észlel, a változásokat azonnal érvényre juttatja. Ha nem akarjuk kivárni ezt az időközt, akkor azonnal kikényszeríthetjük a fájl újraolvasását vagy azzal, hogy egy SIGHUP jelet küldünk az smbd és az nmbd processzeknek, vagy egyszerűen újraindítjuk a démonokat. Ha például az smbd processznek 893 volt a száma, az alábbi parancs kiadásával

kényszeríthetjük ki a konfigurációs fájl újbóli belolvasását: # kill -SIGHUP 893 96 | SAMBA Az ügyfelek nem észlelnek azonnal minden módosítást. Így például az éppen használatban lévő megosztás módosulásait addig nem regisztrálják, amíg a megosztást használó ügyfél nem kapcsolódik le róla, és valamelyik ügyfél nem kapcsolódik újra a megosztáshoz. Továbbá a kiszolgálóra jellemző olyan paraméterek, mint a munkacsoportos vagy NetBIOS nevek sem kerülnek azonnal regisztrálásra. Ezzel megakadályozható, hogy az aktív ügyfelek hirtelen lekapcsolódjanak a kiszolgálóról, vagy váratlan hozzáférési problémák merüljenek fel, miközben egy session még nem zárult le. Változók A Samba egy változókból álló készletet is tartalmaz, amelynek segítségével meghatározhatók a Samba kiszolgáló és a hozzá kapcsolódó ügyfelek bizonyos jellemzői. E változók százalékjellel (%) kezdődnek, ami után egyetlen nagy-

vagy kisbetű áll. A változók a konfigurációs beállításoknak csak a jobb oldalán használhatók (például az egyenlőségjel után): [pub] path = /home/ftp/pub/%a A %a az ügyfélszámítógép architektúráját jelenti – a változó értéke Windows NT gép esetén WinNT, Windows 95 vagy 98 gép esetén Win95, és Windows for Workgroups gép esetén WfWg. Emiatt a Samba más-más elérési utat fog hozzárendelni azokhoz a [pub] megosztást használó ügyfélgépekhez, amelyeken a Windows NT, a Windows 95/98 és a Windows for Workgroups operációs rendszer fut. Másként fogalmazva ez az jelenti, hogy az egyes ügyfelek attól függően, hogy milyen az architektúrájuk, más és más elérési úton érik el a megosztást: /home/ftp/pub/WinNT /home/ftp/pub/Win95 /home/ftp/pub/WfWg A változók ilyen módon való használata akkor célszerű, ha azt szeretnénk, hogy az egyes felhasználók egyedi konfigurációs beállításokat használhassanak a saját egyéni

jellemzőik vagy körülményeik alapján. A Samba 19 változót használ (lásd a 41 táblázatot) 4.1 táblázat Samba változók Változó Meghatározás Ügyfél változói %a %I %m %M Az ügyfél architektúrája (például Samba, WfWg, WinNT, Win95 vagy UNKNOWN) Az ügyfél IP címe (például 192.168220100) Az ügyfél NetBIOS neve Az ügyfél DNS neve 4. FEJEZET LEMEZMEGOSZTÁSOK | 97 4.1 táblázat folytatása Változó Meghatározás Felhasználói változók %g %G %H %u %U Az %u elsődleges csoportja Az %U elsődleges csoportja Az %u home könyvtára Az aktuális Unix felhasználónév A kért ügyfél felhasználóneve (a Samba nem használja mindig) A megosztás változói %p %P %S Automount elérési út a megosztás rootkönyvtárához, ha az más, mint a %P Az aktuális megosztás rootkönyvtára Az aktuális megosztás neve A kiszolgáló változói %d %h %L %N %v A kiszolgáló aktuális processzének ID-je A Samba kiszolgáló DNS gazdaneve A Samba

kiszolgáló NetBIOS neve A kiszolgáló home könyvtára, az automount listában A Samba verziója Egyéb változók %R %T Az SMB protokoll egyeztetett szintje Az aktuális dátum és idő Lássunk egy másik példát a változók használatára! Tegyük fel, hogy öt ügyfél van a hálózatunkban, de közülük a fred nevű némileg más [homes] konfigurációt igényel, amikor a Samba kiszolgálóhoz kapcsolódik. A Sambával könnyen megoldható ez a probléma: [homes] . include = /usr/local/samba/lib/smb.conf%m . Az include bejegyzés itt azt eredményezi, hogy minden egyes NetBIOS gépnek (%m) az aktuális fájl mellett még egy különálló konfigurációs fájlt is be kell olvasnia. Ha az ügyfélszámítógép neve fred, és ha az smbconffred fájl létezik a samba dir/lib/ könyvtárban (vagy bármely olyan könyvtárban, amelyet a konfigurációs fájlok számára definiáltunk), a Samba beszúrja azt az alapértelmezés szerinti fájlba Ha az smbconffred fájlban

lévő bármelyik konfigurációs beállítás újradefiniálna egy előző beállítást, akkor ez az érték felülírja az előzőleg a megosztáshoz használt beállítást. Figyeljük meg, hogy itt az ,,előző” szót használtuk: ha az include beállítást követően a fő konfigurációs fájl bármely értéket újradefiniál, a Samba az új értékeket fogja használni a megosztáshoz. 98 | SAMBA Itt egy fontos részhez értünk: ha nincs ilyen fájl, a Samba nem generál hibát – egyáltalán semmit sem tesz. Ez lehetővé teszi, hogy ezt a stratégiát követve csak a fred nevű ügyfelünk számára hozzunk létre egy külön konfigurációs fájlt, ne pedig minden egyes NetBIOS gépet használó részére A gépspecifikus konfigurációs fájlokat mind az egyes ügyfelek egyéni beállításaihoz, mind a Sambában való hibakeresés megkönnyítéséhez is használhatjuk. Ami az utóbbi illeti: ha csak egyetlen ügyféllel vannak problémáink, akkor az itt

elmondottak szerint egy egyéni bejelentkezési fájlt bocsáthatunk a rendelkezésére, ami bővebb magyarázatokkal szolgál. Így megnézhetjük, miként reagál erre a Samba anélkül, hogy lassítanánk a többi ügyfél munkáját, vagy hogy haszontalan naplózásokkal terhelnénk a lemezt. Ne feledjük, hogy nagyobb hálózat esetén nincs mindig lehetőségünk arra, hogy hibakeresés céljából újraindítsuk a Samba kiszolgálót. A 4.1 táblázatban felsorolt változók segítségével egyéni értékeket rendelhetünk a Samba különböző beállítási lehetőségeihez. Ezekre a lehetőségekre a későbbi fejezetekben még több helyen is kitérünk A konfigurációs fájl szakaszai A változók rövid áttekintése után ejtsünk pár szót a Samba konfigurációs fájl néhány különleges szakaszáról is. Most se aggódjunk azért, ha nem értenénk mindent; a későbbi fejezetekben még részletesebben visszatérünk ezekre. A [global] szakasz A [global] szakasz

gyakorlatilag az összes Samba konfigurációs fájlban megjelenik, még ha nem is kötelező ennek a definiálása. Az ebben a szakaszban lévő összes beállítás az összes többi megosztásra érvényesül, mintha ez a szakasz át lenne másolva magába a megosztásba. Ezzel kapcsolatban azonban van egy csapda: a többi szakasz ugyanezeket a beállításokat új értékekkel sorolhatja fel saját magában, aminek az a következménye, hogy az új értékek felülírják a [global] szakaszban megadott értékeket. Ennek illusztrálására tekintsük ismét a fejezet elején bemutatott példánkat: [global] log level = 1 max log size = 1000 socket options = TCP NODELAY IPTOS LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes printable = yes min print space = 2000 4. FEJEZET LEMEZMEGOSZTÁSOK | 99 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/test Ha az előző példában egy ügyfelet

csatlakoztattunk volna a [test] megosztáshoz, a Samba elsőként a [global] szakaszt olvasta volna be. Ezen a ponton a guest ok = no beállítást használta volna globális alapértelmezett beállításként az összes olyan megosztásra, amellyel a konfigurációs fájl beolvasása során találkozott volna. Ezek itt a [homes] és a [printers] megosztások. Amikor azonban a [test] megosztást olvassa be, a guest ok = yes beállítással találkozik, és ezzel felülírja a [global] szakaszban beállított értéket. Minden olyan beállítás, ami egy szakaszon kívül található (az első megjelölt szakasz előtt), globális beállításnak tekintendő. A [homes] szakasz Ha egy ügyfél olyan megosztáshoz kísérli meg a hozzáférést, amely nem szerepel az smb.conf fájlban, a Samba a konfigurációs fájl [homes] szakaszában végzi a keresést Ha létezik ilyen, akkor feltételezi, hogy az azonosítatlan megosztásnév egy Unix felhasználónév, amit lekérdez a Samba

kiszolgáló jelszóadatbázisából. Ha ebben megjelenik a felhasználónév, akkor a Samba azt feltételezi, hogy az ügyfele Unix felhasználó, aki a kiszolgálón a saját home (kezdő) könyvtárához próbál meg kapcsolódni Tegyük fel például, hogy egy ügyfél-számítógép először kapcsolódik a hydra Samba kiszolgálóhoz, és megkísérel kapcsolatot teremteni egy [alice] nevű megosztáshoz. Az smb.conf fájlban nincs definiálva [alice] nevű megosztás, viszont van egy [homes] szakasz, ezért a Samba keresni kezd a jelszóadatbázisban, és azt látja, hogy van egy alice nevű felhasználói fiók a rendszerben. Ezt követően a Samba megvizsgálja, hogy az ügyfél milyen jelszót használt az alice nevű felhasználó Unix jelszavaként vagy a jelszóadatbázisban (ha a jelszó nem titkosított), vagy a Samba smbpasswd fájljában (ha a jelszó titkosított). Ha talál egyező jelszót, akkor az alice nevű felhasználó számára létrehoz egy [alice] nevű

megosztást. A ,,Felhasználók, biztonság és tartományok” című 6. fejezetben részletesebben foglalkozunk azzal, hogy a [homes] szakasz használatával miként hozhatók létre felhasználók (és miként kezelhetők ezek jelszavai). A [printers] szakasz A harmadik szakasznak [printers] a neve, és hasonlít a [homes] szakaszhoz. Ha egy ügyfél olyan megosztáshoz próbál kapcsolódni, amely nem szerepel az smb.conf fájlban, és nem található a neve a jelszófájlban, akkor a Samba megvizsgálja, hogy nem nyomtatómegosztásról van-e szó. A Samba ezt a nyomtató-konfigurációt tartalmazó fájl (általában az /etc/printcap) elolvasásával teszi meg, hogy lássa, szerepel-e benne a megosztásnév.* Ha szerepel, akkor a Samba a nyomtató nevével létrehoz egy megosztást. * A rendszerünktől függően lehetséges, hogy ez nem az /etc/printcap fájl. A Sambához tartozó testparm parancs segítségével határozhatjuk meg a printcap name konfigurációs beállítás

értékét. A Samba lefordításakor ez volt az alapértelmezés szerint választott érték 100 | SAMBA A [homes] szakaszhoz hasonlóan ez azt jelenti, hogy az smb.conf fájlban nem kell fenntartanunk minden egyes rendszernyomtató számára egy megosztást. Kérésünkre a Samba megvizsgálja a Unix nyomtatóregisztráló fájlját, és az ügyfél-számítógépek rendelkezésére bocsátja a regisztrált nyomtatókat. Ennek azonban van egy nyilvánvaló korlátja: Ha van egy fred nevű felhasználói fiókunk, és egy ugyancsak fred nevű nyomtatónk, akkor a Samba először mindig a felhasználói fiókot találja meg, még akkor is, ha a felhasználónak az a szándéka, hogy a nyomtatóhoz kapcsolódjon. A ,,Nyomtatás és névfeloldás” című 7. fejezetben részletesebben foglalkozunk a [printers] megosztás beállításával. Konfigurációs beállítások A Samba konfigurációs fájlokban a beállítások kétféle kategóriája különböztethető meg: globális

és megosztásos. Mindkét kategória az jelzi, hogy az illető beállítás a konfigurációs fájl mely részében jelenhet meg. Globális Globális beállítások csak és kizárólag a [global] szakaszban lehetnek. Ezek általában olyan beállítások, amelyek tipikusan magának a Samba kiszolgálónak a viselkedését befolyásolják, és nem valamelyik megosztásáét Megosztásos A megosztásos beállítások specifikus megosztásokban vagy a [global] szakaszban lehetnek. Ha a [global] szakaszban állnak, akkor az összes megosztás viselkedését befolyásolják, hacsak egy adott megosztás nem írja felül azt a maga beállításával. Emellett a konfigurációs beállításokat további négy kategóriába lehet sorolni aszerint, hogy a beállítás milyen értéket vehet fel. Ezek a következők: Boolean érték Az ilyen típusú beállítás csak valamilyen igenlő vagy nemleges értéket vehet fel: az értékek neveként a yes vagy no, a true vagy false és a 0 vagy az 1

használható. Az értékben nincs különbség a kis- és a nagybetű között: a YES ugyanazt jelenti, mint a yes Numerikus Bármely egész decimális, hexadecimális vagy oktális szám. A hexadecimális számokat a szabványos 0xnn, az oktális számokat a szabványos 0nnn formátumban kell megadni. Karakterlánc Kisbetűket és nagybetűket megkülönböztető karakterlánc, mint például fájlnév vagy felhasználónév. Felsorolás Ismert értékek véges listája. Valójában egy Boolean érték típusú beállítás is felsorolás, amely csak két értéket tartalmaz 4. FEJEZET LEMEZMEGOSZTÁSOK | 101 A konfigurációs fájl beállításai A Sambában 200-nál több konfigurációs beállítást használhatunk. Először lássunk közülük néhány olyat, amellyel magát a konfigurációs fájlt módosíthatjuk Amint a fejezet korábbi részében említettük, a konfigurációs fájlok egyáltalán nem statikusak. A Sambát utasíthatjuk arra, hogy a fájl

feldolgozása közben új beállításokat vegyen fel bele, vagy egy meglévőt módosítson. Ezeket a beállítási lehetőségeket a 42 táblázat sorolja fel 4.2 táblázat Konfigurációs fájl beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör config file Karakterlánc (név a teljes elérési úttal) Karakterlánc (név a teljes elérési úttal) Megadja az aktuális konfigurációs fájl helyett használandó fájl helyét. Konfigurációs beállítások további szegmensét adja meg, amelyet ezen a ponton be kell illeszteni a konfigurációs fájlba. Lehetővé teszi az aktuális megosztásban egy másik megosztás konfigurációs beállításainak klónozását. Nincs Globális Nincs Globális Nincs Megosztás include copy Karakterlánc (a megosztás neve) config file A globális hatókörű config file beállítás egy helyettesítő konfigurációs fájlt határoz meg, amelyet a Samba ezt a bejegyzést olvasva betölt. Ha a

megadott fájl létezik, akkor a Samba a korábbi konfigurációs fájl további részét, valamint a korábban már beolvasott beállításokat figyelmen kívül hagyja, és teljes mértékben az új fájlban található beállítások szerint konfigurálja magát. A config file beállítás kihasználja az előzőekben említett változók adta előnyöket, ami akkor hasznos, ha olyan, speciális konfigurációs fájlt akarunk betölteni, ami a kapcsolódni kívánó ügyfél számítógépének nevén vagy a felhasználói nevén alapul. Így például a következő sor arra utasítja a Sambát, hogy a kapcsolódó ügyfél NetBIOS neve által specifikált konfigurációs fájlt használja, ha létezik ez a fájl. Amennyiben létezik ez a fájl, akkor az eredeti konfigurációs fájl beállításai figyelmen kívül maradnak. [global] config file = /usr/local/samba/lib/smb.conf%m Ha a megadott konfigurációs fájl nem létezik, akkor a Samba ezt a beállítást figyelmen kívül

hagyja, és az aktuális fájl szerint konfigurálja önmagát. include Ez a beállítás a célfájlt az adott ponton bemásolja az aktuális konfigurációs fájlba a 4.1 ábrán látható módon. Ez a beállítás is hasznosítja a korábban bemutatott változókat, ami 102 | SAMBA akkor hasznos, ha olyan, speciális konfigurációs fájlt akarunk betölteni, ami a kapcsolódni kívánó ügyfél számítógépének nevén vagy a felhasználói nevén alapul. Ezt a beállítást a következőképpen használhatjuk: [global] include = /usr/local/samba/lib/smb.conf%m Ha a megadott konfigurációs fájl nem létezik, a Samba figyelmen kívül hagyja ezt a beállítást. Ne feledjük, hogy az összes, korábban specifikált beállítás felülíródik A 41 ábrán mind a három beállítás felülírja a korábbi értékeket. 4.1 ábra Az include beállítás egy Samba konfigurációs fájlban Az include beállítás nem képes a %u (felhasználó), a %p (aktuális megosztás

rootkönyvtára) vagy az (aktuális megosztás) változók értelmezésére, mert ezek a fájl beolvasásakor még nem kapták meg az értékeiket. copy A copy konfigurációs beállítás lehetővé teszi, hogy klónozzuk az aktuális megosztásban megadott megosztásnév konfigurációs beállításait. A célmegosztásnak azt megelőzően szerepelnie kell a konfigurációs fájlban, mielőtt megjelenne benne a másolást végző megosztás. Így például: [template] writable = yes browsable = yes valid users = andy, dave, peter [data] path = /usr/local/samba copy = template 4. FEJEZET LEMEZMEGOSZTÁSOK | 103 Jegyezzük meg, hogy a copy direktíva által meghívott megosztás összes beállítása felülírja a klónozott megosztás beállításait, függetlenül attól, hogy ezek a copy direktíva előtt vagy után szerepelnek. A kiszolgáló konfigurálása Elérkezett az ideje annak, hogy konfiguráljuk a Samba kiszolgálót. Ismerkedjünk meg azzal a három alapvető

konfigurációs beállítással, amelyek az smb.conf fájl [global] szakaszában szerepelhetnek: [global] # A kiszolgáló konfigurációs paraméterei netbios name = HYDRA server string = Samba %v on (%L) workgroup = SIMPLE Ez a konfigurációs fájl meglehetősen egyszerű: a Samba az NBT hálózaton hydra NetBIOS néven bejelenti a jelenlétét. Emellett még azt is elárulja magáról, hogy a SIMPLE munkacsoport tagja, és egy üzenetet jelenít meg az ügyfelei részére, amelyben közli a verziószámát és a Samba kiszolgáló NetBIOS nevét Ha a korábbi konfigurációs fájlunkba beírtuk az encrypt passwords=yes bejegyzést, akkor ezt most itt is meg kell tennünk. Lépjünk tovább, és próbáljuk ki ezt a konfigurációs fájlt. A fenti szöveg beírásával hozzunk létre egy smb.conf nevű fájlt a /usr/local/samba/lib könyvtárban Állítsuk kiinduló állapotba a Samba kiszolgálót, és egy Windows ügyfél segítségével ellenőrizzük az eredményt.

Győződjünk meg arról, hogy a Windows ügyfél is a SIMPLE munkacsoport tagja Ha a Windows ügyfélnél a Network Neighborhood ikonjára kattintunk, akkor a 42 ábrán láthatóhoz hasonlónak kell megjelennie. (Az ábrában a phoenix és a chimaera szerepel Windows ügyfelekként) A kiszolgáló leírását tartalmazó megjegyzést is ellenőrizhetjük, ha a Network Neighborhood ablakában megjelenítjük a részleteket (a View menüben válasszuk a Details parancsot). Ekkor a 43 ábrán láthatóhoz hasonlónak kell megjelennie Ha rákattintanánk a Hydra ikonjára, a megnyíló ablakban láthatnánk a kiszolgálón elérhető szolgáltatásokat. Esetünkben ez az ablak teljesen üres lenne, mert még nincsenek megosztások a kiszolgálón. A kiszolgáló konfigurációs beállításai A 4.3 táblázat foglalja össze a kiszolgáló korábban már ismertetett konfigurációs beállításait Figyeljük meg, hogy mindegyik beállítás globális a hatókörét illetően; másként

fogalmazva ez azt jelenti, hogy ezeknek a konfigurációs fájl [global] szakaszában kell szerepelniük. 104 | SAMBA 4.2 ábra A Network Neighborhood ablakában megjelenik a Samba kiszolgáló 4.3 ábra A részletek a Network Neighborhood ablakában 4.3 táblázat A kiszolgáló konfigurációs beállításai Beállítás Paraméterek netbios Karakterlánc name server Karakterlánc string workgroup Karakterlánc Funkció Alapértelmezett érték Hatókör Megadja a Samba kiszolgáló elsődleges NetBIOS nevét. Leíró nevet ad a Samba kiszolgálónak. Megadja annak a gépcsoportnak a NetBIOS nevét, amelyikhez a Samba kiszolgáló tartozik. A kiszolgáló DNS gazdaneve Samba %v Globális Fordítási időben kerül definiálásra. Globális Globális 4. FEJEZET LEMEZMEGOSZTÁSOK | 105 netbios name A netbios name beállítás segítségével rendelhetünk NetBIOS nevet a kiszolgálóhoz. Például: netbios name = YORKVM1 Ennek a konfigurációs beállításnak

alapértelmezés szerint a kiszolgáló gazdaneve az értéke, vagyis a számítógép teljes DNS nevének az első része. Ha például a gépnek rubyoracom a DNS neve, akkor alapértelmezés szerint a RUBY lenne a NetBIOS neve. Bár ezt a beállítást arra is használhatjuk, hogy a konfigurációs fájlban visszaállítsuk a gép NetBIOS nevét (amint ezt a korábbiakban tettük), többnyire arra használják, hogy a Samba kiszolgálóhoz az aktuális DNS nevétől eltérő NetBIOS nevet rendeljenek. Emlékezzünk arra, hogy a névadásnál be kell tartanunk az érvényes NetBIOS számítógépnevekre vonatkozó szabályokat, amint erről az ,,Ismerkedés a Sambával” című 1. fejezetben olvashattunk A kiszolgáló NetBIOS nevének megváltoztatása nem ajánlott, hacsak nincs alapos oka. Ilyen ok lehet például az, hogy a számítógép gazdaneve nem egyedi, mert például egy helyi hálózat két vagy több DNS tartományra van felosztva. Így például a YORKVM1 megfelelő

NetBIOS név lehet egy vm1yorkexamplecom tartományba tartozó kiszolgáló számára, hogy meg lehessen különböztetni a vm1falkirkexamplecom géptől, amelyiknek ugyanaz a gazdaneve, de másik DNS tartományba tartozik. Ez a beállítás arra is használható, hogy átirányítsuk az SMB szolgáltatásokat egy kieső gépről. Ha például egy adott részleg SMB kiszolgálójának SALES nevű gépe váratlanul meghibásodik, akkor a netbios name = SALES beállítással azonnal átveheti a szerepét egy tartalék Samba gép. A felhasználóknak nem kell más gépre leképezniük a meghajtóikat; a SALES géppel eddig fennállott kapcsolataik egyszerűen a tartalék géppel jönnek létre. server string A server string paramétere egy megjegyzést tartalmazó karakterláncot definiál, ami a kiszolgáló neve mellett jelenik meg mind a Network Neighborhood ablakában (ha a Details menüt jelenítjük meg), mind a Microsoft Windows nyomtatókezelőjében. A leírásban használhatjuk

a szabványos változókat, ha tájékoztatást akarunk adni a kiszolgálóról. A korábbi bejegyzésünk az alábbi volt: [global] server string = Samba %v on (%h) Ennek a beállításnak az alapértelmezés szerinti értéke a Samba aktuális verzióját adja meg, és mindössze ennyiből áll: server string = Samba %v workgroup A workgroup paramétere annak az aktuális munkacsoportnak a nevét adja meg, amelynek a Samba kiszolgáló a tagja. Azoknak az ügyfeleknek, akik hozzá szeretnének férni a Samba kiszolgáló megosztásaihoz, az ugyanilyen NetBIOS nevű munkacsoport tagjainak 106 | SAMBA kell lenniük. Emlékezzünk arra, hogy a munkacsoportok valójában NetBIOS csoportnevek, amelyeknek meg kell felelniük a NetBIOS nevekre vonatkozó szabályoknak (lásd az 1. fejezetet) Például: [global] workgroup = SIMPLE Ennek a beállításnak az alapértelmezett paramétere fordítási időben kerül megadásra. Ha a make-fájlban nem módosult a neve, akkor WORKGROUP

marad a neve. Mivel minden konfigurálatlan munkacsoportnak ez a neve, ajánlatos, hogy mindig állítsuk be a Samba konfigurációs fájljában a munkacsoportunk nevét. A lemezmegosztás konfigurálása Korábban említettük, hogy semmilyen megosztás sincs létrehozva a hydra nevű kiszolgálón. Folytassuk a konfigurációs fájl elkészítését, és hozzunk létre egy [data] nevű üres lemezmegosztást. Ehhez az alábbi bejegyzéseket kell felvennünk a konfigurációs fájlba: [global] netbios name = HYDRA server string = Samba %v on (%L) workgroup = SIMPLE [data] path = /export/samba/data comment = Data meghajtó volume = Sample-Data-Drive writeable = yes guest ok = yes A [data] megosztás tipikusnak tekinthető egy Samba lemezmegosztására. Ez a megosztás egy /export/samba/data könyvtárat hoz létre a Samba kiszolgálón Még egy megjegyzést is beszúrtunk, ami arról tájékoztat, hogy a megosztás egy Data nevű meghajtó, továbbá azt is megadtuk, hogy a kötet

(volume) neve maga a megosztás neve A writable = yes beállítás azt jelenti, hogy a felhasználók írhatnak adatokat a megosztásba. Alapértelmezés szerint a Samba csak olvasható (read-only) megosztást hoz létre, ezért ezt az írást engedélyező beállítást kifejezetten meg kell adnunk, ha azt szeretnénk, hogy az adott lemezmegosztás írható legyen. Észrevehettük, hogy a guest ok beállításhoz a yes értéket rendeltük. Bár a biztonságot illetően ez nem túl jó megoldás, de a jelszavakkal kapcsolatban néhány dologról még szót kell ejtenünk, ami szükségessé teszi ezt a ,,nagyvonalúságot”, mielőtt még egyenként állítanánk be a felhasználók hitelesítését. Folytassuk a munkánkat, és egészítsük ki ezekkel a bejegyzésekkel a konfigurációs fájlt. Ezen túlmenően az alábbi parancsokkal hozzuk létre a Samba gépen rootként az /export/samba/data könyvtárat: 4. FEJEZET LEMEZMEGOSZTÁSOK | 107 # mkdir /export/samba/data #

chmod 777 /export/samba/data Ha most újra kapcsolódunk a hydra kiszolgálóhoz (ezt a Windows Network Neighborhood ikonjára kattintva tehetjük meg), megjelenik a data nevű egyetlen megosztás a 4.4 ábrán látható módon. A megosztáshoz írásra és olvasásra is hozzáférhetünk Próbáljunk létrehozni egy fájlt a megosztásban, vagy másoljunk át ide egy fájlt. A kísérletezőbb kedvűek egy hálózati meghajtót is leképezhetnek erre a megosztásra 4.4 ábra A data nevű megosztás a Samba kiszolgálón A lemezmegosztás konfigurációs beállításai A Samba lemezmegosztásának az előzőekben bemutatott alapvető konfigurációs beállításait a 4.4 táblázat sorolja fel 4.4 táblázat A megosztás alapvető konfigurációs beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör path (directory) karakterlánc (teljes elérési út) /tmp Megosztás guest ok (public) Boolean érték no Megosztás comment karakterlánc

Nincs Megosztás volume karakterlánc Megadja azt a Unix könyvtárat, ami lemezmegosztáshoz vagy nyomtatómegosztás esetén a sorba állításhoz használható. Ha yes az értéke, akkor ennek megosztásnak az eléréséhez nincs szükség hitelesítésre. Megadja a megosztással együtt megjelenő megjegyzést. Megadja a kötetnevet: ez a fizikai meghajtó DOS neve. Megosztás neve Megosztás 108 | SAMBA 4.4 táblázat folytatása Beállítás Paraméterek read only Boolean érték writeable Boolean érték (write ok) Funkció Alapértelmezett érték Hatókör Ha yes az értéke, akkor a megosztás csak olvasásra érhető el. Ha no az értéke, akkor a megosztás csak olvasásra érhető el. yes Megosztás no Megosztás path Ez a beállítás, amelynek a directory a szinonimája, a fájl- vagy a nyomtatómegosztásnak a rootból elinduló elérési útját adja meg. A Samba kiszolgálón tetszőleges elérési utat adhatunk meg, amennyiben a Samba

processz kapcsolódó tulajdonosa írhatja és olvashatja az illető könyvtárat. Ha az elérési út nyomtatómegosztáshoz vezet, akkor olyan ideiglenes könyvtárra kell mutatnia, amelybe beírhatók a fájlok, mielőtt beállnának a nyomtatóra várakozó sorba ( /tmp és /var/spool a szokásos választás). Ha az elérési út lemezmegosztáshoz vezet, akkor az ügyfélgépen a megosztás nevét képviselő mappa tartalma megegyezik a Samba kiszolgálón lévő könyvtár tartalmával Ha például a konfigurációs fájlunkban az alábbi lemezmegosztást adtuk volna meg: [network] path = /export/samba/network writable = yes guest ok = yes és a Unix oldalon a /usr/local/network könyvtár tartalma az alábbi lenne: $ ls -al /export/samba/network drwxrwxrwx 9 root nobody 1024 drwxr-xr-x 9 nobody nobody 1024 drwxr-xr-x 9 nobody nobody 1024 drwxr-xr-x 9 nobody nobody 1024 drwxr-xr-x 9 nobody nobody 1024 Feb Feb Feb Feb Feb 16 16 16 16 16 17:17 17:17 17:17 17:17 17:17 . .

quicken tax98 taxdocuments akkor az ügyféloldalon ennek a megfelelőjét látnánk a 4.5 ábrán látható szerint guest ok Ez a beállítás (aminek egy régebbi szinonimája a public) engedélyezi, illetve letiltja a vendéghozzáférést egy megosztáshoz. A beállítás alapértelmezés szerinti értéke a no Ha a beállításnak yes az értéke, akkor ezt azt jelenti, hogy a megosztáshoz való kapcsolódáshoz sem felhasználónévre, sem jelszóra nincs szükség. Amikor kapcsolódik egy felhasználó, ugyanazokat a jogokat kapja meg, mint egy kijelölt vendégfelhasználó A Samba által a megosztáshoz felkínált alapértelmezés szerinti fióknév a nobody. Az alábbi sorok lehe- 4. FEJEZET LEMEZMEGOSZTÁSOK | 109 4.5 ábra Elérési úttal megadott hálózati fájlrendszer Windows ügyfél oldalon megjelenítve tővé teszik, hogy egy vendégfelhasználó hozzáférhessen az [accounting] nevű megosztáshoz, amely engedélyezi az ftp fiók elérését: [global]

guest account = ftp [accounting] path = /usr/local/account guest ok = yes Figyeljük meg, hogy a felhasználók az érvényes felhasználónév/jelszó kombinációjukat használva is hozzáférhetnek a megosztáshoz. Ha ez a hozzáférés sikeres, akkor azokkal a jogokkal fognak rendelkezni, amelyek a saját fiókjukhoz vannak rendelve, és nem azokkal, amelyekkel a vendégfiók van felruházva. Ha viszont egy felhasználó megpróbál bejelentkezni, de sikertelen a kísérlete, akkor a vendégfiókhoz rendelt hozzáférési jogokat kapja meg. Azt is megtehetjük, hogy bármelyik felhasználónak, aki hozzá akar férni egy adott megosztáshoz, a vendégfiókot kelljen használnia (és ekkor a vendég jogaival fog rendelkezni). Ehhez a guest only = yes beállítást kell használnunk comment A comment beállítás segítségével megjegyzést szúrhatunk be, amit akkor kap meg az ügyfél, amikor tallózza a megosztást. A felhasználó akkor látja ezt a megjegyzést, amikor a

Windows Network Neighborhood ablakában a megfelelő számítógépet választva megnézi a megosztott mappa részleteit, vagy a DOS parancssorába beírja a NET VIEW parancsot. Az alábbiakban egy példát látunk arra, miként helyezhetünk el megjegyzést egy [network] megosztásba: [network] comment = Network Drive path = /export/samba/network Ügyfél oldalon ekkor a 4.6 ábrán láthatóhoz hasonló jelenik meg Figyeljük meg, hogy a Windows aktuális konfigurációja mellett ez a megjegyzés nem jelenik meg akkor, ha a megosztás egy Windows hálózati meghajtóra van leképezve. 110 | SAMBA 4.6 ábra Megosztás megjegyzése Windows ügyfél oldalon megjelenítve Ügyeljünk arra, hogy ne keverjük össze a comment beállítást, ami a Samba kiszolgáló megosztásait dokumentálja, a server string beállítással, ami magát a kiszolgálót dokumentálja. volume Ennek a beállításnak a segítségével megadhatjuk az SMB által jelentett megosztás kötetnevét. Ez

általában az smbconf fájlban megadott megosztás neve Ha viszont e helyett más nevet akarunk használni, akkor ezt ebben a beállításban tehetjük meg. Tegyük fel például, hogy egy telepítő program meg akarja vizsgálni egy CD-ROM kötetnevét, hogy a telepítést megelőzően megbizonyosodjon arról, valóban a megfelelő lemez van a meghajtóban. Ha viszont a CD-ROM tartalmát átmásoljuk egy hálózati megosztásba, és innen akarjuk elvégezni a telepítést, akkor ezzel a beállítással megkerülhetjük ezt az akadályt: [network] comment = Network Drive volume = ASVP-102-RTYUIKA path = /home/samba/network read only és writeable A read only és a writeable (vagy write ok) beállítások valójában ugyanazt mondják kétféle módon, csak más megközelítésben. Így például az alábbi beállítások mindegyikét a [global] vagy egy egyedi megosztásban is használhatjuk: read only = yes writeable = no Ha a fenti beállítások bármelyikét használjuk, akkor

olvashatók a megosztás adatai, de nem írhatók bele adatok. Azt gondolhatnánk, hogy csak akkor lehet szükségünk erre a beállításra, ha csak olvasható megosztást akarnánk létrehozni Jegyezzük meg azonban, hogy ez a csak olvasható viselkedés a megosztások alapértelmezés szerinti beállítása; ha azt szeretnénk, hogy írhatók is legyenek adatok egy megosztásba, akkor a konfigurációs fájl illető megosztására az alábbi beállítások valamelyikével kifejezetten engedélyezni kell ezt: read only = no writeable = yes 4. FEJEZET LEMEZMEGOSZTÁSOK | 111 Jegyezzük meg azt is, hogy ha bármelyik beállítást többször is megadjuk, akkor a Samba az utoljára megadott értéket örökíti át a megosztásra. A Samba hálózati beállításai Ha a Sambát több alhálózatot átfogó számítógépen akarjuk futtatni, vagy ha csak az a szándékunk, hogy biztonsági házirendet alkalmazzunk a saját alhálózatunkra, akkor közelebbről meg kell

vizsgálnunk a hálózati konfigurációs beállításokat. A vizsgálatainkhoz tegyük fel, hogy a Samba kiszolgálónk több alhálózatból álló hálózathoz csatlakozik. A hálózat alhálózatainak címe legyen 192168220* és 134.213233*. A hálózati konfigurációs beállításokhoz az alábbi bejegyzéseket kell belevenni a konfigurációs fájlba: [global] netbios name = HYDRA server string = Samba %v on (%L) workgroup = SIMPLE # Hálózati konfigurációs beállítások hosts allow = 192.168220 134213233 localhost hosts deny = 192.168220102 interfaces = 192.168220100/2552552550 134.213233110/2552552550 bind interfaces only = yes [data] path = /home/samba/data guest ok = yes comment = Data Drive volume = Sample-Data-Drive writeable = yes Először essék szó a hosts allow és a hosts deny beállításokról. Akik számára ismerősen hangzanak ezek a beállítások, azok feltehetően a számos Unix rendszer /etc könyvtáraiban található hosts.allow és hostsdeny

fájlokra gondolnak Ezeknek a beállításoknak azonos a rendeltetésük, mint az említett fájloknak; biztonsági eszközként használhatók, amellyel engedélyezhetjük vagy megtilthatjuk más gazdagépeknek az IP címükön alapuló kapcsolódását. Vajon miért nem használjuk közvetlenül magukat a hostsallow és hosts.deny fájlokat? Azért, mert a kiszolgálón lehetnek olyan szolgáltatások, amelyeket mások számára elérhetővé akarunk tenni anélkül, hogy engedélyeznénk a Samba lemezvagy nyomtatómegosztásaihoz való hozzáférést. A fenti hosts allow beállítással a következő, csonkított IP címet specifikáltuk: 192.168220 (Figyeljük meg, hogy kitettük a harmadik pontot, csak az utána következő negyedik számhármas hiányzik.) Az egyenlőség jelentése: ,,Az összes gazdagép a 192.168220 alhálózaton” Ugyanakkor a hosts deny sorban csak a 192168220102 című gazdagépnek tiltottuk meg a kapcsolódást. 112 | SAMBA Csodálkozhatunk, vajon

miért lesz megtagadva a 192.168220102 géptől a kapcsolódás, amikor ez annak az alhálózatnak a része, amelyre a hosts allow beállítás (vagyis az engedélyezés) vonatkozik? Az alábbiakban választ kapunk arra, hogy miként értékeli ki a Samba a hosts allow és a hosts deny beállításokat: 1. Ha az smbconf fájlban sehol sincs definiálva allow vagy deny beállítás, akkor a Samba bármely olyan gép kapcsolódását engedélyezi, amelynek a kapcsolódását maga a rendszer engedélyezi. 2. Ha az smbconf fájl [global] szakaszában vannak definiálva hosts allow és a hosts deny beállítások, akkor ezek az összes megosztásra vonatkoznak, még akkor is, ha a megosztásokban ezeket felülíró beállítások is vannak. 3. Ha csak egy megosztásra van definiálva egy hosts allow beállítás, akkor csak a felsorolt gazdagépek számára engedélyezett a megosztás használata A többi gazdagép hozzáférése le van tiltva. 4. Ha csak egy megosztásra van definiálva

egy hosts deny beállítás, akkor az összes olyan gazdagép, amelyik nem szerepel a felsorolásban, használhatja a megosztást. 5. Ha mind a hosts allow, mind a hosts deny beállítás definiálva van, akkor egy gazdagépnek meg kell jelennie az engedélyezettek (allow) listájában, és nem jelenhet meg (semmilyen formában) a tiltottak (deny) listájában ahhoz, hogy hozzáférhessen a megosztáshoz. Ellenkező esetben a gazdagép hozzáférése le lesz tiltva Ügyeljünk arra, hogy kifejezetten ne engedélyezzük egy gazdagépnek a hozzáférést egy megosztáshoz, hanem e helyett inkább tagadjuk meg a hozzáférést attól a teljes alhálózattól, amelynek a gazdagép is a része. Az utolsó pontra vonatkozóan nézzünk egy másik példát. Vegyük szemügyre a következő beállításokat: hosts allow = 111.222 hosts deny = 111.222333 Ebben az esetben csak a 111.222*.* alhálózathoz tartozó gazdagépek számára van engedélyezve a Samba megosztásaihoz való

hozzáférés. Attól az ügyféltől azonban, amelyik a 111.222333* alhálózathoz tartozik, meg lesz tagadva a hozzáférés, még ha a gazdagépek engedélyező listája szerint ez engedélyezve is van számára. Ahhoz, hogy egy ügyfél hozzáférhessen a Samba megosztásaihoz, nem elég, hogy megjelenik az engedélyezett gazdagépek között, hanem annak a feltételnek is teljesülnie kell, hogy ne szerepeljen a tiltólistán Ha egy számítógép olyan megosztáshoz akar hozzáférni, amelyikhez nincs engedélye, hibaüzenetet kap A két másik specifikált beállítás az interfaces és a bind interfaces only cím. Nézzük először az interfaces beállítást Alapértelmezés szerint a Samba az elsődleges hálózati interfészén keresztül küld ki adatokat, ami a 192168220100 alhálózat Ha azt szeretnénk, hogy több interfészen keresztül küldjön ki adatokat, akkor az interfaces beállításban a teljes listát meg kell adnunk Az előző példában a Sambát úgy

kötöttük ahhoz a két alhálózathoz (192.168220 és 134213233), amelyikben a számítógép működik, hogy 4. FEJEZET LEMEZMEGOSZTÁSOK | 113 megadtuk a másik hálózati interfész 134.213233100 címét Ha a számítógépünkben egynél több interfész van, akkor mindig meg kell adnunk ezt a beállítást, mert nincs garancia arra, hogy a Samba elsődleges interfészként a helyeset választja. Végül a bind interfaces only beállítás arra utasítja az nmbd processzt, hogy az interfaces beállításban definiált alhálózatokon kívüli hálózatokról érkező semmilyen más broadcast üzenetet ne fogadjon el. Vegyük észre, hogy ez nem azonos a hosts allow és a hosts deny beállításokkal, amelyek abban akadályozzák a gépeket, hogy kapcsolódhassanak a szolgáltatásokhoz, és nem abban, hogy broadcast üzeneteket kapjanak. A bind interfaces only beállítás az egyik módja annak, hogy megakadályozzuk, hogy a Samba kiszolgáló datagramokat fogadjon idegen

alhálózatokról. Emellett ez a beállítás arra utasítja az smbd processzt, hogy csak az interfaces beállításban felsorolt interfészekhez hozzon létre kötést. Ezzel behatárolja a Samba által kiszolgálható hálózatokat Hálózati beállítások Az előzőekben bemutatott hálózati beállításokat a 4.5 táblázat foglalja össze 4.5 táblázat Hálózati konfigurációs beállítások Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör hosts allow (allow hosts) hosts deny (deny hosts) interfaces Karakterlánc (gazdanevek listája) Azokat a gépeket adja meg, amelyek kapcsolódhatnak a Sambához. nincs Megosztás Karakterlánc (gazdanevek listája) Azokat a gépeket adja meg, amelyek nem kapcsolódhatnak a Sambához. nincs Megosztás Karakterlánc (IP/hálózati maszk kombinációja) Azokat a hálózati interfészeket adja meg, amelyekre a Samba válaszol. Lehetővé teszi az alapértelmezett értékek javítását. Ha yes az értéke,

a Samba csak az interfaces beállításban megadott interfészekhez kötődik. A figyelendő IP címet adja meg arra az esetre, ha több virtuális interfész van a kiszolgálóban. rendszertől függő Globális nincs Globális nincs Globális bind interfaces only socket address Boolean érték Karakterlánc (IP címek) 114 | SAMBA hosts allow A hosts allow beállítás (amelyet időnként allow hosts alakban is írnak) azokat a gépeket adja meg, amelyeknek hozzáférési jogosultságuk van a Samba kiszolgáló megosztásaihoz. A gépeket a nevük vagy az IP címük megadásával, egymástól vesszővel vagy szóközzel elválasztott módon kell felsorolni Némi biztonságot érhetünk el azzal, hogy ebben a beállításban megadjuk a helyi hálózat alhálózati címét. A példánkban ezt a következőképpen tettük meg: hosts allow = 192.168220 localhost Figyeljük meg, hogy az alhálózat cím után a localhost listaelemet is felsoroltuk. A hosts allow

beállítás használatával kapcsolatos egyik gyakori hiba, hogy véletlenül megtiltják, hogy a Samba kiszolgáló önmagával kommunikáljon. Az smbpasswd programnak viszont esetenként ügyfélként kell kapcsolódnia a Samba kiszolgálóhoz annak érdekében, hogy módosíthassa egy felhasználó titkosított jelszavát. Emellett a helyi tallózás továbbadása is igényli a localhost elérést. Ha ezt a beállítást engedélyeztük, de a localhost cím nincs megadva, akkor a Samba a titkosított jelszó módosítását kérő, helyileg generált csomagokat figyelmen kívül hagyja, és a tallózás továbbadása nem fog helyesen működni. Ennek elkerülése céljából kifejezetten engedélyezni kell a visszacsatolásos (loopback) címet (vagy a localhost, vagy a 127.001 cím megadásával)* A beállításhoz az alábbi formátumok bármelyike használható: • Gazdanevek, mint például ftp.examplecom • IP címek, mint például 130.639252 • Tartománynevek, amelyek az

előttük álló ponttal megkülönböztethetők az egyedi gazdanevektől. Így például a oracom az oracom tartományba tartozó összes számítógépet jelenti • Hálózatcsoportok, amelyek az @ karakterrel kezdődnek, mint például @printerhosts. A hálózatcsoportok yellow pages/NIS vagy NIS+ programokat futtató rendszerben léteznek Ha a rendszerünk támogatja a hálózatcsoportokat, akkor ehhez kell tartoznia egy leírásnak, amely részletesen ismerteti a használatukat. • Pontra végződő alhálózatok. Így például a 130639 az összes olyan számítógépet jelenti, amelynek a 130.639 számsorozattal kezdődik az IP címe • Az ALL kulcsszó, ami az összes ügyfél számára lehetővé teszi a hozzáférést. • Az EXCEPT kulcsszó, ami után egy vagy több név, IP cím, tartománynév, hálózatcsoport vagy alhálózat következik. Így például a hosts allow = ALL EXCEPT 192168110 beállítással előírhatjuk, hogy a Samba az összes gazdagépnek

engedélyezze a hozzáférést, kivéve a 192.168110 alhálózatba tartozó gépeket (ne feledkezzünk meg a lezáró pontról). Az ALL kulcsszó használata általában rossz ötlet, mert ezzel engedélyezzük, hogy bárki, bármely hálózaton tallózhassa a fájljainkat, akinek sikerült kitalálnia a kiszolgálónk nevét. * A Samba 2.05 verziójától kezdődően a localhost automatikus engedélyezett, kivéve ha kifejezetten nincs tiltva. 4. FEJEZET LEMEZMEGOSZTÁSOK | 115 Figyeljük meg, hogy a hosts allow konfigurációs beállításhoz nem tartozik alapértelmezés szerinti érték, bár alapvetően abból kell kiindulni, hogy abban az esetben, ha egyik beállítás sincs megadva, bármely forrásból engedélyezett a hozzáférés. Továbbá ha ezt a beállítást a [global] szakaszba írjuk be, akkor ez a definiált megosztásokban lévő bármelyik hosts allow beállítást felülírja. hosts deny A hosts deny (vagy másként deny hosts) beállítással azokat a

gépeket adhatjuk meg, amelyeknek nincs jogosultságuk egy megosztás eléréséhez. A gépeket a nevük vagy az IP címük megadásával, egymástól vesszővel vagy szóközzel elválasztott módon kell felsorolni. Az ügyfélgépek megadásához ugyanazokat a formátumokat használhatjuk, mint a hosts allow beállításánál az előbbiekben láttuk. Ha például bármely gép elől el szeretnénk zárni a kiszolgálót, kivéve az examplecom tartományt, akkor a következőt írhatjuk: hosts deny = ALL EXCEPT .examplecom A hosts allow beállításhoz hasonlóan a hosts deny konfigurációs beállításhoz sem tartozik alapértelmezés szerinti érték, bár alapvetően abból kell kiindulni, hogy abban az esetben, ha egyik beállítás sincs megadva, bármely forrásból engedélyezett a hozzáférés. Továbbá ha ezt a beállítást a [global] szakaszba írjuk be, akkor ez a definiált megosztásokban lévő bármelyik hosts deny beállítást felülírja. Ha a gazdagépektől

meg akarjuk tagadni adott megosztások elérését, akkor a konfigurációs fájl [global] szakaszába se a hosts allow, se a hosts deny beállítást ne írjuk be. interfaces Az interfaces beállítás azokat a hálózati címeket sorolja fel, amelyeket a Samba kiszolgáló észlel, és amelyek kéréseire válaszol. Ez a beállítás jól használható olyan esetben, ha a számítógépünk egy vagy több alhálózathoz tartozik. Ha nem használjuk ezt a beállítást, akkor a Samba az indulásakor az elsődleges hálózati interfészt keresi (ami tipikusan az első Ethernet kártya), és úgy konfigurálja magát, hogy csak abban az alhálózatban működjön. Ha a kiszolgáló egynél több alhálózatra van konfigurálva, de nem használjuk ezt a beállítást, akkor a Samba csak az elsőként megtalált alhálózatban fog működni. Ezzel a beállítással kényszeríthetjük ki, hogy a Samba a hálózatunk többi alhálózatát is kiszolgálja. A beállítás értéke egy vagy

több IP cím/alhálózat címpár sorozata lehet, például az alábbiak szerint: interfaces = 192.168220100/2552552550 19216821030/2552552550 Az értéket CIDR formátumú bitmaszkként is megadhatjuk az alábbi módon: interfaces = 192.168220100/24 19216821030/24 A bitmaszkban lévő szám a hálózati maszkban 1-re állított első bitek számát adja meg. Így például a 24 azt jelenti, hogy a bitmaszk első 24 bitje (a 32 közül) 1 értékű, ami egyenértékű a 255.2552550 címmegadással Ehhez hasonlóan a 16 a 25525500 címet, a 8 pedig a 255.000 címet jelenti 116 | SAMBA DHCP kiszolgáló használata esetén előfordulhat, hogy ez a beállítás nem működik helyesen. bind interfaces only A bind interfaces only beállítás segítségével arra kényszeríthetők az smbd és az nmbd processzek, hogy csak az ebben a beállításban megadott címekről érkező SMB kéréseket szolgálják ki. Az nmbd processz normál esetben a 137-es és a 138-as porton az

összes interfészcímhez (0.000) létrehozza a kötést, és így lehetővé teszi a broadcast üzenetek bármely forrásból származó fogadását. Ezt a viselkedését azonban az alábbi beállítással felülírhatjuk: bind interfaces only = yes Ez a beállítás arra utasítja mindkét Samba processzt, hogy hagyja figyelmen kívül mindazokat a csomagokat, amelyeknek a kiinduló címe nem azonos az interfaces beállításban megadott broadcast címmel (címekkel), beleértve a broadcast csomagokat is. Az smbd processzt illetően ennek a beállításnak az a következménye, hogy a Samba azoknak az alhálózatoknak a fájlkéréseit nem fogja kiszolgálni, amelyek nincsenek felsorolva az interfaces beállításban. Kerülnünk kell ezt a beállítást, ha engedélyezni szeretnénk az olyan, átmeneti hálózati kapcsolatokat, amelyek például SLIP vagy PPP protokollokon keresztül jönnek létre. Erre a beállításra csak nagyon ritka esetben lehet szükség, és akkor is csak

szakembereknek ajánlott a használata. Ha a bind interfaces only beállításhoz a yes értéket rendeljük, akkor az ,,interfaces” listába vegyük fel a localhost címet (127.001) is Ellenkező esetben az smbpasswd nem lesz képes az alapértelmezett módjában kapcsolódni a kiszolgálóhoz, hogy módosítson egy jelszót. socket address A socket address beállítás azt mondja meg, hogy a Samba az interfaces paramétereivel megadott címek közül melyekre figyeljen a kapcsolatok létrejöttekor. A Samba az alapértelmezés szerint specifikált összes címről fogadja a kapcsolatokat. Az smbconf fájlban ezzel a beállítással előírhatjuk, hogy a Samba csak egyetlen IP címre figyeljen Például: interfaces = 192.168220100/24 19216821030/24 socket address = 192.16821030 Ez a beállítás a programozók egyik eszköze, és nem javasoljuk a használatát. 4. FEJEZET LEMEZMEGOSZTÁSOK | 117 Virtuális kiszolgálók A virtuális kiszolgálók segítségével azt a

látszatot kelthetjük, mintha egy hálózaton több NetBIOS kiszolgáló is létezne, miközben a valóságban csak egy van belőlük. Ezt úgy valósíthatjuk meg, hogy egy gépet az IP címéhez kapcsolódóan egynél több NetBIOS névvel jelentjük be. Virtuális kiszolgálók létrehozásának kézzelfogható előnyei vannak A pénzügyi osztálynak lehet például egy szamla nevű kiszolgálója, amelynek az ügyfelei csak a számlázassal kapcsolatos meghajtókat és nyomtatókat látják. Ehhez hasonlóan a marketing osztálynak is lehet egy saját, marketing nevű kiszolgálója, amely a vele kapcsolatos jelentéseket tartalmazza, és így tovább. Ugyanakkor (egy nyugodtabb rendszergazdával) elképzelhető, hogy az összes szolgáltatást egyetlen, közepes méretű Unix munkaállomás nyújtja, ahelyett, hogy mindegyik osztálynak saját kisebb kiszolgálója és rendszergazdája lenne A Samba lehetővé teszi, hogy egy Unix kiszolgáló egynél több NetBIOS nevet

használjon. Erre a netbios aliases beállítás szolgál (lásd a 46 táblázatot) 4.6 táblázat A virtuális kiszolgáló konfigurációs beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör netbios aliases NetBIOS nevek listája További NetBIOS nevek több ,,virtuális” Samba kiszolgáló használatához. Nincs Globális netbios aliases A netbios aliases beállítás segítségével a Samba kiszolgálóhoz egynél több NetBIOS nevet rendelhetünk. Az értéklistában felsorolt mindegyik NetBIOS név megjelenik a tallózó számítógép Network Neighborhood ablakában Amikor azonban bármely ügyfél valamilyen kéréssel fordul a kiszolgálóhoz, mindig ugyanazt a Samba kiszolgálót éri el Ez a beállítás akkor jöhet jól, ha például három osztály adatait továbbítjuk egyetlen, nagy kapacitású lemezmeghajtókkal felszerelt Unix kiszolgálóhoz, és más célokra akarjuk használni a régi NT kiszolgálókat. Ha a három

osztály neve sales, accounting és admin, akkor az alábbi módon úgy állíthatjuk be a Samba kiszolgálót, hogy három különböző kiszolgálónak láttassa magát: [global] netbios aliases = sales accounting admin include = /usr/local/samba/lib/smb.conf%L A 4.7 ábra szemlélteti, hogy mi jelenne meg egy ügyfél Network Neighborhood ablakában Amikor az ügyfél megkísérli a kapcsolat felvételét a Samba kiszolgálóval, megadja annak a kiszolgálónak a nevét, amelyikhez kapcsolódni szeretne – ezt a %L változó teszi lehetővé. Ha a kért kiszolgáló a sales, a Samba a /usr/local/samba/lib/smbconfsales fájlt illeszti be. Ez a fájl globális és megosztásos deklarációkat tartalmazhat kizárólagosan a sales osztályhoz, például a következők szerint: 118 | SAMBA [global] workgroup = SALES hosts allow = 192.16810255 [sales1998] path = /usr/local/samba/sales/sales1998/ . Ebben a példában egyidejűleg a SALES nevet rendeltük a munkacsoporthoz, és

úgy állítottuk be az IP címet, hogy csak a SALES alhálózatból (192.16810) engedélyezzük a kapcsolatokat Emellett megosztásokat is kínálunk specifikusan a sales (kereskedelmi) osztály számára. 4.7 ábra NetBIOS álnevek használata egy Samba kiszolgálón A naplózás konfigurációs beállításai Esetenként szükségünk lehet arra, hogy tájékozódjunk a Samba állapotáról. Ez különösen igaz olyan esetekben, amikor a Samba váratlan műveleteket végez, vagy éppenséggel semmit sem tesz. Az ilyen esetek felderítéséhez át kell néznünk a Samba naplófájljait, hogy pontosan lássuk, mit és miért tett. A Samba naplófájljai tetszésünk szerint szűkszavúak, vagy éppen bőbeszédűek is lehetnek. Az alábbiakban arra látunk példát, milyen lehet a Samba naplófájlja: [1999/07/21 13:23:25, 3] smbd/service.c:close cnum(514) phoenix (192.168220101) closed connection to service IPC$ [1999/07/21 13:23:25, 3] smbd/connection.c:yield connection(40)

Yielding connection to IPC$ [1999/07/21 13:23:25, 3] smbd/process.c:process smb(615) Transaction 923 of length 49 [1999/07/21 13:23:25, 3] smbd/process.c:switch message(448) switch message SMBread (pid 467) [1999/07/21 13:23:25, 3] lib/doscalls.c:dos ChDir(336) dos ChDir to /home/samba 4. FEJEZET LEMEZMEGOSZTÁSOK | 119 [1999/07/21 13:23:25, 3] smbd/reply.c:reply read(2199) read fnum=4207 num=2820 nread=2820 [1999/07/21 13:23:25, 3] smbd/process.c:process smb(615) Transaction 924 of length 55 [1999/07/21 13:23:25, 3] smbd/process.c:switch message(448) switch message SMBreadbraw (pid 467) [1999/07/21 13:23:25, 3] smbd/reply.c:reply readbraw(2053) readbraw fnum=4207 start=130820 max=1276 min=0 nread=1276 [1999/07/21 13:23:25, 3] smbd/process.c:process smb(615) Transaction 925 of length 55 [1999/07/21 13:23:25, 3] smbd/process.c:switch message(448) switch message SMBreadbraw (pid 467) A fenti információk nagy részét csak a Samba programozói használják. Ennek ellenére

néhány bejegyzés jelentésére a ,,Hibakeresés a Sambában” című 9. fejezetben részletesen is kitérünk A Samba hat beállítás segítségével teszi lehetővé a felhasználók számára, hogy meghatározzák, hová íródjanak be a bejelentkezési információk. E beállítások mindegyike globális, és a megosztás definícióján belül nem jelenhetnek meg Az alábbiak egy frissített konfigurációs fájlra mutatnak példát, amely az eddigiekben látott összes megosztást és bejelentkezési beállítást tartalmazza: [global] netbios name = HYDRA server string = Samba %v on (%I) workgroup = SIMPLE # Networking configuration options hosts allow = 192.168220 134213233 localhost hosts deny = 192.168220102 interfaces = 192.168220100/2552552550 134.213233110/2552552550 bind interfaces only = yes # Debug logging information log level = 2 log file = /var/log/samba.log%m max log size = 50 debug timestamp = yes [data] path = /home/samba/data browseable = yes guest ok = yes

comment = Data Drive volume = Sample-Data-Drive writeable = yes 120 | SAMBA Az előző fájlba felvettünk egy egyéni naplófájlt (log file), ami a 2-es hibakeresési szintig fogja tartalmazni az információkat. Ez viszonylag szűkszavú hibakeresési szintet jelent A hibakeresési szintek 1 és 10 között lehetnek – az 1-es szint csak nagyon kevés információt rögzít, míg a 10-es szint rengeteg, alacsony szintű információt nyújt. A 2-es szint tekinthető olyan fokúnak, ami hasznos a hibakereséshez, de nem foglal el túlságosan sok helyet a kiszolgáló merevlemezén. A gyakorlatban 3-nál magasabb szintet nem célszerű használnunk, hacsak nem programozni akarjuk a Sambát A naplófájl a log file konfigurációs beállításának megfelelően a /var/log könyvtárba kerül. Ehelyett azonban egy változót is használhatunk, amelynek segítségével megadhatjuk, hogy a naplófájlok kifejezetten az egyedi felhasználóknak vagy ügyfeleknek megfelelő

könyvtárakba kerüljenek Ehhez az %m változót kell használnunk a következő sorban: log file = /usr/local/logs/samba.log%m Az egyes naplófájlok egymástól való elkülönítése felbecsülhetetlen jelentőségű lehet egy hálózati hiba keresésekor, ha tudjuk, hogy a problémát egy adott számítógép vagy felhasználó okozza. Még egy megszorítást tettünk a naplófájlokra: egyikük mérete sem haladhatja meg az 50 kilobájtot, amint ezt a max log size beállításban előírtuk. Ha a naplófájl mérete túllépné ezt a határt, akkor a tartalma átkerülnek egy azonos nevű, old kiterjesztésű fájlba Ha ez az .old fájl már létezne, akkor felülíródna a tartalma, és a régi tartalma elveszne Az eredeti naplófájl tartalma törlődik, és várja az új naplóbejegyzéseket. Ilyen módon elejét vehetjük annak, hogy a démonok élete során túlterheljük a merevlemezt a Samba naplófájljaival. Kényelmi okokból úgy határoztunk, hogy a debug timestamp

beállítással meghagyjuk a naplófájlokban a hibakeresés időbélyegét, ami egyébként az alapbeállítás. Ez a beállítás a naplófájl minden egyes bejegyzése mellé elhelyez egy időbélyeget Ha erre az adatra nem lenne szükségünk, akkor egyszerűen rendeljük a no értéket ehhez a beállításhoz A syslog használata Ha a Samba standard naplófájlja mellett vagy helyett a rendszernaplózót (syslog) akarjuk használni, akkor erre is megvannak a megfelelő beállítások. Ahhoz azonban, hogy használni tudjuk a syslog naplózót, meg kell győződnünk arról, hogy a Sambát előzőleg a configure – with-syslog beállítással építettük fel A Samba konfigurálásával és lefordításával kapcsolatban a 2 fejezetben olvashattunk részleteket Miután ezt megtettük, úgy kell konfigurálnunk az /etc/syslog.conf fájlt, hogy fogadja a naplózási információkat a Sambától. Ha még nem lenne egy daemon* bejegyzés az /etc/syslog.conf fájlban, akkor vegyük fel

bele a következő sort: daemon.* /var/log/daemon.log Ez a sor azt írja elő, hogy a rendszer démonjaitól származó naplózási információkat a /var/log/daemon.log fájl tárolja A Samba információit is ez a fájl tárolja Innen kiindulva az alábbi globális beállítást adhatjuk meg a konfigurációs fájlban: syslog = 2 4. FEJEZET LEMEZMEGOSZTÁSOK | 121 Ezzel azt írjuk elő, hogy az 1-es szintű naplóüzenetek mind a syslog, mind a Samba naplófájljaiba beíródjanak. (A syslog prioritásairól a ,,syslog” című következő fejezetrészben lesz szó) Tegyük fel, hogy a szokásos naplózási szintet 4-nél nagyobbra állítottuk be Ekkor a 2-es, a 3-as és a 4-es szintű naplóüzenetek a Samba naplófájljaiba, és nem a syslog rendszernaplózóra kerülnek. Csak az 1-es szintű naplóüzenetek kerülnek be mindkét típusú naplófájlba. Ha a syslog beállítás értéke nagyobb a log level beállítás értékénél, akkor semmi sem íródna a syslog

rendszernaplózóra. Ha azt szeretnénk, hogy az üzenetek csak a syslog rendszernaplóba kerüljenek be, a Samba standard naplófájljaiba viszont ne, akkor a következő bejegyzést helyezzük el a konfigurációs fájlba: syslog only = yes Ebben az esetben a syslog beállításban megadott szint fölötti naplóinformációk figyelmen kívül maradnak, akárcsak a log level beállításé. Naplózási konfigurációs beállítások A 4.7 táblázat felsorolja a Sambában használható naplózási konfigurációs beállításokat 4.7 táblázat Naplózási konfigurációs beállítások Beállítás Paraméterek Karakterlánc (a fájlnév teljes elérési útja) log level Numerikus (debug (0-10) level) log file max log size Numerikus (KB-ban megadva) debug Boolean érték timestamp (timestamp logs) Funkció Alapértelmezett érték Hatókör Megadja a Samba által használt naplófájl nevét és helyét. A standard változók használhatók. Megadja a naplófájlba

kerülő naplózási/hibakeresési üzenetek mennyiségét. 0nál nincs üzenet, a 3-as szint elfogadható mennyiség. Megadja a naplófájl maximális méretét. Ha a naplófájl meghaladja ezt a méretet, az old kiterjesztést kapja, és új naplófájl jön létre Ha no az értéke, a naplófájlba nem kerül időbélyeg, és könnyebben olvasható sok hiba esetén. A Samba makefájlban megadva. Globális 1 Globális 5000 Globális yes Globális 122 | SAMBA 4.7 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör syslog Numerikus (0-10) 1 Globális syslog only Boolean érték Megadja a syslog rendszernaplózóra küldendő üzenetek szintjét. A syslog alatti szintek a rendszernaplóba kerülnek. Ha yes az értéke, akkor csak rendszernapló készül, és semmi sem kerül a Samba standard naplófájljaiba. no Globális log file A kiszolgálónkon a Samba a naplóinformációkat a home könyvtárának var

alkönyvtárában levő szöveges fájlokba küldi, amint ezt a lefordításakor a make-fájl beállította. A log file beállítás segítségével új helyet és nevet választhatunk a naplófájl számára. Ha például a Samba naplófájljának a sambalog nevet akarjuk adni, és a fájlt a /usr/local/logs/ könyvtárban akarjuk elhelyezni, akkor a következő beállítást használjuk: [global] log file = /usr/local/logs/samba.log Változókat is használhatunk, ha egyedi naplófájlokat akarunk létrehozni az egyes felhasználók vagy ügyfelek számára. Bármelyik démon indításakor az -l parancssori kapcsolóval felülbírálhatjuk a naplófájl alapértelmezés szerinti helyét. Ez azonban nem bírálja felül a log file beállítást Ha használjuk ezt a beállítást, az induláskori naplóinformációk az -l kapcsoló után megadott fájlba (vagy a Samba make-fájljában megadott alapértelmezett fájlba) kerülnek mindaddig, amíg a démonok nem dolgozzák fel az

smb.conf fájlt, és nem tudják, hogy az információkat új naplófájlba kell átirányítaniuk log level A log level beállítással a naplózandó adatok mennyiségét szabályozhatjuk. Normál esetben ehhez a 0 vagy az 1 értéket rendeljük Ha viszont egy különleges problémának kell utánajárnunk, a 3-as értéket is használhatjuk, ami a leghasznosabb információkat szolgáltatja egy probléma gyökerének megkereséséhez. A 3-as fölötti szinteket elsősorban a programfejlesztők használják a belső hibák feltárásához, ami jelentősen lelassítja a kiszolgáló működését. Ezért a 3-as és az e fölötti szintek beállítása nem ajánlott [global] log file = /usr/local/logs/samba.log%m log level = 3 4. FEJEZET LEMEZMEGOSZTÁSOK | 123 max log size A max log size beállítás segítségével a Samba által kezelt hibakereső naplófájlok maximális méretét állíthatjuk be kilobájtokban. Ha a naplófájl mérete meghaladja ezt az értéket, az

aktuális naplófájl tartalma átkerül egy azonos nevű, old kiterjesztésű fájlba (az előzőleg létezett ilyen nevű és kiterjesztésű fájl tartalma törlődik), és új naplófájl készül az eredeti névvel. Például: [global] log file = /usr/local/logs/samba.log%m max log size = 1000 Ezt a beállítást használva, ha bármelyik naplófájl mérete meghaladja az 1 megabájtot, a Samba a samba.log naplófájlt a számítógépnévold névre nevezi át, és új naplófájlt generál Ha korábban volt már egy hasonló nevű, old kiterjesztésű fájl, akkor a Samba törli azt Nagyon ajánlott a konfigurációs fájlokban ennek a beállításnak a használata, mert a hibakereső naplózások (akár még alacsonyabb szinten is) elfogyaszthatják a merevlemezen rendelkezésre álló lemezterületet. Ezt a beállítást használva megóvhatjuk az elővigyázatlan rendszergazdákat attól, hogy egyszer csak rádöbbenjenek arra, hogy a lemezterület nagy részét egyetlen

Samba naplófájl foglalja el. debug timestamp vagy timestamp logs Ha éppen egy hálózati probléma elhárításán dolgozunk, és úgy gondoljuk, hogy útban vannak a Samba naplóbejegyzései előtt álló dátum- és időbélyegek, akkor kikapcsolhatjuk ezeket, ha akár a timestamp logs, akár a debug timestamp beállításhoz (ezek egymás szinonimái) a no értéket rendeljük. Egy szokásos Samba naplófájlba például az alábbi kimenet kerülhet: 12/31/98 12:03:34 hydra (192.168220101) connect to server network as user davecb Ha viszont ehhez a beállításhoz a no értéket rendeljük, akkor a kimenet dátumbélyeg vagy időbélyeg nélkül jelenhet meg: hydra (192.168220101) connect to server network as user davecb syslog A syslog beállítás hatására a Samba naplóüzenetei a Unix rendszernaplózó démonjára kerülnek. A küldendő naplóinformációk típusát paraméterrel adhatjuk meg A log level beállításhoz hasonlóan ennek is 1 és 10 között lehet az

értéke. A megadott számnál alacsonyabb szintű naplóinformációk a rendszernaplóba kerülnek. A syslog beállításban megadott szinttel azonos vagy annál magasabb szintű naplóinformációkat a Samba standard naplófájljai fogják tartalmazni. Ha ezt meg akarjuk akadályozni, akkor a syslog only beállítást használjuk. Például: 124 | SAMBA [global] log level = 3 syslog = 1 Ezt a beállítást megadva a 0-ás szintű naplóinformációk mind a standard, mind a rendszernaplóba bekerülnek, míg az 1-es, 2-es és 3-as szintű információk csak a standard naplófájlokba. A 3-asnál magasabb szintű információk egyáltalán nem lesznek naplózva Figyeljük meg, hogy a rendszernaplózóra küldött üzenetek a syslog processzeknek megfelelő, különböző prioritási szintű naplókba kerülnek, amint ez a 4.8 táblázatban látható Az alapértelmezés szerinti szint értéke 1. 4.8 táblázat A syslog naplóprioritásai Log Level A syslog prioritásai 0 1 2

3 4 és e fölött LOG ERR LOG WARNING LOG NOTICE LOG INFO LOG DEBUG Ha használni akarjuk a syslog rendszernaplózót, akkor a configure --with-syslog beállítást kell használnunk a Samba lefordításához, és ennek megfelelően kell konfigurálnunk az /etc/syslog.conf fájlt (lásd ,,A syslog használata” című előző fejezetrészt) syslog only A syslog only beállítás arra utasítja a Sambát, hogy a naplózáshoz csak a rendszernaplózó démont használja. Ha ezt szeretnénk, akkor a Samba konfigurációs fájljának [global] szakaszában helyezzük el a következő bejegyzést: [global] syslog only = yes Tallózás és a lemezmegosztások folytatása Ebben a fejezetben folytatjuk a lemezmegosztásokról az előző fejezetben elkezdett fejtegetéseinket. Megismerkedünk a Windows és a Unix fájlrendszerei közötti különbségekkel, és látni fogjuk, miképpen hidalja át ezeket a Samba Meglepődve fogjuk tapasztalni, hogy mennyi eltérés van a DOS és a Unix

fájlrendszere között. Emellett röviden szólunk a névzsugorításról, a fájlok zárolásáról és a Samba egyik viszonylag új képességéről, az ,,opportunista” zárolásról. Mielőtt azonban elmerülnénk ezekbe a részletekbe, ismerkedjünk meg egy valamelyest misztikus témával, nevezetesen a tallózással Tallózás A tallózás ebben az összefüggésben azt a tevékenységet jelenti, hogy megvizsgáljuk, milyen kiszolgálók és megosztások találhatók a hálózaton. A Windows NT 40 vagy Windows 95/98 operációs rendszert használó felhasználók a Network Neighborhood (Hálózat) ablakban tallózhatják a hálózat kiszolgálóit. A kiszolgálót jelképező ikonra kettőt kattintva azt is megnézhetik, hogy az adott kiszolgálón milyen nyomtató- és lemezmegosztások érhetők el A Windows parancssorába a net view parancs beírásával is megnézhetjük, milyen kiszolgálók érhetők el a hálózaton. A parancs hatására például az alábbi eredményt

kaphatjuk: C:>net view Servers available in workgroup SIMPLE Server name Remark ----------------------------------------------------\CHIMAERA Windows NT 4.0 \HYDRA Samba 2.04 on (hydra) \PHOENIX Windows 98 A tallózás letiltása A browseable beállítás segítségével kizárhatunk egy megosztást a tallózólistából. Az ilyen módon kizárt megosztás egyáltalán nem jelenik meg a Network Neighborhood ablakában. Ha például azt szeretnénk, hogy az előző fejezetben használt [data] megosztás ne legyen látható, akkor a következőket kell beírnunk: 126 | SAMBA [data] path = /home/samba/data browseable = no guest ok = yes comment = Data Drive volume = Sample-Data-Drive writeable = yes Bár egy megosztást feltehetően nem azért hozunk létre, hogy elrejtsük a felhasználók előtt, bizonyos esetekben mégis jól jön ez a lehetőség. Készíthetünk például egy [netlogin] megosztást, amelyben a Windows tartományvezérlőinek bejelentkezési szkriptjeit

akarjuk tárolni (a bejelentkezési szkriptekről további információk a ,,Felhasználók, biztonság és tartományok” című 6. fejezetben olvashatunk) Másik példa lehet erre a [homes] megosztás. Ezt a megosztást gyakran nem tallózhatónak állítják be, úgyhogy ez nem jelenik meg, amikor a felhasználó az ezt a megosztást tartalmazó gépet tallózza. Ha viszont egy alice nevű felhasználó bejelentkezik, és tallózza a gépet, az illető gép helyett egy [alice] megosztás fog megjelenni. Hogyan érhetnénk el, hogy minden ügyfél előtt megjelenjen ez a megosztás, mielőtt még az alice nevű felhasználó bejelentkezne? A megoldás a globális auto service beállítás. Ez a beállítás előre betölti a megosztásokat egy tallózólistába, hogy mindig láthatók legyenek a megosztások: [global] . auto services = alice . Alapértelmezett szolgáltatások Arra az esetre, ha egy felhasználó nem tudna sikeresen kapcsolódni egy megosztáshoz, megadhatunk egy

alapértelmezett megosztást, amelyhez mindig tud kapcsolódni. Miután nem tudhatjuk, hogy egy adott időben éppen ki akarja használni ezt a megosztást, vegyük fel hozzá a guest ok = yes beállítást. Egy default service (alapértelmezett szolgáltatás) specifikálása akkor lehet hasznos, ha valakinek végső segítségként egy súgófájlt akarunk a rendelkezésére bocsátani Például: [global] . default service = helpshare . [helpshare] path = /home/samba/helpshare/%S browseable = yes guest ok = yes comment = Alapértelmezett megosztás sikertelen kapcsolatnál volume = Sample-Data-Drive writeable = no 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 127 Figyeljük meg, hogy a path beállításban a %S változót használtuk. Ez a változó a kért, de nem létező megosztásra hivatkozik (a felhasználó által kért eredeti megosztásra), és nem az eredményül kapott alapértelmezett megosztásra. Így lehetőségünk van arra, hogy az egyes

kiszolgálók nevével különböző elérési utakat definiáljunk, és így egyénre szabott súgófájlokat bocsássunk a felhasználók rendelkezésére. Emellett a %S változó azt is lehetővé teszi, hogy a kért megosztásban lévő aláhúzásjelek ( ) törtvonallá (/) alakuljanak át Tallózó kiválasztása Amint az 1. fejezetben említettük, mindegyik alhálózatban van egy számítógép, amelyik listát vezet az éppen aktív gépekről. Ezt a listát tallózólistának nevezzük, a listát vezető kiszolgálónak pedig helyi főtallózó a neve. Amint különböző gépek rákapcsolódnak a hálózatra vagy lekapcsolódnak róla, a helyi főtallózó folyamatosan frissíti a tallózólistát, és kérésre bármelyik gép rendelkezésére bocsátja. A helyi alhálózatban a tallózó kiválasztásának eredményétől függően lehet egy számítógép a helyi főtallózó. A tallózó kiválasztása bármikor kikényszeríthető A Samba különböző módon képes a

választási eredmény ,,meghamisítására”, beleértve azt is, hogy az adott alhálózatban mindig ő legyen a helyi főtallózó, vagy éppenséggel sohase legyen az. Így például az alábbi beállításokkal, amelyekkel a 4. fejezetben használt konfigurációs fájlt egészítjük ki, biztosíthatjuk, hogy a Samba mindig megnyerje a helyi főtallózó szerepéért folytatott versenyt, függetlenül attól, hogy milyen más gépek vannak még a hálózatban: [global] netbios name = HYDRA server string = Samba %v on (%L) workgroup = SIMPLE # A tallózó kiválasztás beállításai os level = 34 local master = yes # A hálózat konfigurációs beállításai hosts allow = 192.168220 134213233 localhost hosts deny = 192.168220102 interfaces = 192.168220100/2552552550 134.213233110/2552552550 # Naplózás log level = 2 log file = /var/log/samba.log%m max log size = 50 debug timestamp = yes [data] path = /home/samba/data browseable = yes 128 | SAMBA guest ok = yes comment =

Data Drive volume = Sample-Data-Drive writable = yes Mit kell tennünk azonban akkor, ha nem akarjuk mindig megnyerni a választást? Mit kell tennünk, ha azt szeretnénk, hogy egy Windows NT Server legyen a főtallózó, ha rákapcsolódik a hálózatra? Amint tudjuk, minden olyan gépnek, amely részt vesz a versengésben, információkat kell szétküldenie magáról. Ezek az információk a következőket tartalmazzák: • a használt választási protokoll verziója; • a gépen futó operációs rendszer; • az ügyfél által a hálózaton eltöltött idő tartama; • az ügyfél gazdaneve. A verseny a következők szerint dől el. Az operációs rendszerekhez a verziójuktól függően egy-egy bináris érték tartozik az 5.1 táblázat szerint 5.1 táblázat Az operációs rendszerek értékei a választásban Operációs rendszer Érték Windows NT Server 4.0 Windows NT Server 3.51 Windows NT Workstation 4.0 Windows NT Workstation 3.51 Windows 98 Windows 95 Windows

3.1 for Workgroups 33 32 17 16 2 1 1 Ezt követően a hálózathoz kapcsolódó mindegyik számítógéphez még egy másik érték is tartozik a hálózatban betöltött szerepüktől függően (lásd az 5.2 táblázatot) 5.2 táblázat A számítógépek szerepe a választásban Szerep Érték Elsődleges tartományvezérlő WINS ügyfél Preferált főtallózó Aktív főtallózó Készenléti tallózó Aktív biztonsági tallózó 128 32 8 4 2 1 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 129 A választások a következő sorrendben történnek: 1. A választási protokoll legmagasabb számú verziója győz (Ennek itt még nincs jelentősége, mert az összes Windows ügyfélnek 1-es verziójú a választási protokollja) 2. A legnagyobb értékű operációs rendszert használó számítógép győz 3. Ha egyezőség van, akkor a preferált főtallózó (8-as szerep) gép győz 4. Ha továbbra is van egyezőség, a legrégebben a hálózaton lévő

ügyfélgép győz 5. Ha még mindig van egyezőség, akkor az a gép győz, amelyiknek a neve ábécé sorrendben megelőzi a többi gép nevét 6. Végül a második helyezett gép lesz a tartaléktallózó Ha tehát azt szeretnénk, hogy a Samba legyen a helyi főtallózó, de csak abban az esetben, ha nincs a hálózatban Windows NT Server (4.0 vagy 351), akkor az előző példánkban az os level beállítás értékét a következők szerint módosítsuk: os level = 31 Ennek hatására a Samba azonnal elveszíti a versenyt egy Windows NT 4.0 vagy Windows NT 3.5 Server géppel szemben, mert ezeknek magasabb szintű az operációs rendszerük Másrészt viszont, ha azt akarjuk, hogy a helyi főtallózóért folytatott verseny a gépeknek a hálózaton betöltött szerepe szerint dőljön el, például aszerint, hogy melyikük az elsődleges tartományvezérlő, akkor az os level beállításhoz a hálózat legmagasabb szintű operációs rendszerét rendeljük, és a prioritási

sorrendben szorítsuk a második helyre a választási protokollt. Hogyan tudható meg egy gépről, hogy az helyi főtallózó? Ehhez az nbtstat parancsot kell kiadnunk. A parancs után az -a kapcsolót használva írjuk be a vizsgálandó gép nevét: C:>nbtstat -a hydra NetBIOS Remote Machine Name Table Name Type Status ---------------------------------------------------------HYDRA <00> UNIQUE Registered HYDRA <03> UNIQUE Registered HYDRA <20> UNIQUE Registered . MSBROWSE <01> GROUP Registered SIMPLE <00> GROUP Registered SIMPLE <1D> UNIQUE Registered SIMPLE <1E> GROUP Registered MAC Address = 00-00-00-00-00-00 A keresett erőforrás-bejegyzés az . MSBROWSE <01> Ez jelzi, hogy a kiszolgáló az aktuális alhálózatban éppen a helyi főtallózó szerepét tölti be. Emellett ha ez a gép egyúttal egy Samba kiszolgáló is, az nmbd naplófájlban is kereshetünk egy ehhez hasonló bejegyzést: 130 | SAMBA

nmbd/nmbd become lmb.c:become local master stage2(406) * Samba name server HYDRA is now a local master browser for workgroup SIMPLE on subnet 192.168220100 * Végül az elsődleges tartományvezérlő szerepét betöltő Windows NT kiszolgálók még egy lehetőséget kínálnak arra, hogy bizonyos körülmények között a helyi főtallózó szerepkörében mutatkozzanak meg. Ezt az ún preferált főtallózó bit teszi lehetővé A Samba saját maga is be tudja állítani ezt a bitet, ha a preferred master beállítással engedélyezzük a számára: # A tallózó kiválasztás beállításai os level = 33 local master = yes preferred master = yes Ha a preferált főtallózó bit értéke 1, akkor a gép induláskor kikényszeríti a tallózó kiválasztását. Erre természetesen csak akkor van szükség, ha az os level beállításhoz egy Windows NT gép operációs rendszerét rendeltük. Ennek a beállításnak a használata nem ajánlott, ha más gépek is szerepelhetnek

preferált főtallózóként, mint például egy NT kiszolgáló. Tartomány-főtallózó Ez első fejezetben említettük, hogy ha azt akarjuk, hogy egy Windows munkacsoport vagy tartomány több alhálózatra legyen kiterjeszthető, akkor az egyik gépet tartományfőtallózóvá kell tennünk. A tartomány-főtallózó adja tovább a tallózólistákat a munkacsoport alhálózataiban Ezt azért teheti meg, mert az egyes helyi főtallózók rendszeres időközönként szinkronizálják a tallózólistájukat a tartomány-főtallózóval A szinkronizálás során a helyi főtallózó mindazon kiszolgálóra elküldi a tallózólistáját, amelyet a tartományfőtallózó nem tartalmaz, és fordítva. Így ha minden rendben működik, minden egyes helyi főtallózón rendelkezésre áll a teljes tartományra vonatkozó tallózólista. A helyi főtallózótól eltérően itt nincs olyan versengés, ami eldöntené, hogy melyik gép töltse be a tartomány-főtallózó szerepét. Ezt a

rendszergazdának kézzel kell beállítania A Microsoft-féle megvalósítás szerint azonban mind a tartomány-főtallózó, mind az elsődleges tartományvezérlő (PDC) <1B> típusú erőforrásként regisztrálja magát, vagyis a szerepek és a gépek nem választhatók el egymástól. Ha van a hálózatunkban egy elsődleges tartományvezérlő szerepét betöltő Windows NT kiszolgáló, akkor az javasolható, hogy ne a Samba kiszolgáló legyen a tartomány-főtallózó. Ugyanez fordítva is igaz: ha a Samba venné át az elsődleges tartományvezérlő szerepét, akkor ez legyen a tartomány-főtallózó is Bár a Samba esetében megosztható ez a két szerep, nem célszerű így tenni. Ha két különböző gépet használnánk elsődleges tartományvezérlőként és tartomány-főtallózóként, akkor egy Windows munkacsoportban ebből véletlenszerű hibák adódhatnak. A Samba egy munkacsoport összes alhálózatában betöltheti a tartomány-főtallózó szerepét

a következő beállítás megadásával: domain master = yes 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 131 Ellenőrizhetjük, hogy ténylegesen a Samba gép a tartomány-főtallózó, ha megvizsgáljuk az nmbd naplófájlt: nmbd/nmbd become dmb.c:become domain master stage2(118) * Samba name server HYDRA is now a domain master browser for workgroup SIMPLE on subnet 192.168220100 * Más eljárásként a Samba disztribúcióhoz tartozó nmblookup parancs segítségével is lekérdezhetjük a munkacsoportban lévő <1B> típusú erőforrást: # nmblookup SIMPLE#1B Sending queries to 192.168220255 192.168220100 SIMPLE<1b> Több alhálózat Három szabályt kell szem előtt tartanunk, amikor egy munkacsoportot/tartományt egynél több alhálózatra terjesztünk ki: • Vagy egy Windows NT, vagy egy Samba gépnek helyi főtallózónak kell lennie a munkacsoport/tartomány minden egyes alhálózatában. • Vagy egy Windows NT, vagy egy Samba gépnek

tartomány-főtallózónak kell lennie valahol a munkacsoportban. • Mindegyik helyi főtallózót utasítani kell arra, hogy szinkronizálja magát a tartományfőtallózóval. A Samba ebben az összefüggésben még néhány más képességgel is rendelkezik arra az esetre, ha nincs, vagy nem akarjuk, hogy legyen egy tartomány-főtallózó a hálózatban. Vegyük szemügyre az 5.1 ábrán látható alhálózatokat: Először is egy helyi főtallózó szerepét betöltő Samba kiszolgáló használhatja a remote announce konfigurációs beállítást, amellyel biztosíthatja, hogy a különböző alhálózatokban lévő számítógépek megkapják a kiszolgálóról küldött broadcast üzeneteket. Ennek köszönhetően a Samba kiszolgáló az idegen alhálózatok tallózólistájában is megjelenik. Ehhez azonban az irányított broadcast üzeneteknek el kell jutniuk a többi alhálózat helyi főtallózójához. Tudjunk arról, hogy számos útválasztó alapbeállítás szerint

nem engedélyezi az irányított broadcast üzeneteket; az útválasztón módosítani kell ezt a beállítást, hogy az üzenetek eljussanak az alhálózatába. A remote announce beállításban soroljuk fel azokat az alhálózatokat és munkacsoportot, ahová a broadcast üzeneteknek el kell jutniuk. Ha például biztosítani akarjuk, hogy a Samba kiszolgálóról az üzenetek eljussanak a 192.168221 és a 192168222 alhálózatokba és a SIMPLE munkacsoportba, akkor a következőképpen adjuk meg a beállítást: # A tallózókiválasztás beállításai os level = 34 local master = yes remote announce = 192.168221255/SIMPLE 192.168222255/SIMPLE 132 | SAMBA 5.1 ábra Samba kiszolgálókat tartalmazó több alhálózat Az üzenetek címzettjének pontos címét is megadhatjuk, ha az idegen hálózatban a helyi főtallózónak garantáltan mindig rögzített az IP címe. Egy Samba helyi főtallózó a tallózólistáját közvetlenül szinkronizálhatja egy másik Samba

kiszolgálóval, amely helyi főtallózóként működik egy másik alhálózatban. Tegyük fel például, hogy a Samba helyi főtallózóként van konfigurálva, és vannak Samba helyi főtallózók a 192.168221130 és a 192168222120 alhálózatokban Ekkor a remote browse sync beállítás segítségével közvetlenül szinkronizálhatók a Samba kiszolgálók a következők szerint: # A tallózókiválasztás beállításai os level = 34 local master = yes remote browse sync = 192.168221130 192168222120 Ahhoz, hogy ez a beállítás működjön, a többi Samba gépnek is helyi főtallózónak kell lennie. Ezzel a beállítással irányított broadcast üzenetek is küldhetők, ha nem ismerjük a helyi főtallózók IP címét. Tallózási beállítások Az 5.3 táblázat 14 olyan beállítást sorol fel, amelyek segítségével meghatározhatjuk, miként kezelje a Samba a tallózási feladatokat. Javasolható az alapértelmezett értékek megtartása, ha meg akarjuk könnyíteni a

felhasználóknak a megosztások és a nyomtatók megtalálását. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 133 5.3 táblázat A tallózás konfigurációs beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör announce as NT vagy Win95 vagy WfW Numerikus Megadja, hogy a Samba milyen operációs rendszerként jelentse be magát. Megadja annak az operációs rendszernek a verziószámát, amilyen rendszerként a Samba bejelentette magát. Engedélyezi a megosztás megjelentését a gépi erőforrások listájában. NT Globális 4.2 Globális yes Megosztás yes Globális nincs Globális nincs Globális yes Globális auto Globális 60 Globális no Globális no Globális 0 Globális announce version browseable (browsable) browse list Boolean érték Boolean érték auto Karakterlánc services (megosztások (preload) listája) default Karakterlánc service (megosztás (default) neve) local master

Boolean érték lm announce yes, no vagy auto lm interval Numerikus preferred Boolean érték master (prefered master) domain Boolean érték master os level Numerikus Ha yes az értéke, a Samba megjeleníti azon a kiszolgálón a tallózólistát. Megadja azoknak a megosztásoknak a listáját, amelyek mindig megjelennek a tallózólistában. Megnevezi azt a megosztást (szolgáltatást), ami akkor jelenik meg, ha az ügyfél egy, az smb.conf fájlban nem felsorolt megosztást kér. Ha yes az értéke, a Samba megpróbál főtallózóvá válni a helyi alhálózatban. Engedélyezi vagy tiltja a LAN Manager stílusú gazdabejelentkezést. Megadja másodpercekben azt a gyakoriságot, amellyel a LAN Manager bejelentkezés megtörténhet, ha aktív. Ha yes az értéke, a Samba a preferált főtallózó bitet használja arra, hogy helyi főtallózó lehessen. Ha yes az értéke, a Samba megpróbál főtallózó lenni a munkacsoportban. Megadja a Samba operációs rendszerének

szintjét a helyi főtallózóvá való választásához. 134 | SAMBA 5.3 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör remote browse sync Karakterlánc (IP címek listája) nincs Globális remote announce Karakterlánc (IP cím / munkacsoport párok) Felsorolja azokat a Samba kiszolgálókat, amelyekkel szinkronizálni kell a tallózólistákat. Felsorolja azokat az alhálózatokat és munkacsoportokat, amelyekre el kell küldeni az irányított broadcast csomagokat, hogy a Samba megjelenhessen a tallózólistákban. nincs Globális announce as Ez a globális konfigurációs beállítás azt az operációs rendszert jelzi, amelyet a Samba a hálózaton lévő több gép számára önmagáról bejelent. A beállítás alapértelmezés szerinti értéke NT, ami a Windows NT operációs rendszert jelenti. Más lehetséges érték a Win95, ami a Windows 95, és a WfW, ami a Windows for Workgroups operációs rendszert

jelenti. Az alapértelmezés szerinti értéket az alábbi módon írhatjuk felül: [global] announce as = Win95 Ennek a konfigurációs beállításnak nem javasolt a módosítása. announce version Ezt az ugyancsak globális hatókörű beállítást gyakran az announce as beállítással együtt használják; ez annak az operációs rendszernek a verziószámát adja meg, amelyet a Samba a hálózaton lévő többi gép számára önmagáról jelentett. A beállítás alapértelmezett értéke 4.2, ami az aktuális Windows NT 40-s verziójánál magasabb szintet jelent A beállításhoz ennél nagyobb értéket is rendelhetünk: [global] announce version = 4.3 Ebben az esetben sem javasoljuk az alapértelmezés szerinti érték megváltoztatását. browseable A browseable beállítás (ami browsable formában is írható) segítségével azt írhatjuk elő, hogy a hivatkozott megosztás megjelenjen-e annak a gépnek az elérhető erőforrásai között, amelyen maga a megosztás

található. Alapértelmezés szerint ennek a beállításnak mindig yes az értéke. Ha azt szeretnénk, hogy egy megosztás ne jelenjen meg egy ügyfél tallózójában, akkor a no értéket rendeljük hozzá. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 135 Jegyezzük meg, hogy ezzel nem akadályozhatjuk meg azt, hogy valaki más eszközökkel, például a Windows Intézőjében egy UNC helymegadással (\serveraccounting) ne férhessen hozzá a megosztáshoz. A beállítással mindössze azt tilthatjuk meg, hogy tallózáskor a megosztás ne jelenjen meg a gép erőforrásai között browse list Sohasem lesz szükségünk arra, hogy ennek a beállításnak az alapértelmezett yes értékét megváltoztassuk. Ha a Samba kiszolgáló szerepel helyi főtallózóként (vagyis ez nyerte meg a választási versenyt), akkor a globális browse list beállítás segítségével utasíthatjuk arra a Sambát, hogy az ügyfelek rendelkezésére bocsássa-e a

tallózólistát, vagy sem. Alapbeállítás szerint a Samba mindig felkínálja a tallózólistát. Ezt az alapbeállítást az alábbi módon változtathatjuk meg: [global] browse list = no Ha letiltjuk a tallózólista megjelenítését, akkor az ügyfelek nem tallózhatják a hálózathoz aktuálisan kapcsolódó többi gép nevét, a szolgáltatásaikat és a tartományokat. Jegyezzük meg azonban, hogy ezzel egyetlen gépet sem tehetünk elérhetetlenné: ha valaki ismeri egy számítógép érvényes nevét/címét, és egy adott megosztást az illető gépen, akkor a NET USE segítségével vagy a Windows Intézőjében egy meghajtó-azonosító leképzésével kapcsolódhat hozzá. A beállítással mindössze azt akadályozhatjuk meg, hogy az ügyfelek előtt megjelenjen a tallózólista. auto services A globális auto services beállítás, ami preload néven is ismeretes, biztosítja, hogy a megadott megosztások mindig megjelenjenek a tallózólistában. Ezt a

beállítást gyakran használják arra, hogy a [homes] vagy a [printers] megosztásokkal létrehozott meghatározott felhasználói vagy nyomtatómegosztások megjelenjenek, de egyéb módon ne legyenek tallózhatók. A beállítás leginkább lemezmegosztásokkal együtt használható. Ha azt szeretnénk, hogy ezt a beállítást használva a rendszernyomtatók (vagyis a nyomtatóbeállításokat tartalmazó fájlban felsorolt nyomtatók) megjelenjenek a tallózólistában, akkor ehelyett a load printers beállítást használjuk. Az auto services beállításban felsorolt egyik megosztás sem listázódik ki, ha a browse list beállításhoz a no érték van rendelve. default service A globális default service beállítással (amelynek esetenként default a neve) az ,,utolsó mentsvárnak” tekinthető megosztás adható meg. Ha létező megosztás neve van ehhez a beállításhoz rendelve, és egy ügyfél egy nem létező lemez- vagy nyomtatómegosztáshoz akar hozzáférni,

akkor a Samba ehelyett az itt megnevezett megosztáshoz hozza létre a kapcsolatot. A beállítás a következőképpen használható: default service = helpshare Figyeljük meg, hogy a megosztás helpshare neve nem áll szögletes zárójelek között, jóllehet a Samba konfigurációs fájljában a definiálásakor alkalmazni kell ezt a zárójelezést. 136 | SAMBA Továbbá ha ebben a beállításban megadott megosztásban a %S változót használjuk, a változó a kért, nem létező megosztást, nem pedig az alapértelmezett szolgáltatást fogja jelenteni. Emellett a %S változó azt is lehetővé teszi, hogy a kért megosztásban lévő aláhúzásjelek ( ) törtvonallá (/) alakuljanak át local master Ezzel a globális beállítással azt írhatjuk elő, hogy vegyen-e részt a Samba a helyi főtallózóért folytatott versenyben. Ha a beállításhoz a yes értéket rendeljük, a Samba részt vesz a versenyben. Ez azonban önmagában még nem garantálja a győzelmet

(Más beállítások, így a preferred master és az os level segíthetik a Samba győzelmét.) Ha a beállításhoz a no értéket rendeljük, a Samba minden versenyben alulmarad, függetlenül attól, hogy milyen értéket rendelünk a többi beállításhoz. A beállítás alapértelmezett értéke a yes lm announce Az lm announce globális beállítás azt közli a Samba nmbd démonjával, hogy küldjön-e LAN Manager gazdabejelentkezéseket a kiszolgáló megbízásából vagy sem. Ilyen gazdabejelentkezésekre a régebbi ügyfélgépeknek, például az IBM OS/2 operációs rendszerét futtató gépeknek lehet szükségük. Ez a bejelentkezés lehetővé teszi, hogy a kiszolgáló bekerüljön az ügyfélgép tallózólistájába. Ha a beállításnak yes az értéke, a Samba az lm interval beállításban megadott gyakorisággal, ismétlődően bejelentkezik. A beállítás a standard Boolean értékeket, vagyis a yes vagy a no értéket veheti fel, és így vagy engedélyezi,

vagy tiltja a LAN Manager bejelentkezéseket. Ezen alapértékek mellett azonban még egy harmadik, auto értéket is felvehet, mely esetben az nmbd passzívan figyel a LAN Manager bejelentkezésekre, de a maga részéről nem kezdeményez ilyeneket. Ha a hálózaton lévő más gépek észlelik a LAN Manager bejelentkezéseket, az nmbd a maga részéről is megkezdi a LAN Manager bejelentkezések küldését, hogy biztosítsa a láthatóságát. A beállítást az alábbi módon adhatjuk meg: [global] lm announce = yes A beállítás alapértelmezett értéke az auto. Feltehetően sohasem kell megváltoztatnunk ezt az értéket. lm interval Ezzel az lm announce beállítással együtt használandó beállítással azon időtartam másodpercekben mért hosszát adhatjuk meg, ameddig az nmbd arra vár, hogy újra kiküldje a LAN Manager-féle bejelentkezéseket. Ne feledjük, hogy ennek a beállításnak csak akkor van értelme, ha előzőleg aktivizáltuk a LAN Manager

bejelentkezéseket. Az időtartam alapbeállítás szerinti hossza 60 másodperc Ha 0 értéket adunk meg, a Samba semmilyen LAN Manager bejelentkezést nem küld ki, bármilyen értéket tartalmazzon is az lm announce beállítás. Az alapbeállítás a következőképpen változtatható meg: [global] lm interval = 90 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 137 preferred master A preferred master beállítás igényli, hogy a Samba 1-es értékre állítsa a preferált mesterbit értékét, amikor részt vesz a tallózásért folyó versenyben. Ezzel a kiszolgáló preferált helyzetbe kerül a munkacsoport többi, azonos szintű operációs rendszert futtató gépéhez képest. Ha a Samba gépet úgy konfiguráljuk, hogy az legyen a helyi főtallózó, akkor célszerű az alábbi beállítás használata: [global] preferred master = yes Más esetben meghagyhatjuk a beállítás alapértelmezett no értékét. Ha a Samba preferált főtallózóként van

konfigurálva, akkor a hálózatra kapcsolódásakor kikényszeríti a választási versenyt. os level Az os level globális beállítással azt adhatjuk meg, hogy a Samba milyen operációs rendszert jelentsen be magáról a tallózó kiválasztásakor. Ha azt szeretnénk, hogy a Samba megnyerje a választást és főtallózóvá váljon, akkor a hálózatban részt vevő operációs rendszerek legmagasabb értékénél nagyobb értéket állítsunk be Az alapértelmezett értékeket az 5.1 táblázat tartalmazza A beállítás alapértelmezett értéke 0, ami azt jelenti, hogy a Samba az összes választást elveszti. Ha azt szeretnénk, hogy a Samba minden választást megnyerjen, akkor a következő beállítást válasszuk: os level = 34 Ez azt jelenti, hogy a kiszolgáló minden egyes választáskor 34-szer fog magára szavazni, ami biztosítja a győzelmét. domain master Ha a munkacsoportban vagy az NT tartományban a Samba az elsődleges tartományvezérlő, akkor

célszerűen ez legyen a tartomány-főtallózó is. Az a gép a tartomány-főtallózó, amelyiknek <1B> a NetBIOS erőforrástípusa, és amely a tartomány alhálózataiban lévő helyi főtallózók felé továbbítja, illetve azoktól megkapja a tallózólistákat. Ha ki szeretnénk kényszeríteni, hogy a Samba tartomány-főtallózó legyen, akkor az smb.conf fájl [global] szakaszába vegyük fel a következő bejegyzést: [global] domain master = yes Ha a hálózatban van olyan Windows NT gép, amely az elsődleges tartományvezérlő (PDC) szerepét tölti be, akkor nem ajánlható, hogy a Samba legyen a tartomány-főtallózó. Ennek a fordítottja is igaz: Ha a Samba az elsődleges tartományvezérlő, akkor ez legyen a tartomány-főtallózó is. Ha két különböző gépre osztjuk szét az elsődleges tartományvezérlő és a tartomány-főtallózó szerepét, akkor ebből előre nem látható problémák adódhatnak a hálózaton 138 | SAMBA remote browse

sync A globális remote browse sync beállítással azt írhatjuk elő, hogy a Samba szinkronizálja a tallózólistáit a többi alhálózat helyi főtallózóival. Ez a szinkronizálás azonban csak Samba kiszolgálókkal végezhető el, Windows számítógépekkel nem. Ha például egy Samba kiszolgáló főtallózó van a 192.168235 alhálózatban, és a 19216823492, valamint a 192.1682362 alhálózatokban Samba helyi főtallózók vannak, akkor a következő beállítást használhatjuk: remote browse sync = 192.16823492 1921682362 Ebben az esetben a Samba kiszolgáló közvetlenül kapcsolatba léphet a címlistában megadott gépekkel, és elvégezheti a tallózólisták szinkronizálását. A következő beállítást is használhatjuk: remote browse sync = 192.168234255 192168236255 Ezzel arra kényszerítjük a Sambát, hogy broadcast lekérdezéssel állapítsa meg az alhálózatokban lévő helyi főtallózók IP címét, és azokkal szinkronizálja a tallózólistákat.

Ez a beállítás azonban csak akkor használható, ha az útválasztó nem tiltja a 255-tel végződő irányított broadcast lekérdezést remote announce A Samba kiszolgálók képesek arra, hogy a remote annonunce beállítás segítségével küldjék el a tallózólistákat az idegen alhálózatoknak. Ezeket tipikusan az alhálózatok helyi főtallózójának küldik meg. Ha viszont nem ismerjük a helyi főtallózók címét, akkor a következőt tehetjük: [global] remote announce = 192.168234255/ACCOUNTING 192.168236255/ACCOUNTING Ebben az esetben a Samba a gazdabejelentkezéseket a 192.168234 és a 192168236 alhálózatok összes gépeire szétküldi, amelyek remélhetőleg az illető alhálózat helyi főtallózóját is elérik Természetesen a pontos IP címeket is megadhatjuk, ha ismerjük ezeket Fájlrendszerbeli különbözőségek A Samba egyik legfontosabb feladata, hogy kiküszöbölje a Unix és a nem Unix fájlrendszerek közötti különbözőségeket. Ide

tartoznak többek között a szimbolikus csatolásokkal, a rejtett és az ún dot fájlokkal kapcsolatos problémák megoldása Ugyancsak gondot jelenthetnek a nem megfelelőképpen kezelt fájlengedélyek. A fejezet e részében arról olvashatunk, hogy miként hidalja át a Samba ezeket a bosszantó eltéréseket, továbbá milyen újdonságokkal egészíti ki a fájlrendszereket. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 139 Fájlok elrejtése és vétózása Vannak olyan esetek, amikor biztosítani akarjuk, hogy egy felhasználó egyáltalán ne lásson egy fájlt, és ne férhessen hozzá. Más esetekben viszont csak azt szeretnénk, hogy amikor belenéz egy könyvtárba, rejtettként jelenjen meg benne egy fájl. A Windows operációs rendszerekben a fájlok egyik attribútumának beállításával rejthetünk el egy fájlt egy mappában A Unix rendszerekben hagyományosan a fájl elé helyezett pont, azaz dot (.) segítségével rejthetünk el egy fájlt

Ezzel megelőzhetjük, hogy egy szokásos ls parancs kiadásakor kilistázódjanak az olyan tételek, mint például a konfigurációs fájlok Ha viszont egy fájlt mindenképpen meg akarunk óvni attól, hogy a felhasználók hozzáférhessenek, akkor a fájlokkal és a könyvtárakkal kapcsolatos engedélyeket kell ennek megfelelően beállítanunk. Elsőként tekintsünk a hide dot files (dot fájlok elrejtése) beállítást. Ha ehhez a yes értéket rendeljük, akkor a ponttal kezdődő fájlok rejtettként jelennek meg. Ha beállítás értéke no, akkor ezek a fájlok is kilistázódnak. Itt fel kell hívnunk a figyelmet arra, hogy ezek a fájlok csak rejtettek. Ha a felhasználó a tallózáskor azt a lehetőséget választja, hogy a rejtett fájlok is megjelenjenek (vagyis a Windows 98-ban a Nézet menü Mappa beállításai párbeszédablakában bejelöli az ide vonatkozó választógombot), akkor ezeket a fájlokat is láthatja (lásd az 5.2 ábrát) 5.2 ábra Rejtett

fájlok a [data] megosztásban Ahelyett, hogy egyszerűen csak a ponttal kezdődő fájlokat elrejtsük, a hide files beállítás segítségével arra is utasíthatjuk a Sambát, hogy egy adott karakterlánc-mintát használjon a fájlok elrejtéséhez. Tegyük fel például, hogy az alábbi bejegyzéseket helyeztük el egy [data] megosztásba: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes case sensitive = no hide files = /*.java/*README/ 140 | SAMBA A beállításban felsorolt minden egyes elemnek törtvonallal (/) kell kezdődnie és végződnie, még akkor is, ha a lista egyetlen elemből áll. Ez a jelölésmód lehetővé teszi, hogy szóközök is legyenek a fájlnevekben. A példabeli beállítást megadva az 53 ábrán látható módon jelenne meg a megosztott könyvtár. A Windows 98-ban ebben az esetben is engedélyeztük a rejtett fájlok megjelenítését 5.3 ábra Fájlok elrejtése fájlnév-minták alapján Ha azt szeretnénk,

hogy a felhasználók egyáltalán ne lássanak bizonyos fájlokat, akkor a veto files beállítást kell használnunk. Ebben a beállításban, amelynek ugyanaz a szintaxisa, mint a hide files beállításé, soroljuk fel azokat a fájlokat, amelyeket semmikor sem akarunk láttatni a felhasználókkal. Ehhez a [data] megosztást például a következőképpen módosíthatjuk: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes case sensitive = no veto files = /*.java/*README/ Ennek a beállításnak ugyanolyan a szintaxisa, mint a hide files beállításé: a lista mindegyik elemének törtvonallal (/) kell kezdődnie és végződnie, még akkor is, ha a lista csak egyetlen elemet tartalmaz. A példában bemutatott beállítás következtében a hellojava és a README fájlok egyszerűen eltűnnek a könyvtárból, és a felhasználó nem lesz képes arra, hogy SMB-n keresztül hozzájuk férjen. A fentiekkel kapcsolatban választ kell adni még egy

kérdésre. Mi történik akkor, ha egy felhasználó vétózott fájlokat tartalmazó könyvtárt próbál törölni? Ekkor jut szerephez a delete veto files beállítás. Ha ehhez a beállításhoz a yes érték van rendelve, akkor a felhasználó a könyvtárban lévő normál és vétózott fájlokat is törölheti, és ezzel maga a könyvtár is törlődik. Ha viszont a beállításhoz a no érték van rendelve, akkor a felhasználó 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 141 nem törölheti a vétózott fájlokat, következésképpen a könyvtár sem törölhető. A felhasználó számára úgy jelenik meg a könyvtár, mint ami üres, ám ennek ellenére nem törölhető A dont descend (lejjebb nem) direktívához felsorolt könyvtárak tartalmát a Samba nem engedi megjeleníteni. Jegyezzük meg, hogy a könyvtárak tartalmáról van szó, és nem magukról a könyvtárakról. A felhasználó beléphet egy ilyen módon megjelölt könyvtárba, de a

könyvtárfában lejjebb, az alsóbb szintekre már nem léphet. Az ilyen könyvtár mindig üres könyvtárként jelenik meg. Használjuk ezt a beállítást például egy, a fejezetben már korábban megismert megosztásban: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes case sensitive = no dont descend = config defaults Ehhez tegyük még fel, hogy a /home/samba/data könyvtárnak a következő a tartalma: drwxr-xr-x drwxr-xr-x -rw-r--r-drwxr-xr-x drwxr-xr-x drwxr-xr-x 6 8 2 3 3 3 tom root tom tom tom tom users root users users users users 1024 1024 1024 1024 1024 1024 Jun Jun Jun Jun Jun Jun 13 10 9 13 13 13 09:24 17:53 11:43 09:28 09:28 09:28 . . README config defaults market Ha egy felhasználó kapcsolódik ehhez a megosztáshoz, akkor az 5.4 ábrán látható könyvtárakat látná A /config és a /defaults könyvtárak üresként jelennének meg, még akkor is, ha más fájlok vagy könyvtárak lennének benne. A felhasználó írni

sem tud az ilyen könyvtárakba (amivel megelőzhető az, hogy egy már létező, de számára láthatatlan fájllal vagy mappával azonos nevű fájlt vagy mappát hozzon létre). Ha megpróbálkozna ezzel, akkor az ,,Access Denied” (Hozzáférés megtagadva) üzenetet kapná. A dont descend inkább adminisztratív jellegű beállítás, semmint biztonsági intézkedés, és nem helyettesítheti a fájlengedélyekkel kapcsolatos beállításokat. Hivatkozások A DOS és az NT fájlrendszerek nem használnak szimbolikus hivatkozásokat, míg a Windows 95/98 ,,parancsikonokat” (shortcuts) használ erre a célra. Ezért amikor egy felhasználó a Samba kiszolgáló egyik megosztásán megpróbál megnyitni egy szimbolikus hivatkozást, a Samba megpróbálja követni a hivatkozást, hogy megtalálja a tényleges fájlt, és megnyissa azt, ugyanúgy, mintha a felhasználó Unix gépen dolgozna. Ha nem szeretnénk ezt engedélyezni, akkor a következőképpen használjuk a follow

symlinks beállítást: 142 | SAMBA 5.4 ábra A [data] megosztás tartalma dont descend beállítással [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes case sensitive = no follow symlinks = no A beállítást azzal tesztelhetjük, hogy a Unix kiszolgálón létrehozunk egy könyvtárat azon a megosztáson belül, amelybe a felhasználó bejelentkezik. Írjuk be a következő parancsokat: % mkdir hello; cd hello % cat "This is a test" >hello.txt % ln -s hello.txt "Link to hello" Eredményül az 5.5 ábrán látható két fájlt kapjuk Normál esetben, ha e két fájl bármelyikére rákattintunk, a ,,This is a test” szöveget tartalmazó fájlt kapjuk meg Ha viszont a follow symlinks beállításhoz a no érték van rendelve, akkor az 5.5 ábra jobb oldalán láthatóhoz hasonló hibaüzenetet kapjuk, ha a ,,Link to hello” fájlra kattintunk. 5.5 ábra Hibaüzenet jelenik meg, ha a Samba egy tiltott follow symlinks

hivatkozást próbál meg követni 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 143 Végezetül essen szó a wide links beállításról. Ha ehhez a beállításhoz a yes érték tartozik, akkor a felhasználó a megosztott könyvtárfán kívüli helyekre mutató szimbolikus hivatkozásokat is követheti, beleértve a hivatkozás másik oldalán lévő fájlokat és könyvtárakat is. Tegyük fel például, hogy a [data] megosztást a következők szerint módosítottuk: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes case sensitive = no follow symlinks = yes wide links = yes Addig, amíg engedélyezve van a follow symlinks beállítás, a Samba képes követni az aktuális megosztásfán kívüli szimbolikus hivatkozásokat is. Ha például a megosztáson kívül hoznánk létre egy fájlt (például valakinek a home könyvtárában), majd a megosztásban az alábbiak szerint készítenénk hozzá egy hivatkozást: ln -s

~tom/datafile ./datafile akkor Tom könyvtárában a célfájlra vonatkozó engedélyek alapján meg tudnánk nyitni a fájlt. Fájlrendszeri beállítások Az 5.4 táblázat az eddigiekben tárgyalt beállításokat sorolja fel Célszerű, ha a legtöbbjük esetében megtartjuk az alapbeállítás szerinti értéket, kivéve a következőkben bemutatásra kerülő beállításokat. 5.4 táblázat A fájlrendszer konfigurációs beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör unix realname Boolean érték no Globális dont descend Karakterlánc (könyvtárlista) Nincs Megosztás follow symlinks Boolean érték yes Megosztás getwd cache Boolean érték A Unix felhasználó teljes nevét bocsátja az ügyfél rendelkezésére. Megadja azoknak a könyvtáraknak a listáját, amelyek tartalmát a Sambának az ügyfelek elől el kell rejtenie. Ha no az értéke, a Samba nem veszi figyelembe a szimbolikus hivatkozásokat. Ha yes az

értéke, a Samba gyorsítást használ a getwd( ) függvényhívásokhoz. yes Globális | 144 SAMBA 5.4 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör wide links Boolean érték yes Megosztás hide dot files Boolean érték yes Megosztás hide files Karakterlánc (fájllista) nincs Megosztás veto files Karakterlánc (fájllista) nincs Megosztás delete veto files Boolean érték Ha yes az értéke, a Samba a megosztáson kívül is követi a szimbolikus hivatkozásokat. Ha yes az értéke, a Samba úgy kezeli a Unix rejtett fájljait, mint a Windows rejtett fájljait. Felsorolja azokat a fájlmintákat, amelyeket a Sambának rejtettként kell kezelnie. Felsorolja azokat a fájlmintákat, amelyeket a Samba sohasem jelenít meg. Ha yes az értéke, törli a veto files beállításban megadott fájlokat, ha a felhasználó törli az ezeket a fájlokat tartalmazó könyvtárat. no Megosztás unix realname

Egyes programok a megfelelő működésükhöz a teljes felhasználónevet igénylik. Így például egy windowsos elektronikus levelezőprogramnak gyakran össze kell kapcsolnia egy felhasználónevet a valós névvel. Ha a rendszerünk jelszófájlja a GCOS mezőben a felhasználók teljes nevét tartalmazza, akkor a unix realname beállítás arra utasítja a Sambát, hogy szolgáltassa ezt az információt az ügyfeleknek. Ha ezt nem biztosítanánk, akkor a felhasználó neve azonos lenne a bejelentkezési nevével. Ha például a Unix jelszófájlja tartalmazza a következő sort: rcollins:/KaBfco47Rer5:500:500:Robert Collins: /home/rcollins:/bin/ksh és a konfigurációs fájl a következő beállítást tartalmazza: [global] unix realname = yes akkor a Samba mindazon ügyfél számára szolgáltatja az rcollins felhasználó valós, Robert Collins nevét, aki ezt kéri. Ezzel a beállítással általában nem kell törődnünk dont descend A dont descend (lejjebb nem)

beállítás segítségével megadhatjuk azokat a könyvtárakat, amelyeket az ügyfelek előtt üresként akarunk megjeleníteni. A Samba az ilyen könyvtárak 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 145 tartalmát nem jeleníti meg. Ez azonban nem a legmegfelelőbb eljárás a fájlok megvédésére (a felhasználó találhat megoldást ennek a tiltásnak a megkerülésére), és valójában csak arra jó, hogy ne engedjük tallózni a felhasználót az érzékeny fájlokat tartalmazó könyvtárakban. Lásd a fejezetrész korábbi példáját follow symlinks Ezzel a beállítással, amelyről korábban már bővebben olvashattunk, az szabályozható, hogy kövessen-e a Samba egy szimbolikus hivatkozást a Unix operációs rendszerben a célig, vagy hibaüzenettel térjen-e vissza a felhasználóhoz. Ha a beállításhoz a yes érték tartozik, akkor a Samba fájlként jeleníti meg a hivatkozási célt. getwd cache Ezzel a globális beállítással azt

írhatjuk elő, hogy a Samba használjon-e helyi gyorsítást a Unix getwd() (get current working directory, aktuális munkakönyvtár bekérése) rendszerfüggvényének meghívásához. A beállítás alapértelmezés szerinti yes értékét a következőképpen írhatjuk felül: [global] getwd cache = no Ha a beállításhoz a yes értéket rendeljük, jelentős mértékben megnöveljük a munkakönyvtár feloldásához szükséges időt, különösen akkor, ha a wide links beállításnak no az értéke. Normál esetben nem kell változtatnunk a beállítás alapértelmezés szerinti értékén wide links Ezzel a beállítással azt adhatjuk meg, hogy a felhasználó követhet-e olyan szimbolikus hivatkozásokat, amelyek a megosztott könyvtárfán kívüli helyekre mutatnak. Ezek a helyek a hivatkozás végén álló bármely fájlt vagy könyvtárat jelenthetik, amennyiben a felhasználó rendelkezik a megfelelő hozzáférési engedélyekkel. A beállításnak alapértelmezés

szerint yes az értéke Jegyezzük meg, hogy ez a beállítás figyelmen kívül marad, ha a follow symlinks beállításhoz a no érték van rendelve. Utóbbi esetben lényegesen lelassul az smbd futása. hide files A hide files beállításban egy vagy több könyvtár vagy fájl nevének mintáját sorolhatjuk fel. A Samba mindazokat a könyvtárakat és fájlokat, amelyek neve megfelel az adott mintá(k)nak, rejtettként kezeli, és elrejti a felhasználók elől. Jegyezzük meg azonban, hogy ez nem jelent többet, mint a DOS rejtett attribútumának bekapcsolását, és semmiképpen sem biztosítja, hogy egy felhasználó a tallózás során ne láthassa ezeket. A lista mindegyik elemének törtjellel (/) kell kezdődnie és végződnie, még akkor is, ha a lista csak egyetlen elemet tartalmaz. Ez lehetővé teszi, hogy szóközöket is tartalmazzanak a listaelemek Általános helyettesítőként csillag karakterek használhatók 0 vagy több karakter helyett. Minden egyes

kérdőjel pontosan egy karaktert helyettesít Példa: hide files = /.jav*/README.???/ 146 | SAMBA hide dot files A hide dot files beállítás segítségével a kiszolgálón lévő, pont (.) karakterrel kezdődő fájlok rejthetők el. A hide files beállításhoz hasonlóan a ponttal kezdődő fájloknak be lesz kapcsolva a DOS rejtett attribútumuk, ami semmilyen garanciát sem nyújt arra, hogy ezek a fájlok nem lesznek megjeleníthetők. A beállításnak alapértelmezés szerint yes az értéke. veto files A fájlok elrejtéséhez képest még nagyobb mértékben eltitkolhatjuk a fájljainkat a veto files beállítás segítségével. E beállítást használva a Samba még annyit sem hajlandó elárulni, hogy egyáltalán léteznek a fájlok A valóságban azonban ez nem jelent igazi védelmet, mindössze egy mechanizmus, amely nem engedi, hogy a PC-s programok töröljék a Macintosh fájlok Unix fájlrendszerben való tárolására szolgáló speciális fájlokat. Ha

Windows és Mac gépek közösen használnak fájlokat, akkor ezzel megakadályozható, hogy hozzá nem értő felhasználók töröljék a Mac felhasználók számára szükséges fájlokat. A beállításnak ugyanaz a szintaxisa, mint a hide files beállításé: a lista mindegyik elemének törtvonallal (/) kell kezdődnie és végződnie, még akkor is, ha a lista egyetlen elemből áll. Általános helyettesítőként csillag karakterek használhatók 0 vagy több karakter helyett Minden egyes kérdőjel pontosan egy karaktert helyettesít Példa: veto files = /*config/default?/ A beállítás elsősorban adminisztratív célokra használható, és nem helyettesítheti az engedélyekre vonatkozó beállításokat. delete veto files Ezzel a beállítással arra utasítható a Samba, hogy törölje a vétózott fájlokat, ha egy felhasználó az ezeket tartalmazó könyvtárt törli. A beállítás alapértelmezés szerinti értéke a no Ez azt jelenti, hogy amikor egy

felhasználó olyan könyvtárt próbál törölni, amely vétózott fájlt tartalmaz, a fájl nem törlődik (sem a könyvtár). A könyvtár továbbra is megmarad, csak üresnek látszik. Ha a beállításhoz a yes értéket rendeljük, mind a vétózott fájlok, mind a könyvtár törlődnek. Fájlengedélyek és attribútumok MS-DOS és Unix rendszerben A DOS rendszert a kifejlesztői sohasem szánták többfelhasználós, hálózati operációs rendszernek. Ezzel szemben a Unixot már a születésétől fogva erre tervezték Ebből következik, hogy a két fájlrendszer között számos eltérés van, amelyekkel a Sambának nem csak tisztában kell lennie, hanem megoldást is kell találnia rájuk. Az egyik leglényegesebb különbség abban van, ahogyan a Unix és a DOS a fájlengedélyeket kezeli. Nézzük először a Unixot. Mindegyik Unix fájlhoz tartozik egy-egy olvasási (read), írási (write) és végrehajtási (execute) bit a felhasználók következő három

csoportjához: tulaj- 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 147 donos, csoport és világ. Ezek az engedélyező bitek egy fájl bal szélén olvashatók, amikor egy Unix könyvtárban kiadjuk az ls -al parancsot. Például: -rwxr--r-- 1 tom users 2014 Apr 13 14:11 access.conf Ezzel szemben a Windows négy ún. attribútumbitet használ minden egyes fájlhoz: csak olvasható (read-only), rendszer (system), rejtett (hidden) és archiválandó (archive). Ezeket a biteket úgy nézhetjük meg, hogy az egér jobb oldali gombjával egy fájlra kattintunk, és a helyi menüben a Tulajdonságok parancsot választjuk. Ekkor az 56 ábrán látható párbeszédablak jelenik meg 5.6 ábra DOS és Windows fájlok tulajdonságai Az egyes attribútumbitek jelentése: Csak olvasható (Read-only) A fájl tartalmát olvashatja a felhasználó, de nem szerkesztheti (nem írhat bele, nem törölhet belőle). 148 | SAMBA Rendszer (System) Ezek az ún.

rendszerfájlok, amelyekre az operációs rendszernek van szüksége Rejtett (Hidden) Ezek a fájlok el vannak rejtve a felhasználó elől, és csak akkor jelennek meg, ha kifejezetten így állítjuk be az operációs rendszert. Archiválandó (Archive) Az ilyen fájlok módosultak azt követően, hogy utoljára biztonsági másolat készült róluk. Figyeljük meg, hogy a DOS nem ismeri a végrehajtható (executable) attribútumot. A DOS és a Windows NT fájlrendszerek az .EXE, COM, CMD és a BAT kiterjesztéssel jelölik a végrehajtható fájlokat. Ebből következik, hogy egy Samba lemezmegosztásban nincs kihasználva a Unix fájlok három végrehajtást jelző bitje. Ugyanakkor a DOS fájloknak meg kell őrizniük az archiválandó, a rendszer és a rejtett attribútumbitjeiket, ha Unix környezetben kerülnek tárolásra A Samba ehhez a Unix fájlok három végrehajtást engedélyező bitjét használhatja, ha erre kap utasítást. E biteknek az ilyen módon történő

megfeleltetése (leképzése) azonban sajnos mellékhatással jár: ha egy Windows felhasználó Samba megosztásban tárolja a fájlját, és egy Unixos felhasználó az ls -al paranccsal meg akarja tekintetni azt, a végrehajthatóságot jelző bitek némelyike nem úgy viselkedik, amint az várható. A Sambában a következő három beállítással adhatjuk meg, hogy megtörténjen-e a bitek leképzése: map archive, map system és map hidden. Ezek a beállítások az archiválandó, a rendszer és a rejtett attribútumbiteket rendre leképzik a tulajdonos, a csoport és a világ végrehajtható bitekre. A beállításokat a [data] megosztásba vehetjük fel a következő módon: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes map archive = yes map system = yes map hidden = yes Ezt követően Unix alatt készítsünk el egy fájlt a megosztásban, ami például a hello.java lehet, és állítsuk 755-re a fájl engedélyeit. Miután elvégeztük ezeket

a beállításokat, a Windows oldalon megvizsgálva az engedélyeket azt látjuk, hogy a Tulajdonságok párbeszédablakban mind a három attribútumbit be van jelölve. Mi történik azonban a csak olvasható attribútummal? Alapértelmezés szerint a Samba 2.0 ehhez mindig az 1-es értéket rendeli, ha a Unixban a tulajdonosi írásbit értéke 0. Másként fogalmazva a csak olvasható attribútumbitet úgy állíthatjuk 1-re, hogy a fájl engedélyeit az 555-ös értékre módosítjuk. Fel kell hívnunk arra a figyelmet, hogy a map archive beállításhoz alapértelmezés szerint a yes érték tartozik, míg a másik két beállításnak alapértelmezés szerint no az értéke. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 149 Ennek az az oka, hogy sok program nem működik helyesen, ha a DOS és a Windows fájlok archiválandó bitje nincs helyesen tárolva. Ezzel szemben a rendszer és a rejtett attribútumoknak nincs különösebb jelentésőgük a programok

működésében, ezért a rendszergazda belátására van bízva ezek leképzése Az 5.7 ábrán összefoglaltuk a Unix engedélyeit, és azt is szemléltetjük, hogyan képezi le a Samba ezeket a biteket a DOS attribútumbitjeire. Figyeljük meg, hogy a csoport írási/olvasási és a világ olvasási/írási bitek nincsenek közvetlenül leképezve a DOS attribútumbitjeire, hanem a Samba kiszolgálón megtartják az eredeti unixos szerepüket. 5.7 ábra Fájlengedélyek Unix és Samba oldalról nézve Létrehozási maszk A Sambában különböző beállítások segítik a létrehozási maszk (más néven umask) használatát. A létrehozási maszk segítségével már a fájl vagy a könyvtár készítésekor meghatározhatjuk a hozzá tartozó engedélyeket A Unixban ez azt jelenti, hogy a fájl vagy a könyvtár létrehozásakor szabályozhatjuk, hogy milyen tiltások legyenek érvényesek a fájlra vagy a könyvtárra. Windows oldalra lefordítva ez azt jelenti, hogy egy fájl

létrehozásakor a Windowsban használatos négy attribútumbit (csak olvasható, archiválandó, rendszer és rejtett) bármelyikét kikapcsolhatjuk Az alábbi példában a create mask beállításhoz a 744-es értéket adtuk meg, amivel kikényszerítjük a Windows ügyféltől, hogy egy fájl létrehozásakor a lehető legtöbb engedélyt rendelje a fájlhoz: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes create mask = 744 Ehhez hasonlóan a directory mask beállításhoz a maximális 755-ös értéket rendelve azt kényszerítjük ki a Windows ügyféltől, hogy a lehetséges legtöbb engedélyt rendelje a létrehozandó könyvtárhoz: 150 | SAMBA [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes directory mask = 755 A force create mode és a force directory mode beállítások segítségével akár az egyes attribútumbitek egyenkénti be-, illetve kikapcsolásával is kikényszeríthetjük az engedélyeket.

Ezek a beállítások logikai OR műveletet végeznek a fájl- és a könyvtárlétrehozó maszkokon, és ezzel biztosítják, hogy egy adott bit mindig be legyen kapcsolva Ezeket a beállításokat általában globális hatókörrel használjuk, hogy a csoport és a világ olvasási/írási engedélyek minden egyes megosztásban létrehozásra kerülő fájlokra és könyvtárakra megfelelően legyenek beállítva. A fentiekhez hasonlóan a force user és a force group beállítások segítségével a Windows oldalon készített fájlok Unixos felhasználói és csoportengedélyeit is beállíthatjuk. Például: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes create mask = 744 directory mask = 755 force user = joe force group = accounting Ezek a beállítások statikus Unix felhasználót és csoportot rendelnek a megosztáshoz létrehozott minden egyes kapcsolathoz. Ez azonban csak az ügyfél hitelesítése után történik meg, és nem engedélyezi a

megosztáshoz való szabad hozzáférést. A beállításokat gyakran azon mellékhatásuk miatt használják, amivel adott felhasználó vagy csoport rendelhető a megosztásban létrehozásra kerülő új fájlhoz vagy könyvtárhoz Legyünk óvatosak ezekkel a beállításokkal. Végül essen szó a Unix még egy olyan képességéről, amely hiányzik a DOS-ból: egy csak olvasható fájl törlése egy írható könyvtárból. A Unix rendszerben egy írható könyvtárból egy csak olvasható fájl is törölhető Ez lehetővé teszi, hogy bármelyik könyvtárunkból töröljünk fájlokat, még ha egy adott fájlt más is helyezett el benne A DOS fájlrendszert nem többfelhasználós környezetre tervezték, ezért abban a csak olvasható azt jelenti, hogy ,,védett véletlen változtatásokkal szemben, beleértve a törlését is”, és nem azt, hogy ,,védett az egyfelhasználós rendszeren más felhasználókkal szemben”. Ezért a DOS tervezői nem engedélyezték a csak

olvasható fájlok törlését Még a mai Windows fájlrendszerek is követik ezt a hagyományt. Normál esetben ezzel nincs is probléma. A Windows programok nem kísérlik meg a csak olvasható fájlok törlését, mert tisztában vannak azzal, hogy ez nem okos dolog. Ezzel szemben egy sor más, eredetileg Unixra írt, és most Windows alatt futó program igényli, 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 151 hogy törölhetők legyenek a csak olvasható fájlok. A Sambában ezt a delete readonly beállítás segítségével engedélyezhetjük, amennyiben a yes értéket rendeljük hozzá: [data] path = /home/samba/data browseable = yes guest ok = yes writeable = yes create mask = 744 directory mask = 755 force user = joe force group = accounting delete readonly = yes Fájl- és könyvtárengedélyek beállításai A fájl- és könyvtárengedélyekkel kapcsolatos beállítási lehetőségeket a 5.5 táblázat foglalja fel Ezt követően külön-külön

ismertetjük mindegyiket 5.5 táblázat Fájl- és könyvtárengedélyek beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör map archive Boolean érték yes Megosztás map system Boolean érték no Megosztás map hidden Boolean érték Megőrzi a DOS archiválandó attribútumát a felhasználói végrehajtható bitben (0100). Megőrzi a DOS rendszer attribútumát a csoport végrehajtható bitben (0010). Megőrzi a DOS rejtett attribútumát a világ végrehajtható bitben (0001). Beállítja a Samba által létrehozott fájlokhoz rendelhető maximális engedélyt. no Megosztás 0744 Megosztás 0755 Megosztás 0000 Megosztás create Numerikus mask (create mode) directory Numerikus mask (directory mode) force Numerikus create mode Beállítja a Samba által létrehozott könyvtárakhoz rendelhető maximális engedélyt. Kikényszeríti a megadott engedélyeket (bitenkénti OR) a Samba által létrehozott fájlokhoz. 152 |

SAMBA 5.5 táblázat folytatása Beállítás Alapértelmezett érték Hatókör force Numerikus directory mode 0000 Megosztás force group (group) force user Nincs Megosztás Nincs Megosztás no Megosztás delete readonly Paraméterek Funkció Kikényszeríti a megadott engedélyeket (bitenkénti OR) a Samba által létrehozott könyvtárakhoz. Karakterlánc Csoportot rendel az illető (csoport neve) megosztáshoz kapcsolódó felhasználóhoz. Karakterlánc Felhasználót rendel az illető (felhasználómegosztáshoz kapcsolódó név) felhasználóhoz. Boolean érték Lehetővé teszi csak olvasható fájl törlését egy írható könyvtárból. create mask A beállításhoz rendelt oktális szám azt jelzi, hogy az ügyfél egy fájl mely engedélybitjeit kapcsolhatja be, amikor létrehozza a fájlt a megosztásban. Az alapbeállítás szerinti érték 0744, ami azt jelenti, hogy a fájl unixos tulajdonosa olvashatja, írhatja és végrehajthatja a fájlt, míg a

csoportjába tartozó felhasználók és mások csak olvashatják és végrehajthatják azt. Ha azt szeretnénk, hogy ne legyen végrehajtható a fájl, akkor a 0644-es értéket állítsuk be (rw-r--r--). Ne feledjük, hogy a végrehajtható biteket a kiszolgáló arra is használhatja, hogy DOS fájlok bizonyos attribútumbitjeit képezze le rájuk, amint erről korábban olvashattunk. Ha módosítjuk a create mask beállításhoz rendelt értéket, akkor ezeknek a biteknek a viselkedését is módosítjuk. directory mask A beállításhoz rendelt oktális szám azt jelzi, hogy az ügyfél egy könyvtár mely engedélybitjeit kapcsolhatja be, amikor létrehozza a könyvtárt a megosztásban. Az alapbeállítás szerinti érték 0755, ami azt jelenti, hogy Unix oldalon bárki olvashatja a könyvtárat és lépegethet is benne, de csak a létrehozója módosíthatja Itt a 0750-es érték javasolható force create mode Ezzel a beállítással átállíthatók azok az engedélybitek,

amelyek bekapcsolását a Samba egy fájl engedélybitjeinek módosításakor kikényszeríti. Ezt a beállítást gyakran használják csoportengedélyek kikényszerítésére, amint erről korábban már volt szó Segítségével a DOS archiválandó (0100), rendszer (0010) és a rejtett (0001) attribútumbitjei előre is beállíthatók. Ez a beállítás mindig felülbírálja a map archive, a map system, a map hidden és a create mask beállításokat. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 153 Számos Windows alkalmazás az adatfájlok módosításakor a régi adatfájlt .bak kiterjesztéssel menti, és újat hoz létre, vagyis úgy változtatja meg a tulajdonosát és az engedélyeit, hogy ugyanannak a Unix csoportnak a tagjai nem szerkeszthetik a fájlt. A force create mode = 0660 beállítással az új fájlt szerkeszthetik is a csoport tagjai force directory mode Ezzel a beállítással átállíthatók azok az engedélybitek, amelyek

bekapcsolását a Samba egy könyvtár engedélybitjeinek módosításakor kikényszeríti. Ezt a beállítást gyakran használják csoportengedélyek kikényszerítésére, amint erről korábban már volt szó A beállítás alapértelmezés szerinti értéke 0000, és a force create mode beállításhoz hasonlóan szükség esetén csoport vagy más engedélyek megadására használható. Ez a beállítás mindig felülbírálja a map archive, a map system, a map hidden és a directory mask beállításokat force group Ez a beállítás, amit esetenként group alakban is írnak, statikus csoportazonosítót ad meg, amit minden felhasználó használhat, miután bejelentkezett egy megosztáshoz, és a hitelesítése is megtörtént. A beállítás az SMB ügyfél által létrehozott minden egyes új fájlhoz vagy könyvtárhoz hozzárendel egy meghatározott csoportot. force user A force user beállítás statikus felhasználó-azonosítót ad meg, amit minden felhasználó

használhat, miután bejelentkezett egy megosztáshoz, és a hitelesítése is megtörtént. A beállítás az SMB ügyfél által létrehozott minden egyes új fájlhoz vagy könyvtárhoz hozzárendel egy meghatározott felhasználót delete readonly Ezzel a beállítással engedélyezhetjük, hogy egy felhasználó csak olvasható fájlt tartalmazó könyvtárt is törölhessen. Alapbeállítás szerint a DOS és a Windows az ilyen műveletet nem teszi lehetővé. Hacsak nem igényli egy program, akkor hagyjuk kikapcsolva ezt a beállítást; sok windowsos felhasználó zokon venné, ha azt tapasztalná, hogy a csak olvashatóvá tett fájljai is törölhetők. Igazából azonban a Unix rm parancsa is megkérdezi a felhasználót, hogy tényleg felül akarja-e bírálni ezt a beállítást, és valóban törölni akarja a csak olvasható fájlokat. Lehetőség szerint ne változtassuk meg a Samba alapbeállítását map archive A DOS archiválandó bitje azt jelzi, hogy módosult-e

egy fájl azóta, hogy utoljára biztonsági másolatot készítettünk róla (vagy lefuttattuk-e vele a DOS archiváló programját). Ha a map archive = yes beállítást adjuk meg, akkor a Samba a DOS archiválandó jelzőbitjét a Unix tulajdonosi végrehajtható bitjére (0100) képezi le (ennek felelteti meg). Legjobb ezt a beállítást használnunk, ha engedélyezzük, hogy a Windows felhasználók biztonsági másolatot készítsenek a fájljaikról, vagy ha olyan programokat futtatunk, amelyek igénylik az archiválandó bitet. A Unix egyáltalán nem ismer ilyen archiválandó bitet A biztonsági 154 | SAMBA másolatokat készítő programok viszont általában listát vezetnek az archivált fájlokról és a másolatkészítés idejéről, ezért a módosulási dátumok összehasonlítása ugyanezt a célt szolgálja. A yes érték választása esetenként meglepheti a Unixos ügyfeleket, ha azt tapasztalják, hogy egy adatfájljuk végrehajtható fájlként van

megjelölve, de ennél nagyobb baj nem történik. Ha valaki megpróbálna végrehajtani egy ilyen fájlt, hibaüzenetet kapna, amikor a héjprogram megkísérelné utasításként értelmezni a kezdő sorokat. A dolog fordítottja is előfordulhat: egy végrehajtható Unix fájl akként jelenhet meg, mint amiről a Windowsban még nem készült biztonsági másolat. Az előzőhöz hasonlóan ebből sem származhatnak komolyabb problémák. map system A DOS system (rendszer) attribútumbitje azokat a fájlokat jelöli meg, amelyekre az operációs rendszernek van szüksége, és amelyeket nem szabad törölni, átnevezni vagy áthelyezni külön intézkedések nélkül. Csak akkor kapcsoljuk be ezt a beállítást, ha egy Unix fájlkiszolgálón akarjuk tárolni a Windows rendszerfájljait. A végrehajtható Unix fájlok nem áthelyezhető speciális Windows fájlokként jelennek meg a Windows ügyfelek előtt. Ez ugyan némi kényelmetlenséget okozhat, ha megpróbálnánk áthelyezni

őket, de a legtöbb esetben nincs velük probléma. map hidden A DOS a hidden (rejtett) attribútumbittel azokat a fájlokat jelöli meg, amelyeket normál körülmények között nem akar megjeleníteni a fájlok listájában. A Unixban nincs ilyen bit; a rendszer az egyedi programokra (nevezetesen például a héjprogramra) bízza azt, hogy mely fájlokat jelenítsenek meg és melyeket ne. Normál esetben nincs szükségünk a rejtett DOS fájlokra, ezért a legjobb, ha meghagyjuk ennek a beállításnak a kikapcsolt állapotát. Ha a beállításhoz a yes értéket rendeljük, akkor a kiszolgáló a rejtett attribútumbitet a világ végrehajtható bitjére (0001) képezi le. Ennek meglehetősen furcsa lenne a hatása Minden olyan Unix program, amelyet bárki végrehajthat, eltűnne a Windows felhasználók elől. Ha viszont a no értéket rendeljük ehhez a beállításhoz, és egy Windows felhasználó egy Samba megosztásban lévő fájlt rejtettként szeretne megjelölni, akkor

ez nem sikerülne neki: a Sambának ugyanis nincs helye, ahol tárolhatná a rejtett attribútumbitet! Névzsugorítás és a kis- és nagybetűk A DOS és a Windows 3.1 operációs rendszerek idejében a fájlnevek maximum 8 nagybetűből, egy pontból és három, ugyancsak nagybetűből álló, ún névkiterjesztésből állhattak Ezt röviden 8.3-as formátumnak nevezték, és számos kellemetlenséget okoztak Azóta a Windows 95/98, a Windows NT és a Unix azzal, hogy jóval több karaktert enged meg a fájlnevekben, és ezeken belül a kis- és nagybetűket is megkülönbözteti, megoldotta ezt a problémát. Az 56 táblázatban összefoglaltuk a leggyakoribb operációs rendszerekre érvényes névhasználatot. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 155 5.6 táblázat Névhasználati kötöttségek az operációs rendszerekben Operációs rendszer Névhasználati szabályok DOS 6.22 vagy korábbi Nyolc karakter, utána egy pont, majd három

karakter (8.3 formátum), kis- és nagybetű nem számít Nyolc karakter, utána egy pont, majd három karakter (8.3 formátum), kis- és nagybetű nem számít 255 karakter, kis- és nagybetű számít, és megtartja az írásmódot 255 karakter, kis- és nagybetű számít, és megtartja az írásmódot 255 karakter, kis- és nagybetű számít Windows 3.1 for Workgroups Windows 95/98 Windows NT Unix A Samba az olyan felhasználók kedvéért, akik például a Windows for Workgroups operációs rendszer alatt dolgoznak, megtartotta a kompatibilitást a 8.3-as formátummal Ha egy felhasználó egy megosztásban egy antidisestablishmentarianism.txt nevű fájlt hozna létre, akkor a Windows for Workgroups rendszert használó ügyfél nem tudná ezt megkülönböztetni egy ugyanabban a könyvtárban lévő antidisease.txt nevű fájltól A Windows 95/98 és a Windows NT rendszerhez hasonlóan a Samba is egy speciális eljárást használ arra, hogy a hosszú fájlneveket 8.3-as

formátumra alakítsa át úgy, hogy a hasonló fájlnevekből ne adódjon ütközés Ezt az eljárást névzsugorításnak nevezik A Samba a fájlneveket a Windows 95 és az utódjaihoz hasonló, de nem azonos módon zsugorítja A Samba névzsugorítási eljárása A Samba a következő módon zsugorítja a hosszú fájlneveket 8.3-as formátumra: • Ha az eredeti fájlnév nem ponttal kezdődik, akkor az utolsó pont (amennyiben van ilyen) előtti első öt alfanumerikus karaktert nagybetűsre alakítja át. Ezek a karakterek alkotják a 8.3-as formátumra zsugorítandó fájlnév első öt karakterét • Ha az eredeti fájlnév ponttal kezdődik, akkor a pontot eltávolítja, és az utolsó pont (amennyiben van ilyen) előtti első öt alfanumerikus karaktert nagybetűsre alakítja át. Ezek a karakterek alkotják a 8.3-as formátumra zsugorítandó fájlnév első öt karakterét • Ezeket a karaktereket közvetlenül egy speciális rövidítő karakter követi, ami

alapbeállítás szerint a tilde (~), de ez megváltoztatható. • A hosszú fájlnévnek az utolsó pont előtti részéből egy kétkarakteres kódot képez; amennyiben szükséges, a név utolsó pont utáni részei használhatók. Ezt a kétkarakteres kódot beilleszti a rövidítő karakter mögé • Az eredeti fájlnév utolsó pontja (amennyiben van ilyen) utáni első három karaktert nagybetűsre alakítja át, és hozzáfűzi a rövidített névhez. Ha az eredeti fájlnév ponttal kezdődött, akkor három aláhúzásjelet ( ) használ kiterjesztésként. 156 | SAMBA Íme néhány példa: virtuosity.dat .htaccess hello.java team.configtxt antidisestablishmentarianism.txt antidiseast.txt VIRTU~F1.DAT HTACC~U0. HELLO~1F.JAV TEAMC~04.TXT ANTID~E3.TXT ANTID~9K.TXT A szabályokat használva a Windows for Workgroups rendszerben dolgozók is különbséget tudnak tenni az eredetileg hosszú nevű fájlok között. Jegyezzük meg, hogy a Samba ugyanazt a hosszú

fájlnevet mindig ugyanarra a rövid névre zsugorítja, ami a Windowsban nem mindig igaz. Ennek viszont az a hátránya, hogy továbbra is előfordulhatnak ütközések, bár ennek kicsi a valószínűsége A névzsugorítási beállításokkal általában csak akkor kell foglalkoznunk, ha régi rendszereken dolgozó ügyfelek is csatlakoznak a hálózathoz. Azért, hogy a többi ügyfelet ne zaklassuk ilyen problémákkal, azt javasoljuk, hogy vegyünk fel egy include direktívát az smb.conf fájlba: [global] include = /usr/local/samba/lib/smb.conf%a Ez elkészíti az smb.confWfWg feloldást, amikor egy Windows for Workgroups ügyfél jelentkezik be a hálózatra. Most el kell készítenünk a /usr/local/samba/lib/smbconfWfWg fájlt, ami a következő beállításokat tartalmazhatja: [global] case sensitive = no default case = upper preserve case = no short preserve case = no mangle case = yes mangled names= yes Ha nem használunk Windows for Workgroups 3.1 operációs rendszert,

akkor valószínűleg egyik beállításnak sem kell megváltoztatnunk az alapértelmezés szerinti értékét Fájlnevek ábrázolása és feloldása a Sambában A fájlnevekkel kapcsolatban arról is szólnunk kell, hogy a különböző operációs rendszerek eltérően ábrázolják és oldják fel a fájlneveket. Aki dolgozott már Windows 95/98/NT operációs rendszerben, az minden bizonnyal találkozott már egy README.TXT nevű fájllal Az operációs rendszer ennek a fájlnak a nevét csupa nagybetűvel tárolja Ha viszont megnyitunk egy DOS ablakot, és a parancssorba beírjuk az edit readme.txt parancsot, a nagybetűs nevű program betöltődik a szerkesztőprogramba, még ha kisbetűkkel is írtuk be nevét. 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 157 Ennek az az oka, hogy a Windows 95/98/NT család tagjai a név feloldásakor nem tesznek különbséget a kis- és a nagybetűk között. Ezzel szemben viszont a Unix alapú operációs rendszerek a

fájlnevek feloldásakor mindig megkülönböztetik a kis- és a nagybetűket: ha a vi readme.txt parancs beírásával megpróbálnánk szerkeszteni a READMETXT fájlt, akkor feltehetően csak egy új fájl üres pufferét szerkeszthetnénk. A Samba a következőképpen kezeli a kis- és nagybetűket: ha a preserve case beállításhoz a yes értéket rendeljük, akkor a Samba az operációs rendszer által rendelkezésére bocsátott alakban fogja használni a betűket a fájlnevek megjelenítéséhez (nincs feloldás). Ha a beállításhoz a no értéket rendeljük, akkor a Samba a default case beállításban megadott alakot (kisbetű vagy nagybetű) fogja használni. Ugyanez vonatkozik a short preserve case beállításra is. Ha ennek a beállításnak yes az értéke, a Samba a 83 formátumú fájlnevek megjelenítéséhez az operációs rendszer alapértelmezés szerinti alakját fogja használni. Végül a Samba a megosztásaiban a fájlneveket mindig a case sensitive

beállításban megadott alak szerint fogja használni. A zsugorítás beállításai A Samba lehetővé teszi, hogy finomabban szabályozzuk a hosszú fájlnevek zsugorítását. Így például előírhatjuk a kis- és nagybetűk megkülönböztetését, a rövidített fájlnevekbe beszúrandó karaktereket, valamint a fájlnevek egyik formátumból másik formátumba történő kézi átalakítását. Ezeket a beállítási lehetőségeket az 57 táblázat sorolja fel 5.7 táblázat A névzsugorítás beállítási lehetőségei Beállítás Paraméterek case Boolean érték sensitive (casesignames) default (upper case vagy lower) preserve case Boolean érték short preserve case mangle case Boolean érték mangled names Boolean érték Boolean érték Funkció Alapértelmezett érték Hatókör Ha yes az értéke, a Samba a fájlnevekben megkülönbözteti a kis- és nagybetűket (a Windows nem teszi). Az alapértelmezésnek tekintett alakot használja (csak akkor, ha

a preserve case értéke no). Ha yes az értéke, megtartja az ügyfél által használt alakot (vagyis nem alakítja át a default case szerint). Ha yes az értéke, megtartja az ügyfél által használt 8.3-as formátum alakját. Zsugorítja a nevet, ha vegyesen van benne kis- és nagybetű. A DOS 8.3-as formátumára zsugorítja a fájlnevet. no Megosztás Lower Megosztás yes Megosztás yes Megosztás no Megosztás yes Megosztás 158 | SAMBA 5.7 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör mangling char Karakterlánc (egyetlen karakter) Numerikus Megadja a rövidítő karaktert. ~ Megosztás A helyi rövidítő veremben tárolandó rövidített nevek száma. Lehetővé teszi fájlnevek egyik formátumból másik formátumba való leképzését. 50 Global Nincs Megosztás mangled stack mangled map Karakterlánc (mintalista) case sensitive Ezzel a megosztás hatókörű beállítással, aminek a

rejtelmes casesignames a szinonimája, azt írhatjuk elő, hogy a Samba egy adott megosztásban a fájlnevek feloldásakor megtartsa-e a kis- és a nagybetűket. A beállításhoz alapértelmezés szerint a no érték van rendelve, ami annak felel meg, ahogyan a Windows kezeli a névfeloldást. Ha az ügyfelek olyan operációs rendszert használnak, amely megkülönbözteti a fájlnevekben a kis- és a nagybetűket, akkor a beállítást az alábbi módon használhatjuk: [accounting] case sensitive = yes Ellenkező esetben hagyjuk meg a beállítás alapértelmezett értékét. default case Ezt a beállítást a preserve case beállítással együtt használhatjuk. Ez a beállítás azt az alapbeállítás szerinti alakot (kisbetűk vagy nagybetűk) határozza meg, amit a Samba használni fog, amikor a megosztásaiban egy ügyfél számára létrehoz egy fájlt. Az alapbeállítás szerinti alak a kisbetűs (lower) alak, ami azt jelenti, hogy az újonnan létrehozott fájlok neveiben

megmaradnak az ügyfél által használt kis- és nagybetűk. Amennyiben szükséges, a következő módon felülbírálhatjuk ezt a globális beállítást: [global] default case = upper Ha a beállításhoz ezt az értéket rendeljük, akkor az újonnan létrehozott fájlok nevében a kisbetűkből nagybetűk lesznek, és ezek nem bírálhatók felül egy programban. Azt ajánljuk, hogy tartsuk meg az alapértelmezett értéket, hacsak nem kell Windows for Workgroups vagy más, 83-as formátumot használó ügyfelekkel együtt dolgoznunk 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 159 preserve case Ezzel a beállítással azt írhatjuk elő, hogy a Samba az ügyfél részére létrehozandó fájl nevében az ügyfél operációs rendszere által használt alakot, vagy a default case beállításban megadott alakot fogadja-e el. A beállításhoz alapértelmezés szerint a yes érték tartozik, ami azt jelenti, hogy a Samba az ügyfél operációs rendszere

által felkínált alakot fogadja el. Ha a no értéket rendeljük ehhez a beállításhoz, akkor a Samba a default case beállításban megadott alakot fogja használni. Jegyezzük meg, hogy ez a beállítás nem kezeli az ügyfél által küldött 8.3-as kéréseket – lásd ehhez a short preserve case beállítást alant. A beállításhoz a yes értéket rendelhetjük, ha a Samba kiszolgálón olyan alkalmazások akarnak fájlokat létrehozni, amelyek különbséget tesznek a fájlnevekben a kis- és a nagybetűk között. Ha például a Windows NT fájlrendszerét akarjuk utánozni, akkor hagyjuk meg a beállítás alapértelmezés szerinti yes értékét. short preserve case Ezzel a beállítással azt írhatjuk elő, hogy a Samba az ügyfél részére létrehozandó 8.3 formátumú fájlnevekben az ügyfél operációs rendszere által használt alakot, vagy a default case beállításban megadott alakot fogadja-e el. A beállításhoz alapértelmezés szerint a yes érték

tartozik, ami azt jelenti, hogy a Samba az ügyfél operációs rendszere által felkínált alakot fogadja el. A választást a Sambára bízhatjuk a default case alábbi megadásával: [global] short preserve case = no Ha arra szeretnénk rábírni a Sambát, hogy a Windows NT fájlrendszer viselkedését utánozza le, akkor hagyjuk meg a beállítás alapértelmezés szerinti yes értékét. mangled names Ezzel a megosztás hatókörű beállítással azt adhatjuk meg, hogy zsugorítsa-e a Samba a fájlneveket a 8.3-as formátumot használó ügyfelek számára Ha a beállításhoz a no értéket rendeljük, akkor a Samba nem zsugorítja a fájlneveket, és a nevek (az ügyféltől függően) vagy láthatatlanok maradnak, vagy a 8.3-as operációs rendszernek megfelelően csonkulnak A beállításhoz alapértelmezés szerint a yes érték tartozik Ezt az értéket a megosztásokban felülírhatjuk: [data] mangled names = no mangle case Ezzel a beállítással arra utasíthatjuk a

Sambát, hogy zsugorítsa-e azokat a fájlneveket, amelyek nem teljesen olyan alakú betűkből állnak, amilyen alakot (kisbetűt vagy nagybetűt) a default case beállításban megadtunk. A beállításhoz alapértelmezés szerint a no érték tartozik. Ha ehelyett a yes értéket választjuk, akkor biztosítanunk kell, hogy az összes ügyfelünk képes legyen az eredményül kapott rövidített fájlnevek kezelésére Az alapértelmezés szerinti értéket egy megosztáson belül a következők szerint bírálhatjuk felül: 160 | SAMBA [data] mangle case = yes Javasoljuk az alapértelmezés szerinti érték megtartását, hacsak nem szól valamilyen nyomós ok ellene. mangling char Ezzel az ugyancsak megosztás hatókörű beállítással azt a karaktert adhatjuk meg, amelyet a Samba a fájlnevek 8.3-as formátumba való átalakításakor rövidítő karakterként használ Alapbeállítás szerint ez a tilde (~) karakter. Ehelyett bármilyen más karaktert is előírhatunk,

például: [data] mangling char = # mangled stack A Samba egy helyi vermet tart fenn, amelyben az utoljára rövidített 8.3-as fájlneveket tárolja Ezt a vermet arra használja, hogy visszaalakíthassa a rövidített fájlneveket az eredeti alakjukra. Erre akkor lehet szükség, amikor egy alkalmazás létrehoz, ment, bezár vagy módosít egy fájlt. Alapbeállítás szerint ez a verem 50 hosszú és rövidített fájlnév-párt képes tárolni. Ha meg akarjuk kímélni a processzort attól, hogy sűrűn kelljen zsugorítania a fájlneveket, akkor növeljük meg ennek a veremnek a méretét – ezzel viszont több memóriahelyet foglalunk el, és némileg a fájlhozzáférések ideje is meghosszabbodik: [global] mangled stack = 100 mangled map Ha a névzsugorítás alapértelmezés szerint rendelkezésünkre álló lehetőségei nem lennének elegendők, akkor a mangled map beállítás segítségével további utasításokat adhatunk a Sambának a fájlnevek átalakítására

vonatkozóan. Ennek a beállításnak a segítségével leképző mintákat adhatunk meg, amelyeket a Samba a zsugorításhoz használhat Egy példa: [data] mangled map =(*.database *.db) (*.class *.cls) Ebben a beállításban arra utasítjuk a Sambát, hogy keresse meg azokat a fájlokat, amelyek nevében előfordul a gömbölyű zárójelek között elsőként megadott minta, majd alakítsa át ezek nevét a második zárójelpár között megadott mintára, és ennek megfelelően jelenítse meg a fájlneveket a 8.3 formátumot használó ügyfelek számára Ennek a beállításnak akkor vehetjük hasznát, ha hibásan működik a névzsugorítás, vagy olyan formátumot eredményez, amit az ügyfelek nem képesek értelmezni. A mintákat szóközzel kell egymástól elválasztani 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 161 Zárolások és ,,opportunista” zárolások Az ugyanazon fájlba való egyidejű írást egyik operációs rendszer sem tartja

kívánatos műveletnek. Ezt elkerülendő az operációs rendszerek többsége zárolásokkal biztosítja, hogy egyidejűleg mindig csak egyetlen művelet írhasson egy fájlba. Az operációs rendszerek hagyományos módon a teljes fájlokat lezárják, bár az újabbak lehetővé teszik csak meghatározott számú bájt lezárását. Ha egy másik művelet megpróbál írni egy zárolt fájlba (vagy annak egy részébe), hibaüzenetet kap az operációs rendszertől, és meg kell várnia, amíg feloldásra kerül a zár A Samba támogatja a DOS és az NT fájlrendszer standard zárolási kérelmeit, amelyek csak egyetlen műveletnek engedik meg, hogy adott időben a kiszolgálón lévő teljes fájlba vagy a zárolt területére írjon. Emellett a Samba a Windows NT rendszer új, ,,opportunista zárolás” vagy röviden oplock nevű új zárolási mechanizmusát is támogatja. Opportunista zárolás Az opportunista zárolás révén egy ügyfél arról értesítheti a Sambát,

hogy nemcsak kizárólagos joggal írni akar egy fájlba, hanem el is akarja rejteni a fájlon végzett módosításokat a saját gépén (és nem a Samba kiszolgálón) azzal a céllal, hogy gyorsabban férhessen hozzá a fájlhoz. Amikor a Samba tudomást szerez arról, hogy egy ügyfél opportunista zárolást alkalmaz egy fájlra, akkor ilyen módon jelöli meg a saját verzióját, és megvárja, amíg a felhasználó befejezi a munkáját és visszaküldi a végleges változatot, amivel aztán szinkronizálja az eredeti fájlt. Ha másik ügyfél is hozzá szeretne férni a fájlhoz, mielőtt az első ügyfél még befejezte volna a munkáját, a Samba egy oplock break kérést küld az első felhasználóhoz. Ezzel arra kéri a felhasználót, hogy hagyja abba a módosítások elrejtését, és küldje vissza a fájlt az aktuális állapotában a kiszolgálóra, hogy a megszakítást kérő ügyfél használhassa. Ez az opportunista zárolás azonban nem helyettesíti a standard

megtagadási (deny) módot. Az opportunista zárolás folyamatát az 5.8 ábra szemlélteti A zárolásokkal kapcsolatban azt javasoljuk, hogy a Samba alapértelmezés szerinti zárolásait használjuk: ezek a DOS/Windows standard deny (megtagadás) módú zárolásai a kompatibilitás megtartása céljából, és az oplock zárolások, amelyek a helyi elrejtésből adódóan a teljesítményt javítják. Ha az operációs rendszerünk ki tudja használni az oplock zárolásból származó előnyöket, akkor ezzel jelentősen növelhető a teljesítmény. Ha viszont nincs különösebb okunk ezen beállítások módosítására, akkor hagyjuk meg őket az eredeti állapotukban. A Unix és a zárolás A Windows rendszerek megfelelőképpen tudnak egymással együttműködni, és megfelelő védelmet nyújtanak a másik rendszer felülírásaival szemben. Ha viszont egy fájlt egy Samba rendszerben tárolunk, és a fájlhoz egy Unix művelet is hozzáférhet, a művelet nem vesz

tudomást a Windows oplock zárolásáról, és könnyen megkerülheti azt. Egyes Unix rendszereket viszont már felkészítettek arra, hogy észrevegyék a Samba által fenntartott Windows oplock zárolásokat. Jelenleg ilyen rendszer a SGI Irix 652f és későbbi verziói, a Linux és a FreeBSD, amelyeket hamarosan újabb rendszerek is követni fognak. 162 | SAMBA 5.8 ábra Opportunista zárolás Ha a rendszerünk megérti az oplock zárolásokat, akkor a Samba konfigurációs fájlba vegyük fel a kernel oplocks = yes bejegyzést. Ezzel kiküszöbölhetjük a Unix folyamatok és a Windows felhasználók közötti ütközéseket Ha a rendszerünk nem támogatja a kernel zárolásokat, meghibásodhatnak az adataink, ha valaki egy Unix művelettel olvasni vagy írni próbál olyan fájlt, amihez egy Windows felhasználó is hozzáférhet. Ugyanakkor a Samba rendelkezésünkre bocsát egy – viszonylag durva – védelmi mechanizmust, ha nem használhatók a kernel zárolások:

ez a veto oplock files beállítás. Ha előre tudjuk vagy feltételezzük, hogy melyek azok a Samba kiszolgálón tárolt fájlok, amelyekhez mind Windows, mind Unix ügyfelek hozzá fognak férni, akkor adjuk meg ezen fájlok nevét a veto oplock files beállításban. Ezzel letiltjuk a mintának megfelelő fájlnevekről az oplock zárolást, ezzel együtt az ügyfélnél történő elrejtést is, és lehetővé tesszük, hogy a Windows és a Unix programok a rendszer zárolását vagy a frissített dátumokat használják egy adott fájl eléréséért folytatott versenyben. Egy példa erre a beállításra. veto oplock files = /*.dbm/ Ez a beállítás mind a Unix processzek, mind a Windows felhasználók számára lehetővé teszi a .dbm kiterjesztésű fájlok szerkesztését Figyeljük meg, hogy a beállításnak ugyanolyan a szintaxisa, mint a veto files beállításé A Samba locks és oplocks beállítási lehetőségeit az 5.8 táblázat foglalja össze 5. FEJEZET

TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 163 5.8 táblázat A locks és az oplocks konfigurációs beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör share modes Boolean érték yes Megosztás locking Boolean érték yes Megosztás strict locking Boolean érték no Megosztás oplocks Boolean érték yes Megosztás kernel oplocks Boolean érték yes Globális fake oplocks Boolean érték no Megosztás blocking locks Boolean érték yes Megosztás veto oplock files lock directory Karakterlánc (fájlnevek listája) Karakterlánc (teljes elérési út) Ha yes az értéke, bekapcsolja a DOS stílusú, teljes fájlra vonatkozó zárolást. Ha yes az értéke, bekapcsolja bájttartományú zárolást. Ha yes az értéke, letiltja a teljes fájl elérését, ha be van kapcsolva rá a bájttartományú zárolás. Ha yes az értéke, bekapcsolja a fájloknak az ügyfélnél történő elrejtését az adott

megosztásra. Ha yes az értéke, azt jelzi, hogy a kernel támogatja az oplock zárolást. Ha yes az értéke, azt közli az ügyféllel, hogy megkapta a zárolást, de még sincsen zárolva. Lehetővé teszi, hogy a zárolást kérő várakozzon a zárolás megadására. Nem alkalmaz oplock zárolást az adott fájlokra. Nincs Megosztás Megadja azt a helyet, ahol a Samba különböző fájlokat tárol, ide értve a zárolt fájlokat is. A Samba makeGlobális fájlban megadottak szerint share modes A Sambában rendelkezésre álló legegyszerűbb zárolás a megtagadás (deny) módú, vagy share modes néven ismert zárolás, amelyeket olyan programok alkalmaznak, mint a szövegszerkesztők, hogy megakadályozzák a fájlok véletlen felülírását. A megtagadás módú zárolásokat az 5.9 táblázat foglalja össze 164 | SAMBA 5.9 táblázat Az SMB megtagadás módú zárolásai Zárolás Leírás DENY NONE DENY ALL DENY READ Semmilyen fájlkérést sem tagad meg.

Az aktuális fájlra minden megnyitási kérést megtagad. Az aktuális fájlra vonatkozó minden, csak olvasásra vonatkozó megnyitási kérést megtagad. Az aktuális fájlra vonatkozó minden, csak írásra vonatkozó megnyitási kérést megtagad. Ha olvasásra van megnyitva a fájl, mások is olvashatják, de nem írhatnak bele. Ha írásra van megnyitva, mások egyáltalán nem nyithatják meg Elavult. DENY WRITE DENY DOS DENY FCB A share modes beállítás, amely kikényszeríti a fenti zárolásokat, alapbeállítás szerint be van kapcsolva. A kikapcsolásához írjuk be a következőt: [accounting] share modes = no Sohase tiltsuk le ezt az alapértelmezett zárolási mechanizmust, hacsak nincs nyomós okunk rá. Számos DOS és Windows alatt futó alkalmazás igényli a helyes működéséhez ezt a zároló mechanizmust, és nagyon zokon venné a hiányát. locking A locking beállítás segítségével azt írhatjuk elő a Sambának, hogy alkalmazza-e egy ügyfél

kérésére a kiszolgálón a bájttartományú zárolást vagy sem. A Samba normál Unix zárolásként valósítja meg a bájttartományú zárolásokat, és a jól megtervezett Unix processzeket megakadályozza abban, hogy felülírják a zárolt bájttartományt A beállítást az alábbiak szerint adhatjuk meg egy megosztásra: [accounting] locking = yes Ha a locking beállításhoz a yes értéket rendeljük, a hozzáférési kérés teljesítése mindaddig késik, amíg bármelyik típusú zárolás birtokosa fel nem oldja a zárolást (vagy össze nem omlik). Ha viszont a no értéket rendeljük hozzá, akkor a fájlokra nem fog érvényesülni a bájttartományú zárolás, jóllehet úgy tűnik, hogy elvégezhető a fájlok zárolása és a zárolás feloldása. A beállításhoz alapértelmezés szerint a yes érték tartozik, de ezt megváltoztathatjuk, ha csak olvasható adathordozót használunk strict locking Ez a beállítás minden egyes, bájttartományú zárolásra

irányuló fájlhozzáférést megvizsgál a zárolt bájtok tartományában. Erre általában nincs szükség, ha egy ügyfél következetesen tartja magát az összes zárolási mechanizmushoz. A beállítás alapértelmezett értéke a no, bár ez egy adott megosztásra megváltoztatható: 5. FEJEZET TALLÓZÁS ÉS A LEMEZMEGOSZTÁSOK FOLYTATÁSA | 165 [accounting] strict locking = yes Azzal, hogy a beállításhoz a yes értéket rendeljük, az összes bájtzárolást használó fájlra kikényszerítjük a kötelező zárolásokat. blocking locks A Samba a blocking locks beállítást is támogatja, ami a tartományi zárolások egyik alváltozatának tekinthető. Ha egy ügyfél azt tapasztalja, hogy egy bájttartományhoz nem férhet hozzá, megadhatja azt az időtartamot, amennyi ideig hajlandó várakozni. A kiszolgáló ekkor félreteszi a kérelmet, és rendszeres időközönként megvizsgálja, hogy felszabadult-e már a bájttartomány. Ha igen, akkor értesíti

erről az ügyfelet, ha viszont időközben lejárt a várakozási idő, azt közli a felhasználóval, hogy nem tudta teljesíteni a kérését. Ezzel az eljárással megkímélhető az ügyfél attól, hogy folytonosan vizsgálja, megszűnt-e a zárolás. A beállítást az alábbiak szerint tilthatjuk le egy megosztásra: [accounting] blocking locks = no Ha a yes értéket rendeljük a beállításhoz, akkor a zárolás blokkolása a teljes fájlra érvényesül. Ha a beállításhoz a no értéket rendeljük, akkor a Samba a normál blokkolási eljárást használja. A beállítás alapértelmezett értéke a yes oplocks Ezzel a beállítással engedélyezhetjük vagy tilthatjuk az ügyfélnél az opportunista zárolások támogatását. A beállítás alapértelmezés szerint támogatja az ilyen zárolást, de ezt az alábbiak szerint meg is változtathatjuk: [data] oplocks = no Ha rendkívül instabil a hálózati környezetünk, vagy ha sok olyan ügyfelünk van, aki nem tudja

használni az opportunista zárolást, akkor célszerűbb nem használni ezt a beállítást. Akkor is ajánlatos tiltani az ilyen zárolást, ha biztosítanunk kell, hogy Unix alkalmazások (mint például a vi) és SMB ügyfelek is hozzáférhessenek ugyanazokhoz a fájlokhoz (hacsak nincs olyan szerencsénk, hogy az operációs rendszerünk a kernel oplock zárolásokat is támogatja, amint erről korábban olvashattunk). fake oplocks Az opportunista zárolás megvalósítása előtt a Samba démonjai a fake oplocks (hamis oplocks) beállítás révén úgy tettek, mintha engedélyezték volna az oplocks zárolásokat. Ha engedélyezve volt ez a beállítás, az összes ügyfél azt a tájékoztatást kapta, hogy a fájlra kiadható az opportunista zárolás, és nem kapnak figyelmeztetést az egyidejű hozzáférésekről. Mióta a Samba lehetővé teszi a valóságos oplocks zárolásokat, ez a beállítás elvesztette a jelentőségét 166 | SAMBA kernel oplocks Ha egy

Unix alkalmazás a Sambától függetlenül olyan fájlt próbál meg frissíteni, amelyet a Samba opportunista módon zárolt egy Windows ügyfél elől, akkor ez a művelet valószínűleg sikerülhet neki, és erről sem a Samba, sem az ügyfél sohasem szerez tudomást. Ha viszont a helyi Unix operációs rendszer támogatja ezt a beállítást, a Samba tájékoztathatja a Unix alkalmazást az opportunista módon zárolt fájlokról. Ekkor a Unix felfüggeszti a processz futását, a Sambán keresztül értesíti az ügyfelet, hogy írja vissza a módosításait, és csak ez után engedélyezi a fájl megnyitását. Lényegében ez azt jelenti, hogy a Unix operációs rendszer kernelje ugyanúgy képes kezelni az oplocks zárolásokat, mint maga a Samba A kernel oplocks beállításnak ezt a viselkedését a következő módon engedélyezhetjük: [global] kernel oplocks = yes A Samba automatikusan észleli a kernel oplocks zárolásokat és használja is őket. E könyv

írásának idején csak az SGI Irix 6.52f és a későbbi verziói támogatják az ilyen zárolásokat A közeljövőben ugyanez várható a Linux és a FreeBSD operációs rendszerektől. A kernel oplocks zárolásokat nem támogató operációs rendszerek engedélyezik a Unix processznek egy fájl frissítését, de az ügyfélprogramok csak később vagy egyáltalán nem értesülnek ezekről a változásokról. veto oplock files A veto oplock files beállításban felsorolhatjuk azokat a fájlokat, amelyekre sohasem akarjuk alkalmazni az oplocks zárolásokat. A beállítás globális vagy megosztás hatókörben is használható Például: veto oplock files = /*.bat/*.htm/ A beállításhoz minták sorozatát rendeltük. Mindegyik listaelemnek törtjellel (/) kell kezdődnie és végződnie, még akkor is, ha a lista egyetlen elemből áll Általános helyettesítőként csillag karakterek használhatók 0 vagy több karakter helyett Minden egyes kérdőjel pontosan egy

karaktert helyettesít. Javasolható, hogy mindazokra a fájlokra tiltsuk le az oplocks zárolásokat, amelyeket Unix alkalmazásoknak kell frissíteniük, vagy amelyekhez több processznek egyidejűleg kell hozzáférnie. lock directory Ezzel a beállítással (amely lock dir alakban is írható) annak a könyvtárnak a helyét adhatjuk meg, ahol a Samba a deny (megtagadás) módon zárolt fájlokat tárolja. A Samba ebben a könyvtárban más fájlokat is tárol, így például a tallózólistákat és a megosztott memóriafájlokat. Ha engedélyezve van a WINS, akkor a WINS adatbázisa is ebbe a könyvtárba íródik. A beállításhoz tartozó alapértelmezett könyvtárat a Samba make-fájl programja határozza meg, ami tipikusan a /usr/local/samba/var/locks. Ezt a helyet a következő módon felülbírálhatjuk: [global] lock directory = /usr/local/samba/locks Az alapértelmezett könyvtárat általában nem kell megváltoztatnunk, hacsak nem akarjuk a zárolt fájlokat egy, a

szokásoknak még inkább megfelelő helyre írnunk, például a /var/spool/locks könyvtárba. Felhasználók, biztonság és tartományok Ebben a fejezetben arról olvashatunk, hogy miként konfigurálhatjuk a Samba kiszolgálóhoz csatlakozó felhasználókat. A feladat első hallásra egyszerűnek tűnhet, de hamarosan látni fogjuk, hogy a művelet során számos problémával kell szembenéznünk. A Samba rendszergazdáknak például komoly nehézséget okoz a felhasználók hitelesítése – a Samba levelezőlistáira a jelszavakkal és a biztonsággal kapcsolatban érkezik a legtöbb kérdés. Ha megtudjuk, hogy a különböző hitelesítő mechanizmusok hogyan működnek bizonyos architektúrákban (és másokban miért nem), akkor rengeteg időt takaríthatunk meg a Samba felhasználóinak tesztelése és a hibakeresés során. Felhasználók és csoportok Mielőtt még belefognánk a részletekbe, fel kell hívnunk a Samba rendszergazdák figyelmét arra, hogy ha

Windows 98 vagy NT 4.0 Workstation SP3 rendszert használó ügyfelek is kapcsolódnak a kiszolgálóhoz, akkor a kiszolgálót úgy kell konfigurálniuk, hogy képes legyen titkosított jelszavak kezelésére. Ezek az operációs rendszerek ugyanis titkosított jelszavakat küldenek, és a Sambának vissza kell tudni fejtenie ezeket. Erről a konfigurálásról a fejezet későbbi részében lesz szó Kezdjük a feladatot egyetlen felhasználóval. Felhasználó telepítésének legegyszerűbb módja az, hogy a kiszolgálón elkészítünk a számára egy Unix fiókot (és a home könyvtárát), majd tájékoztatjuk a Sambát a felhasználó létezéséről. Az utóbbit olyan lemezmegosztás készítésével is megtehetjük, amely leképzi a felhasználó home könyvtárát a Samba konfigurációs fájlban, és az érvényes felhasználókra korlátozza az ehhez való hozzáférést. Például: [dave] path = /home/dave comment = Dave home könyvtára writeable = yes valid users = dave

A valid users beállítás azokat a felhasználókat sorolja fel, akik számára engedélyezve van a megosztáshoz való hozzáférés. A példánkban ez csak a dave nevű felhasználó Az előző fejezetekben a guest ok beállítást használva bármely felhasználónak engedélyeztük a hozzáférést. Mivel most nem ez a célunk, nem használjuk ezt a beállítást Ha akar- 168 | SAMBA nánk, természetesen engedélyezhetnénk, hogy mind a hitelesített felhasználók, mind a vendég felhasználók hozzáférhessenek egy adott megosztáshoz. A kétféle hozzáférés közötti különbség az egyes fájlokra megadott hozzáférési jogokkal függ össze. Emlékezzünk arra, hogy a felhasználó home könyvtárát a %H változóval rövidíthetjük. Emellett a Unixos felhasználónév helyett a %u, és/vagy az ügyfél felhasználóneve helyett a %U változót használhatjuk a beállításokban. Például: [dave] comment = %U home könyvtár writeable = yes valid users = dave

path = %H A fenti példák mindaddig megfelelően működnek, amíg a Samba számára ügyfélként megjelenő Unix felhasználónak olvasási és írási hozzáférése van az elérési útban (path) megadott könyvtárhoz. Másként fogalmazva az ügyfélnek először át kell haladnia a Samba biztonsági mechanizmusán (titkosított jelszavak, valid users beállítás stb.), és meg kell felelnie a Unix oldali normál fájl- és könyvtárengedélyeknek is, mielőtt megkapná a megosztáshoz való hozzáférés olvasási/írási jogát. Abban az esetben, ha csak egyetlen felhasználónak kell hozzáférnie egy home könyvtárhoz, a hozzáférési jogosultságok megadása akkor történik meg, amikor az operációs rendszer létrehozza a felhasználó fiókját. Ha viszont csoportelérésű megosztott könyvtárat készítünk, ennél valamivel több lépésre van szükség Próbáljunk meg egy csoportmegosztást létrehozni az accounting részleg számára az smbconf fájlban:

[accounting] comment = Accounting részleg könyvtára writeable = yes valid users = @account path = /home/samba/accounting create mode = 0660 directory mode = 0770 Elsőként az tűnhet fel, hogy a példában a valid users (érvényes felhasználók) beállításhoz nem egy vagy több felhasználónevet, hanem az @account értéket rendeltük. Ez a rövidítés azt jelenti, hogy az érvényes felhasználókat a Unix account csoportfiókja tartalmazza Ezeket a felhasználókat fel kell vennünk a rendszer csoportfájljában (/etc/group) lévő account csoportbejegyzésbe, hogy a Samba a csoport tagjainak tekinthesse őket. Miután ez megtörtént, a Samba ezeket a felhasználókat olyan érvényes felhasználóknak tekinti, akik hozzáférhetnek az adott megosztáshoz. Ezt követően el kell készítenünk azt a megosztott könyvtárat, amelyhez a csoport tagjai hozzáférhetnek. Ezt a path konfigurációs beállítással tehetjük meg Az alábbi Unix parancsokkal hozhatjuk létre az

accounting részleg megosztott könyvtárát (feltételezve, hogy létezik a /home/samba könyvtár): 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 169 # mkdir /home/samba/accounting # chgrp account /home/samba/accounting # chmod 770 /home/samba/accounting Két másik beállítás is szerepel ebben az smb.conf példában, amellyel már találkoztunk az előző fejezetben. Ez a create mode és a directory mode beállítás, amelyek azokat a maximális fájl- és könyvtárengedélyeket határozzák meg, amelyekkel egy újonnan létrehozandó fájl vagy könyvtár rendelkezhet. Az esetünkben a megosztástól minden világi hozzáférést megtagadtunk. (Ezt a chmod parancs is megerősíti) A [homes] megosztás Térjünk vissza egy pillanatra a felhasználói megosztásokhoz. Ha több felhasználóhoz kell létrehoznunk megosztott home könyvtárakat, akkor ehhez a 4. fejezetben megismert speciális [homes] megosztást használhatjuk Ebben a megosztásban mindössze a

következőket kell megadnunk: [homes] browsable = no writable = yes A [homes] megosztás a Samba konfigurációs fájljának egyik különleges szakasza. Ha egy ügyfél olyan normál megosztáshoz próbál hozzáférni, amely nem szerepel az smb.conf fájlban (például a Windows Intézőjében egy UNC-címmel megadva), a Samba egy [homes] megosztást fog keresni. Ha talál ilyet, akkor feltételezi, hogy a kért megosztásnév egy felhasználó neve, és lekérdezi a jelszóadatbázisát (ami az /etc/passwd vagy egy ehhez hasonló fájlban van). Ha megtalálja a felhasználó nevét, akkor feltételezi, hogy az ügyfél unixos felhasználó, aki a saját home könyvtárához próbál meg kapcsolódni. Példaként tegyük fel, hogy egy sofia nevű felhasználó megpróbál kapcsolódni a Samba kiszolgálón lévő [sofia] nevű megosztáshoz. A konfigurációs fájlban nincs ilyen nevű megosztás, de van benne [homes] megosztás, és a jelszóadatbázis is tartalmaz egy sofia nevű

felhasználót. A Samba ekkor a következő lépéseket hajtja végre: 1. Létrehoz egy [sofia] nevű új lemezmegosztást a [homes] szakasz path beállításában megadott elérési úttal Ha a [homes] szakaszban nincs megadva path beállítás, akkor létrehoz egy elérési utat a home könyvtárhoz. 2. Inicializálja az új megosztás beállításait a [global] szakaszban található alapértelmezett értékekkel és a [homes] szakasz felülbíráló értékeivel, a browseable beállítás kivételével. 3. A sofia nevű ügyfelet összekapcsolja ezzel a megosztással A [homes] megosztás gyors és kényelmes megoldást kínál a felhasználók megosztásainak létrehozásához anélkül, hogy meg kellene kettőznünk az smb.conf fájlban a jelszóadatbázis adatait Van azonban néhány olyan különlegessége, amire itt ki kell térnünk: • A [homes] szakasz olyan fiókokat is készíthet a gépen, amelyek nem mindig kívánatosak. Így például olyan nevekhez is létrehozhat

megosztást, mint root, bin, sys, uucp és ehhez hasonlók (ez ellen a globális hatókörű invalid users beállítással védekezhetünk.) 170 | SAMBA • A browseable konfigurációs beállítás jelentése ebben a szakaszban eltér a más megosztásokban betöltött szerepétől. Itt azt jelzi, hogy csak a [homes] szakasz nem jelenik meg a helyi tallózólistában, és nem vonatkozik az [alice] megosztásra. Amikor a Samba (a kapcsolódást követően) létrehozza az [alice] szakaszt, a browseable beállítás értékét az adott megosztás [global] szakaszából és nem a [homes] szakaszából veszi ki. Amint említettük, nincs szükség a path beállításra a [homes] szakaszban, ha a felhasználóknak Unix home könyvtáruk van a kiszolgáló /etc/passwd fájljában. Gondoskodnunk kell azonban arról, hogy létezzen érvényes home könyvtár, mert a Samba ezt nem hozza automatikusan létre egy felhasználó számára, és megtagadja a kapcsolatot, ha nem létezne ilyen

könyvtár vagy nem lenne elérhető. Megosztások elérésének szabályozása Biztonsági okokból gyakran korlátozni kell a felhasználókat adott megosztások elérésében. Ezt a Sambában könnyen megtehetjük, mert számos olyan beállítást bocsát a rendelkezésünkre, amelyek segítségével gyakorlatilag bármilyen biztonsági óvintézkedést megtehetünk Lássunk néhány olyan konfigurációs beállítást, amelyet a Samba telepítésekor használhatunk. Itt is elmondjuk, hogy azok az ügyfelek, akik Windows 98 vagy a 3-as szervizcsomaggal kiegészített NT 4.0 operációs rendszert vagy ezek újabb verzióit használva kapcsolódnak a Samba kiszolgálóhoz, titkosított jelszavakat küldenek a kiszolgálóra. Ha a Sambát nem készítjük fel az ilyen jelszavak fogadására, akkor a kiszolgáló nem hozza létre ezeket a kapcsolatokat Ennek a fejezetnek a ,,Jelszavak” részében olvashatunk arról, miként konfigurálhatjuk a Sambát a titkosított jelszavak

fogadásához Az előbb láttuk, hogy mi történik, amikor érvényes felhasználókat adunk meg. Megadhatjuk azonban az érvénytelen felhasználók listáját is – azon felhasználókat, akiknek sohasem engedélyezzük, hogy hozzáférjenek a Sambához vagy valamely megosztásához Ezt az invalid users beállítás segítségével tehetjük meg. Ennek a beállításnak a gyakori használatára már korábban utaltunk a [homes] szakasz kapcsán: egy globális hatókörű beállítással gondoskodhatunk arról, hogy különböző rendszerhasználók és kiemelt felhasználók ne kerülhessék meg a tiltást. Például: [global] invalid users = root bin daemon adm sync shutdown halt mail news uucp operator gopher auto services = dave peter bob [homes] browsable = no writeable = yes 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 171 A valid users beállításhoz hasonlóan az invalid users beállításhoz is rendelhetők csoportnevek. Abban az esetben, ha egy

felhasználói vagy csoportnév mindkét listában előfordul, az invalid users beállításnak van elsőbbsége, és az ide tartozó felhasználók vagy csoportok nem férhetnek hozzá a megosztáshoz. Ennek ellentéteként az admin users beállítás segítségével kifejezetten azokat a felhasználókat is megadhatjuk, akik szuperfelhasználóként (root) férhetnek hozzá egy megosztáshoz. Tekintsük az alábbi példát: [sales] path = /home/sales comment = Fiction Corp Sales Data writeable = yes valid users = tom dick harry admin users = mike Ehhez a beállításhoz felhasználói és csoportnevek is rendelhetők. Ezen túlmenően az @ karakter előreírásával NIS hálózatcsoportokat is specifikálhatunk; ha a Samba nem talál hálózatcsoportokat, akkor azt feltételezi, hogy egy normál Unixos csoportra hivatkozunk. Legyünk óvatosak, amikor teljes csoportnak adunk rendszergazdai privilégiumokat egy megosztás eléréséhez. A Samba fejlesztői semmiképpen sem

javasolják ezt, mert ezzel az adott megosztáshoz root szintű hozzáférést engedélyezünk a specifikált felhasználók vagy csoportok részére. Ha egy adott megosztáshoz hozzáférő felhasználók számára csak olvasási vagy olvasási és írási jogokat akarunk megadni, akkor ezt a read list és a write list beállítások segítségével tehetjük meg. Például: [sales] path = /home/sales comment = Fiction Corp Sales Data read only = yes write list = tom dick A write list beállítással nem bírálhatók felül a Unix engedélyek. Ha anélkül hoztunk volna létre egy megosztást, hogy a Unix rendszerben engedélyeztük volna a felhasználó számára az írási hozzáférést, a felhasználó nem férhet hozzá a megosztáshoz, bármi legyen is a write list beállítás értéke. Vendéghozzáférés Amint korábban szó volt róla, megadhatunk olyan felhasználókat, akik vendégként férhetnek hozzá egy megosztáshoz. A vendéghozzáférések beállításai

egyszerűen használhatók Az első beállítás, a guest account azt a Unix fiókot adja meg, amelyhez a vendégfelhasználók tartozni fognak, amikor kapcsolódnak a Samba kiszolgálóhoz A beállítás az alapértelmezés szerinti értékét a Samba lefordításakor kapja meg, ami tipikusan a nobody (=senki). Ezt az értéket azonban módosíthatjuk például az ftp értékre, ha problémát okoz a különböző rendszerszolgáltatások elérése. | 172 SAMBA Ha egy megosztáshoz való hozzáférést csak a vendégekre akarjuk korlátozni – vagyis azt szeretnénk, hogy a felhasználók csak vendégként férhessenek hozzá a megosztáshoz –, akkor a guest only beállítást a guest ok beállítással együtt használhatjuk az alábbiak szerint: [sales] path = /home/sales comment = Fiction Corp Sales Data writeable = yes guest ok = yes guest account = ftp guest only = yes Győződjünk meg arról, hogy ebben a szereposztásban mind a guest only, mind a guest ok

beállításhoz a yes értéket rendeltük, mert ellenkező esetben a Samba nem használná a megadott guest account fiókot. Hozzáférést szabályozó beállítások A megosztások elérését szabályozó beállítási lehetőségeket a 6.1 táblázat foglalja össze 6.1 táblázat Megosztás szintű hozzáférési beállítások Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör admin users Karakterlánc (felhasználónevek listája) Karakterlánc (felhasználónevek listája) Karakterlánc (felhasználónevek listája) Azon felhasználók listáját adja meg, akik rootként végezhetnek műveleteket. Azon felhasználók listáját adja meg, akik hozzáférhetnek egy megosztáshoz. Azon felhasználók listáját adja meg, akik nem férhetnek hozzá egy megosztáshoz. Azon felhasználók listáját adja meg, akik csak olvasásra férhetnek hozzá egy írható megosztáshoz. Azon felhasználók listáját adja meg, akik olvasásra és írásra férhetnek

hozzá egy csak olvasható megosztáshoz. Megadja a megosztáshoz egyidejűleg létrehozható hozzáférések maximális számát. Nincs Megosztás Nincs Megosztás Nincs Megosztás Nincs Megosztás Nincs Megosztás 0 Megosztás valid users invalid users read list Karakterlánc (felhasználónevek listája) write list Karakterlánc (felhasználónevek listája) max connections Numerikus 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 173 6.1 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör guest only (only guest) guest account Boolean érték Azt jelzi, hogy a megosztáshoz csak vendég férhet hozzá. no Megosztás Karakterlánc (fiók neve) Megadja a vendéghozzáféréshez használt Unix fiók nevét. nobody Megosztás admin users Ehhez a beállításhoz azon felhasználók nevét rendelhetjük, akik rootként hajthatnak végre fájlműveleteket. Ez azt jelenti, hogy az ilyen felhasználók

más felhasználók munkáit módosíthatják vagy akár tönkre is tehetik, bármilyen engedélyek is tartozzanak a fájlokhoz. Az ilyen felhasználók által létrehozott fájloknak a root lesz a tulajdonosa, és a rendszergazdai jogú felhasználók alapértelmezés szerinti csoportja használhatja ezeket Az admin users beállítás arra használható, hogy a PC-s felhasználók rendszergazdaként dolgozhassanak adott megosztásokon. Lehetőség szerint kerüljük ennek a beállításnak a használatát. valid users és invalid users A fenti két beállítás segítségével azokat a felhasználókat és csoportokat sorolhatjuk fel, akik, illetve amelyek számára meg akarjuk adni, illetve meg akarjuk tiltani egy adott megosztás elérését. A listában a neveket szóköz választja el, és a csoport neve elé írt @ karakterrel NIS vagy Unix csoportnevet is megadhatunk E két beállítás használatával kapcsolatban fontos tudnunk, hogy az invalid users beállításhoz rendelt

lista egyetlen felhasználója vagy csoportja számára sincs engedélyezve a hozzáférés, még akkor sem, ha szerepel a nevük (bármilyen formában) a valid users beállítás listájában. Alapértelmezés szerint egyik beállításhoz sem tartozik lista Ha egyik beállításhoz sincs rendelve lista, akkor bármelyik felhasználó hozzáférhet a megosztáshoz. read list és write list A valid users és az invalid users beállításokhoz hasonlóan ez a beállításkettős azokat a felhasználókat adja meg, akik csak olvasásra férhetnek hozzá egy írható megosztáshoz, illetve írásra és olvasásra férhetnek hozzá egy csak olvasható megosztáshoz. Mindkét beállításhoz felhasználók listája rendelhető. A read list beállítás a Samba által megadott összes engedélyt felülbírálja, akárcsak a kiszolgáló rendszerén a Unix fájlengedélyeket, vagyis megtagadja a felhasználóktól az írási jogot. A write list beállítás felülbírálja a Samba által

írásra megadott engedélyeket, de nem adhat írási engedélyt, ha a felhasználónak a Unix rendszeren nincs joga írni a fájlba. A listában a csoport neve elé írt @ karakterrel NIS vagy Unix csoportneveket is megadhatunk (mint például @users) Alapértelmezés szerint egyik beállításhoz sem tartozik lista 174 | SAMBA max connections Ezzel a beállítással azon felhasználók maximális számát adhatjuk meg, akik egyidejűleg kapcsolódhatnak egy megosztáshoz. Ha a kapcsolódások száma eléri az itt megadott számot, a Samba az újabb kérelmeket elutasítja A beállításhoz alapértelmezés szerint a 0 érték tartozik, ami azt jelenti, hogy a kapcsolatok száma nincs korlátozva. Ezt az értéket az alábbiak szerint módosíthatjuk: [accounting] max connections = 30 Ennek a beállításnak akkor vehetjük a hasznát, ha korlátozni akarjuk egy licencprogramot vagy egy adathalmazt egyidejűleg használó felhasználók számát. guest only Ez a megosztás

szintű beállítás (amit esetenként az only guest alakban is használnak) a guest account beállításban megadott felhasználói fiókhoz létrehozandó kapcsolatot kényszeríti ki. A megosztásba kifejezetten be kell venni a guest ok = yes beállítást, hogy a Samba észlelje a fiókot. A guest only beállításhoz alapértelmezés szerint a no érték tartozik. guest account Ez a beállítás annak a fióknak a nevét adja meg, amelyet a Sambában a vendégek használnak a megosztások eléréséhez. A beállításhoz tartozó alapértelmezett érték rendszerről rendszerre változó, de gyakran a nobody (=senki) az értéke. Egyes alapértelmezés szerinti felhasználói fiókoknak problémáik vannak a vendégfelhasználóként való hozzáférésekkel. Ha ilyen problémák lépnének fel a rendszerünkben, akkor a Samba fejlesztői azt javasolják, hogy az ftp fióknevet használjuk a vendégfelhasználók fiókneveként Felhasználói nevek beállításai A 6.2 táblázat

két olyan beállítást mutat be, amelyek segítségével a Samba kijavíthatja a Windows és a Unix rendszerekben használt felhasználónevek közötti eltéréseket. 6.2 táblázat Felhasználói nevek beállítási lehetőségei Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör username map Karakterlánc (teljes elérési út) Numerikus Megadja a felhasználónevet leképező fájl nevét. Nincs Globális Megadja a felhasználónév illesztése során használható nagybetűk számát. 0 Globális username level 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 175 username map Amíg egy SMB hálózaton a felhasználói nevek viszonylag hosszúak lehetnek (max. 255 karakter), addig a unixos hálózatok általában nyolc karakternél hosszabb neveket nem tesznek lehetővé. Ez azt jelenti, hogy egy felhasználónak az ügyfélgépen hosszabb, a Samba kiszolgálón pedig rövidebb (másik) neve lehet. Ezen a problémán úgy

segíthetünk, hogy a nagyobb szabadsággal megválasztható ügyfélnevet egy nyolc vagy ennél kevesebb karakterből álló unixos névnek feleltetjük meg, és a megfeleltetéseket normál, szöveges fájlban tároljuk. A megfeleltetések formátumára rövidesen kitérünk Ezt követően a globális hatókörű username map beállításban megadjuk a fájl elérési útját Korlátozzuk ennek a fájlnak az elérhetőségét: tegyük a rootfelhasználót a fájl tulajdonosává, és mindenki más számára tiltsuk meg a fájl elérését. Ha nem tennénk így, akkor egy meghatalmazás nélküli felhasználó, aki hozzáférne a fájlhoz, könnyen leképezhetné a felhasználónevét a Samba rootfelhasználói nevére A beállítást az alábbi módon használhatjuk: [global] username map = /etc/samba/usermap.txt A felhasználónevek megfeleltetését tartalmazó fájlban az egyes bejegyzéseknek a következő formátumúaknak kell lenniük: Unix felhasználói név, utána egy

egyenlőségjel (=), amit egy vagy több szóközzel elválasztva követnek az SMB ügyfél felhasználói nevek. Jegyezzük meg, hogy ha nem intézkedünk másként (vagyis ha nem vendégkapcsolatról van szó), akkor a Samba mind az ügyfél, mind a kiszolgálói felhasználónévhez ugyanazt a jelszót várja. Az @ karakter segítségével NT csoportokat is megfeleltethetünk egy vagy több Unix csoportnak. Néhány példa a fentiekre: jarwin = JosephArwin manderso = MarkAnderson users = @account Egy bejegyzésben csillag (*) karakterrel jelölhetünk olyan megfeleltetést, amely bármilyen ügyfél felhasználói nevet jelenthet: nobody = * A fájlban létra (#) vagy pontosvessző (;) karakterekkel kezdődő sorokban helyezhetünk el megjegyzéseket. Jegyezzük meg, hogy ezt a fájlt arra is használhatjuk, hogy egy Unix felhasználót másik Unix felhasználóra irányítsunk át. Legyünk azonban óvatosak ezzel, mert előfordulhat, hogy a Samba és az ügyfelünk nem

értesíti arról a felhasználót, hogy át lett irányítva, és a Samba más jelszót várhat tőle. username level Az SMB ügyfelek (például a Windows ügyfelek) az SMB kapcsolatkéréseik során a felhasználói nevüket gyakran csupa nagybetűs alakban küldik el, vagyis nem különböztetik meg feltétlenül a kis- és a nagybetűket. Egy Unix kiszolgáló viszont különbséget tesz közöttük: 176 | SAMBA az ANDY felhasználói nevet nem tekinti azonosnak az andy névvel. Alapbeállítás szerint a Samba a következőképpen hidalja át ezt a problémát: 1. Az ügyfél által küldött névvel pontosan egyező név alapján megkeresi a felhasználó fiókját. 2. Megvizsgálja a felhasználónevet csupa kisbetűs alakban 3. Megvizsgálja a felhasználónevet úgy, hogy csak az első betűjét alakítja át nagybetűsre A globális hatókörű username level beállítás segítségével további nagy- és kisbetűs kombinációk vizsgálatát is előírhatjuk a Samba

számára. A beállításhoz egész értékeket rendelhetünk, amelyek azt mondják meg, hogy a felhasználói névben hány betűt kell nagybetűs alakra átalakítani, amikor egy felhasználó hozzá akar férni egy megosztáshoz. A beállítást a következő módon használhatjuk: [global] username level = 3 A fenti példában a Samba a felhasználóneveken minden olyan permutációt elvégez, ami három nagybetűvel végrehajtható. Minél nagyobb ez a szám, annál több számítást kell végeznie a Sambának, és annál tovább tart a hitelesítés. Hitelesítési biztonság Ezen a ponton elérkeztünk oda, hogy megvizsgáljuk, miként hitelesíti a Samba a felhasználókat. A felhasználónak minden olyan megosztásra irányuló kapcsolatkérés esetén, amely nem engedélyezi a vendéghozzáférést, el kell küldenie egy jelszót, hogy létrejöhessen a kapcsolat. A security beállítás megfelelő használatával írhatjuk elő, hogy mit kezdjen a Samba a jelszóval, és

milyen hitelesítési stratégiát alkalmazzon a megfelelő biztonság eléréséhez. Jelenleg a Samba négy különböző szinten támogatja a hálózati biztonságot: megosztási, felhasználói, kiszolgálói és tartományi szinten. Megosztás szintű biztonság A munkacsoportban minden egyes megosztáshoz egy vagy több jelszó tartozik. Bárki, aki ismer egy érvényes jelszót, hozzáférhet az adott megosztáshoz. Felhasználói szintű biztonság A munkacsoport megosztásai úgy vannak konfigurálva, hogy bizonyos felhasználóknak engedélyezzék a megosztások elérését. A Samba kiszolgáló ellenőrzi a felhasználókat és a jelszavukat arra vonatkozóan, hogy hozzáférhetnek-e az adott megosztáshoz Kiszolgálói szintű biztonság Ez azonos a felhasználói szintű biztonsággal azzal a kivétellel, hogy a Samba külön SMB kiszolgálót használ a felhasználók és a jelszavak érvényesítésére, mielőtt engedélyezné adott megosztások elérését. 6.

FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 177 Tartomány szintű biztonság A Samba egy Windows tartomány tagjává válik, és a tartomány elsődleges tartományvezérlőjét (PDC) használja a hitelesítés elvégzéséhez. Miután megtörtént a hitelesítés, a felhasználó egy speciális ,,tokent” kap, ami lehetővé teszi számára, hogy hozzáférjen azokhoz a megosztásokhoz, amelyekre ez a token feljogosítja. Miután a felhasználó a token birtokába jutott, az elsődleges tartományvezérlő nem vizsgálja újra a felhasználó jelszavát minden olyan alkalommal, amikor a tartományon belül más megosztásokhoz akar hozzáférni. Ezek a biztonsággal kapcsolatos ,,házirendek” a globális security beállítás segítségével valósíthatók meg (lásd a 6.3 táblázatot) 6.3 táblázat Biztonsági beállítások Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör security domain, server, share vagy user A Samba kiszolgáló

által használt biztonsági szintet jelzi. user (Samba 2.0) vagy share (Samba 1.9) Globális Megosztás szintű biztonság Megosztás szintű biztonság alkalmazásakor minden egyes megosztáshoz egy vagy több jelszó tartozik. A biztonságnak ez a típusa annyiban különbözik a biztonság többi típusától, hogy a megosztáshoz való hozzáférés nem valamely felhasználóhoz vagy felhasználókhoz kapcsolódik Bárki, aki ismeri a jelszót, hozzáférhet a megosztáshoz A megosztásokhoz gyakran több jelszó is tartozik Így például az egyik jelszó csak olvasható hozzáférést engedélyez, míg egy másik az írási engedélyt is megadja, és így tovább A biztonság mindaddig garantált, amíg jogosulatlan felhasználók nem jutnak a számukra tiltott megosztások jelszavának birtokába. Mind az OS/2, mind a Windows 95/98 támogatja az erőforrásaira vonatkozó, megosztás szintű biztonságot. Windows 95/98-as rendszerben a Hálózat párbeszédablak

Hozzáférési jogok lapján a Megosztásszintű hozzáférés választógomb bekapcsolásával állíthatjuk be a megosztás szintű biztonságot (lásd a 61 ábrát) Miután bekapcsoltuk ezt a választógombot, kattintsunk az OK gombra Ezt követően kattintsunk az egér jobb oldali gombjával valamelyik erőforrásra, például a merevlemezre vagy a CD-ROM meghajtóra. Ekkor megnyílik az Erőforrás tulajdonságok párbeszédablak. Válasszuk a Megosztás lapot, és kapcsoljuk be a Megosztva az alábbi néven feliratú választógombot. Ekkor megadhatjuk, hogy az erőforrás milyen néven jelenjen meg az egyes felhasználók számára, milyen hozzáférési jogok tartozzanak a megosztáshoz (csak olvasásra, teljes, jelszótól függő), és mi legyen a jelszó. Ha valaki azt gondolná, hogy ez a biztonsági modell nem kellőképpen jó a Samba kiszolgálón, annak igaza van. Csakugyan, ha a Samba konfigurációs fájljában a security = share beállítást alkalmaznánk, a Samba a

rendszer jelszófájljaiban újra használná a fel- 178 | SAMBA 6.1 ábra Megosztás szintű biztonság választása Windows rendszerben használónév/jelszó kombinációt egy hozzáférés hitelesítéséhez. Közelebbről nézve a Samba az alábbi lépéseket végzi el, amikor egy ügyfél kapcsolatot akar létrehozni egy megosztás szintű biztonsággal védett megosztáshoz: 1. A kapcsolatfelvétel kérésekor a Samba fogadja a felhasználó jelszavát és (amennyiben elküldésre került) a nevét. 2. Ha a megosztás guest only (vagyis csak vendégek férhetnek hozzá), a Samba azonnal elérhetővé teszi a felhasználó számára a megosztást a guest account beállításban megadott jogokkal, és nem vizsgálja a jelszavát. 3. A többi megosztást illetően a Samba a felhasználó nevét felveszi azon felhasználók listájába, akik hozzáférhetnek a megosztáshoz Csak ezt követően vizsgálja a felhasználónévvel együtt megadott jelszót Ha érvényesnek

találja, engedélyezi a megosztás elérését a felhasználóhoz rendelt jogokkal A felhasználót nem kell újra hitelesíteni, hacsak nem szerepel a megosztáson belül a revalidate = yes beállítás. 4. Ha nem sikerült a hitelesítés, a Samba megpróbálja azon felhasználók szerint érvényesíteni a jelszót, akiket a korábbi kapcsolatok létrehozásakor már lefordított magának, vagy akik a konfigurációs fájlban az illető megosztásban megadásra kerültek. Ha a jelszó egyik felhasználónévhez sem tartozik (a neveket a rendszer jelszófájlja, tipikusan az /etc/passwd tartalmazza), a felhasználó ezen a felhasználói néven nem kap engedélyt a megosztás elérésére. 5. Ha viszont a megosztáshoz engedélyezett a guest ok vagy a public beállítás, a felhasználó hozzáférhet a megosztáshoz a guest account (vendégfiók) beállításhoz megadott jogokkal. A username beállítás segítségével megadhatjuk, hogy induláskor mely felhasználók kerüljenek

be azon felhasználók listájába, akikre a megosztás szintű biztonság vonatkozik: 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 179 [global] security = share [accounting1] path = /home/samba/accounting1 guest ok = no writable = yes username = davecb, pkelly, andyo Ha a fenti beállításnak megfelelően egy felhasználó megpróbál kapcsolódni egy megosztáshoz, akkor a Samba a küldött jelszót megvizsgálja az egyes felhasználók szerint a saját listájában, majd a davecb, pkelly, és az andyo felhasználók jelszava szerint. Ha bármelyik helyen egyezőséget talál, elfogadja a kapcsolatkérést, és engedélyezi a felhasználónak a hozzáférést. Ellenkező esetben sikertelen az adott megosztás elérése A megosztás szintű biztonság beállításai A 6.4 táblázat a megosztás szintű biztonság tipikus beállításait sorolja fel 6.4 táblázat A megosztás szintű biztonság beállításai Beállítás Paraméterek Funkció

Alapértelmezett érték Hatókör only user Boolean érték no Megosztás username (felhasználó vagy felhasználók) Karakterlánc (felhasználónevek listája) Azt jelzi, hogy csak a username beállításban megadott felhasználónevek fogadhatók el. Megadja azon felhasználók listáját, akik szerint egy ügyfél jelszavát meg kell vizsgálni. Nincs Megosztás only user Ez a kétféle értéket felvehető beállítás azt határozza meg, hogy a Samba a megosztás szintű biztonságot használva csak azon felhasználóknak engedélyezze-e egy megosztás elérését, akik a username beállításban vannak felsorolva, vagy azoknak, akiket a belső listájába lefordított. A beállításhoz alapértelmezés szerint a no érték tartozik, amit azonban egy megosztásban felülbírálhatunk: [global] security = share [data] username = andy, peter, valerie only user = yes 180 | SAMBA username Ehhez a beállításhoz azon felhasználók listája tartozik, akiknek a

Samba megvizsgálja a jelszavát, amikor kapcsolódni akarnak egy megosztáshoz. Ezt tipikusan azon ügyfelekhez használják, akikre megosztás szintű biztonság vonatkozik annak érdekében, hogy egy minősítő jelszó alapján férhessenek hozzá egy adott megosztáshoz – ebben az esetben a jelszó egy adott felhasználóhoz tartozó jelszóval egyezik meg: [global] security = share [data] username = andy, peter, terry Ez a beállítás nem javasolható, hacsak nem megosztás szintű biztonsággal akarjuk felépíteni a Samba kiszolgálónkat. Felhasználói szintű biztonság A Samba rendszer konfigurálásakor ez az előnyben részesítendő biztonsági szint. Ezt a mechanizmust használva az egyes megosztások adott felhasználókhoz vannak rendelve, akik hozzáférhetnek ezekhez a megosztásokhoz. Amikor egy felhasználó kapcsolódni próbál egy megosztáshoz, a Samba úgy végzi el a hitelesítését, hogy a megadott felhasználónevet és jelszót összeveti a

konfigurációs fájlban megadott meghatalmazott felhasználókkal és a Samba kiszolgálón lévő jelszóadatbázisban tárolt jelszavakkal. Amint a fejezet elején említettük, az egyes megosztásokhoz alkalmazott valid users beállítás segítségével különíthetjük el azokat a felhasználókat, akik számára engedélyezett egy adott megosztás elérése: [global] security = user [accounting1] writable = yes valid users = bob, joe, sandy A listában megadott mindegyik felhasználó kapcsolódhat a megosztáshoz, ha a jelszava megegyezik a kiszolgálón a jelszóadatbázisban tárolt jelszóval. Ha az induláskor sikeres volt a hitelesítés, akkor a felhasználónak nem kell újra megadnia a jeszavát, ha újra hozzá akar férni a megosztáshoz, hacsak nem tartalmazza a megosztás a revalidate = yes beállítást. A jelszavak titkosítva és titkosítás nélkül is elküldhetők a Samba kiszolgálóra. Ha a hálózatunkban mindkét típusú rendszer egyidejűleg létezik,

akkor biztosítanunk kell, hogy az egyes felhasználókhoz tartozó jelszavak a hagyományos adatbázisban és a Samba titkosított jelszóadatbázisában is meglegyenek. Ilyen módon a meghatalmazott felhasználók bármilyen típusú ügyfélként hozzáférhetnek a megosztásaikhoz.* Ha viszont fontos * Az, hogy a hálózatunkban titkosított és nem titkosított jelszavakat is használó ügyfelek lehetnek, ugyancsak oka annak, hogy a Samba miért teszi lehetővé olyan beállítások felvételét a konfigurációs fájljába, amelyek változókat használnak az ügyfél operációs rendszerek azonosításához. 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 181 szempont a biztonság, akkor az javasolható, hogy titkosított jelszavakhoz konfiguráljuk a rendszerünket, és ne engedélyezzük a titkosítás nélkülieket. A fejezet ,,Jelszavak” részében olvashatunk arról, miként használhatunk mind titkosított, mind titkosítás nélküli jelszavakat.

Kiszolgálói szintű biztonság A kiszolgálói szintű biztonság hasonló a felhasználói szintű biztonsághoz. A különbség az, hogy kiszolgálói szintű biztonság alkalmazásakor a Samba a jelszavak hitelesítését egy másik SMB jelszó-kiszolgálóra, tipikusan egy, a hálózatban elsődleges tartományvezérlőként működő Samba vagy Windows NT Server gépre bízza. Jegyezzük azonban meg, hogy a Samba az smb.conf fájljában továbbra is vezet listát a megosztásairól és azok beállításairól Amikor egy ügyfél kapcsolatot próbál létrehozni egy megosztáshoz, a Samba megvizsgálja, hogy az ügyfél valóban jogosult-e a megosztás elérésére. Ezt követően a Samba egy ismert protokollon keresztül kapcsolatba lép az SMB jelszó-kiszolgálóval, és megkísérli annál is hitelesíteni a jelszót. Ha ez utóbbi kiszolgáló elfogadja a jelszót, akkor létrejön az ügyféllel a kapcsolat. A kapcsolat felépülését a 62 ábra szemlélteti 6.2 ábra Egy

kapcsolat tipikus felépülése kiszolgálói szintű biztonság mellett Kiszolgálói szintű biztonság esetén a globális hatókörű password server beállítással konfigurálhatjuk a Samba kiszolgálót külön jelszó-kiszolgáló használatához az alábbiak szerint: [global] security = server password server = PHOENIX120 HYDRA134 Figyeljük meg, hogy egynél több gépet is megadhatunk jelszó-kiszolgálóként; ha a Samba nem tudja elérni az elsőként megadott kiszolgálót, akkor a listában utána következőhöz fordul. A jelszó-kiszolgálókat a NetBIOS nevük, és nem a DNS nevük vagy az ezeknek megfelelő IP címek azonosítják. Ha a felsorolt kiszolgálók mindegyike visszautasítja a jelszót, a kapcsolatkérés automatikusan elutasításra kerül – a Samba más kiszolgálókat nem keres meg. 182 | SAMBA Egy hiányosság: hiába használjuk ezt a beállítást, a Samba kiszolgálón továbbra is kell léteznie egy, a felhasználóhoz tartozó fióknak.

Ennek az az oka, hogy a Unix operációs rendszernek szüksége van a felhasználónévre a különböző Be/Ki műveletek végrehajtásához. A probléma úgy kerülhető meg, hogy a Samba kiszolgálón ugyan létrehozunk a felhasználóhoz egy fiókot, de a fiókhoz tartozó jelszót letiltjuk azzal, hogy a rendszer jelszófájljában (/etc/passwd) a jelszót egy csillag (*) karakterrel helyettesítjük. Tartomány szintű biztonság A tartomány szintű biztonság hasonló a kiszolgálói szintű biztonsághoz. A fő különbség az, hogy tartomány szintű biztonság alkalmazásakor a Samba kiszolgáló egy Windows tartomány tagjaként szerepel. Emlékezzünk vissza az 1 fejezetre, ahol arról olvashattunk, hogy minden tartományban kell lennie legalább egy tartományvezérlőnek (ez általában egy Windows NT kiszolgáló), amely elvégzi a jelszavak hitelesítését. E tartományvezérlők mellett a munkacsoportban kell lennie még egy kinevezett jelszó-kiszolgálónak is A

tartományvezérlők a saját hitelesítő moduljukban (SAM, security authentication module) kísérik figyelemmel a felhasználókat és a jelszavaikat, és hitelesítik az egyes felhasználókat, amikor első alkalommal jelentkeznek be, és kísérlik meg a kapcsolódást egy másik gép megosztásaihoz. Amint a fejezet korábbi részében már említettük, a Samba hasonló módon képes felhasználói szintű biztonságot nyújtani, csakhogy ez a Unixra épül, és abból indul ki, hogy a hitelesítést a Unix jelszófájljai végzik el. Ha a Unix gép egy NIS vagy egy NIS+ tartomány tagja, akkor a Samba a felhasználók hitelesítését megosztott jelszófájlok számára is átláthatóvá teszi. Ekkor a Samba engedélyezi, hogy Windowsból is elérhető legyen a NIS vagy a NIS+ tartomány. Természetesen semmiféle összefüggés sincs a között, hogy miként kezeli a NIS és miként a Windows a tartományait. Tartomány szintű biztonság alkalmazása esetén lehetőségünk

van az NT saját, belső védelmi mechanizmusának használatára. Ez többféle előnnyel jár: • Lényegesen szorosabb integrációt tesz lehetővé az NT rendszerrel: a Windows legtöbb szolgáltatásához képest kevesebb trükköt kell használni az smb.conf fájlban a tartományok kezeléséhez Ennek köszönhetően nagyobb mértékben használhatók az NT olyan kezelőeszközei, mint a tartományok felhasználói kezelője (User manager for Domains), ami lehetővé teszi, hogy a felhasználók a Samba kiszolgálókat nagy NT gépekként kezelhessék. • A magasabb fokú integráltság olyan protokollokat is magával hoz, amelyek lehetővé teszik a Samba fejlesztőinek az NT megvalósítások követését. Az NT 4-es szervizcsomagja kijavítja a protokoll különböző hibáit, és az integráltságból adódóan a Samba is könnyebben alkalmazkodhat az ilyen módosításokhoz. • Kevesebb adminisztráció terheli az elsődleges tartományvezérlőt, mert eggyel kevesebb

állandó kapcsolatot kell fenntartania a Samba kiszolgálóval. A Samba a security = server beállításban megadott protokolltól eltérően csak akkor hajthat végre távoli hívást (Remote Procedure Call, RPC), ha hitelesítési információra van szüksége. Csak ebből a célból nem tarthat fenn állandó kapcsolatot. • Az NT tartományi hitelesítő mechanizmusa a felhasználó összes jellemzőit visszaküldi, nem csak azt, hogy sikeres vagy sikertelen volt-e a hozzáférési kísérlet. A visszaküldött jellemzők a Unix azonosító és az NT csoportok bővebb változatait, valamint más adatokat is tartalmaznak a következők szerint: 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 183 – felhasználónév; – teljes név; – leírás; – biztonsági azonosító (a Unix uid tartomány méretű kiterjesztése); – NT csoporttagság; – bejelentkezési órák és tájékoztatás arról, hogy azonnal ki kell-e kényszeríteni a felhasználó

kijelentkezését; – a felhasználó számára engedélyezett munkaállomások; – a fiók lejáratának dátuma; – home könyvtár; – bejelentkezési szkript; – profil; – fiók típusa. • A Samba fejlesztői tartomány szintű biztonságot használtak a Samba 2.04-es verziójában tartományi felhasználók félautomatikus felvételéhez és törléséhez Emellett ez a biztonság helyet biztosít más, olyan NT-szerű kiegészítésekhez is, mint a hozzáférésvezérlő listák és a fájlengedélyek ügyfelek általi módosításának támogatása. Ez a megközelítés azzal az előnnyel jár, hogy kevesebb az adminisztráció: mindössze egyetlen hitelesítő adatbázist kell szinkronizálni. A Samba kiszolgálónak helyileg csak annyi adminisztrációs feladatot kell elvégeznie, hogy létrehozza a felhasználók számára azokat a könyvtárakat, amelyekben majd dolgozni fognak, és elkészítse az /etc/passwd fájlban a felhasználói azonosítójukat és

csoportjaikat. Samba kiszolgáló felvétele Windows NT tartományba Ha már létrehoztunk egy NT tartományt, könnyen felvehetünk bele Samba kiszolgálót. Először is le kell állítanunk a Samba démonjait. Ezt követően a ,,Windows NT Server Manager for Domains” (Windows NT kiszolgáló tartománykezelője) eszköz segítségével fel kell vennünk a Samba kiszolgálót az elsődleges tartományvezérlőn (PDC) lévő NT tartományba. Amikor kérdést kapunk a számítógép típusára vonatkozóan, válasszuk a ,,Windows NT Workstation or Server” (Windows NT munkaállomás vagy kiszolgáló) lehetőséget, és adjuk meg a Samba kiszolgáló NetBIOS nevét. Ezzel létrehozzuk a Samba gép fiókját az NT kiszolgálón. Következő lépésként az smbpasswd parancs segítségével generáljunk a géphez egy Microsoft formátumú jelszót (az eszköz használatára rövidesen kitérünk). Ha például a tartományunknak SIMPLE a neve, és az elsődleges tartományvezérlő

szerepét betöltő Windows NT gépnek beowulf a neve, a Samba kiszolgálón az alábbi parancs kiadásával végezhetjük el a név generálását: smbpasswd -j SIMPLE -r beowulf Végül vegyük fel az smb.conf fájl [global] szakaszába akövetkező beállításokat, és indítsuk újra a Samba démonjait 184 | SAMBA [global] security = domain domain logins = yes workgroup = SIMPLE password server = beowulf Ezzel a Sambát tartomány szintű biztonsággal konfiguráltuk. A tartományi bejelentkezési beállításokról a fejezet későbbi részében lesz bővebben szó. Jelszavak A jelszavak meglehetősen komoly problémát okoznak a Sambában. A Samba telepítésekor általában ez jelenti az első jelentősebb nehézséget, és a Sambát támogató levelezőcsoportok is ezekkel kapcsolatban kapják a legtöbb kérdést A korábbi fejezetekben azzal kerültük meg ezt a problémát, hogy a konfigurációs fájlokban a guest ok beállítást használtuk, ami lehetővé

teszi a hitelesítés nélküli kapcsolódást. Most azonban elérkeztünk ahhoz a ponthoz, ahol már részletesebben foglalkoznunk kell a jelszavakkal, és meg kell vizsgálnunk, hogyan használhatók ezek a hálózatban. Az ügyfelek által küldött jelszavak titkosítottak vagy titkosítás nélküliek lehetnek. A titkosított jelszavak természetesen jóval biztonságosabbak A nem titkosított jelszó könnyen elolvasható egy hálózatfigyelő programmal, mint amilyen például a módosított tcpdump, amit a 3. fejezetben már használtunk A Samba kiszolgálóhoz csatlakozó gépen futó operációs rendszer határozza meg azt, hogy titkosított-e a jelszó A 65 táblázat felsorolja azokat a Windows operációs rendszereket, amelyek titkosítják a jelszavakat, mielőtt még hitelesítés céljából elküldenék őket az elsődleges tartományvezérlőre Ha az ügyfelünk gépén nem Windows operációs rendszer fut, akkor a rendszer dokumentációjából tudhatjuk meg, hogy

titkosítja-e az SMB jelszavakat. 6.5 táblázat Jelszótitkosító Windows operációs rendszerek Operációs rendszer Titkosított vagy nem titkosított Windows 95 Windows 95 SMB frissítéssel Windows 98 Windows NT 3.x Windows NT 4.0 a 3-as szervizcsomag előtt Windows NT 4.0 a 3-as szervizcsomag után Nem titkosított Titkosított Titkosított Nem titkosított Nem titkosított Titkosított Az operációs rendszerek kétféle titkosítási eljárást használnak: a Windows 95 és 98 rendszerek a LAN Manager hálózati szoftverből örökölt eljárással titkosítják a jelszavakat, míg a Windows NT rendszerek ennél újabb titkosító rendszerrel dolgoznak. Ha az operációs rendszer támogatja a jelszótitkosítást, akkor a Samba a titkosított jelszavakat egy smbpasswd nevű fájlban tárolja. Alapbeállítás szerint ez a fájl a Samba disztribúció private nevű könyvtárában van (/usr/local/samba/private) Ezzel egyidejűleg az ügy- 6. FEJEZET FELHASZNÁLÓK,

BIZTONSÁG ÉS TARTOMÁNYOK | 185 fél gép is tárolja a jelszó titkosított változatát. A jelszót a maga normál, titkosítatlan formájában sohasem tárolja egyik rendszer sem Mindkét rendszer automatikusan titkosítja a jelszót egy ismert algoritmus szerint a jelszó létrehozásakor vagy módosításakor. Amikor egy ügyfél olyan SMB kiszolgálóval akarja felvenni a kapcsolatot, amelyik támogatja a titkosított jelszavakat (mint például a Samba vagy a Windows NT), a két számítógép az alábbi egyeztetést végzi: 1. Az ügyfél kéri a kiszolgálótól a protokoll egyeztetését 2. A kiszolgáló jelzi a használandó protokollt, és közli, hogy támogatja a titkosított jelszavakat Ezzel egyidejűleg elküld egy véletlenszerűen generált 8 bájtos karakterláncot 3. Az ügyfél ezt a karakterláncot használja az általa korábban már titkosított jelszó titkosításához – ehhez a második titkosításhoz az egyeztetett protokollban előírt algoritmust

használja. Az eredményt visszaküldi a kiszolgálónak 4. A kiszolgáló ugyanezt a műveletet elvégzi az adatbázisában tárolt, titkosított jelszón is Ha a két művelet azonos eredménnyel zárul, akkor a két jelszó azonos, és megtörtént az ügyfél hitelesítése. Jegyezzük meg, hogy ugyan az eredeti jelszót nem használja a hitelesítő művelet, nagyon kell vigyáznunk arra, hogy az smbpasswd fájlban tárolt titkosított jelszóhoz se férhessenek hozzá illetéktelenek. Ha nem lennénk eléggé óvatosak, egy jogosulatlan felhasználó az előző algoritmust végrehajtva betörhet a rendszerünkbe. A titkosított jelszavak pontosan olyan érzékeny adatoknak számítnak, mint a titkosítatlanok. Természetesen arról is gondoskodni kell, hogy az ügyfelek is megvédjék a titkosítatlan jelszavaikat illetéktelenekkel szemben. A Sambát azzal készíthetjük fel titkosított jelszavak fogadására, hogy az smb.conf fájlba felvesszük az alábbi, globális

hatókörű kiegészítéseket. Figyeljük meg, hogy kifejezetten megadtuk a Samba jelszófájljának a helyét: [global] security = user encrypt passwords = yes smb passwd file = /usr/local/samba/private/smbpasswd Ahhoz azonban, hogy a Samba fogadni tudja a titkosított jelszavakat, még inicializálni kell az smbpasswd fájlt. Titkosított jelszavak tiltása az ügyfélnél Bár a Unix már hosszú ideje használja a hitelesítést, beleértve a telnet és az rlogin internetes hozzáféréseket is, a művelet jól ismert biztonsági kockázatokat rejt magában. A jelszavakat az eredeti alakjukban küldi el az interneten keresztül, és rosszindulatú emberek az elfogott TCP csomagokból kideríthetik ezeket. Ha viszont úgy gondoljuk, hogy biztonságos a hálózatunk, és az összes ügyfelünknél a Unix standard /etc/passwd hitelesítését akarjuk használni, akkor azon Windows ügyfeleinknél, akik alapértelmezés szerint titkosított jelszavak használnának, meg kell

tiltanunk az ilyenek használatát. Ennek érdekében egy fájl telepítésével módosítanunk kell a Windows regisztrációs adatbázisát. Az illető operációs rendszertől függően ez a fájl vagy az NT4 PlainPasswordreg, vagy a Win95 PlainPasswordreg fájl A telepítést úgy végezhetjük el, hogy a 186 | SAMBA Samba disztribúció /docs könyvtárából a megfelelő .reg fájlt átmásoljuk egy hajlékonylemezre, majd az ügyfél gépén a Start menüben a Futtatás parancsot választjuk Érdekesség, hogy a Windows 95 .reg fájlja Windows 98-as rendszerben is működik A számítógép újraindítását követően az ügyfél jelszava nem lesz titkosítva mielőtt elküldésre kerülne a kiszolgálóra. Ez azt jelenti, hogy a hálózatba szétküldött TCP csomagok a jelszót az eredeti alakjában fogják tartalmazni. Éppen ezért ez az eljárás nem javasolható, hacsak nem vagyunk abszolút meggyőződve a rendszerünk biztonságáról. A Samba konfigurációs

fájljában az alábbi módon jelezhetjük, hogy nem titkosított jelszavakkal dolgozunk: [global] security = user encrypt passwords = no Az smbpasswd fájl A Samba a titkosított jelszavakat az smbpasswd nevű fájlban tárolja, amely alapbeállítás szerint a /usr/local/samba/private könyvtárban található. Ezt a fájlt legalább annyira védenünk kell, mint a passwd fájlt; olyan könyvtárban kell tartanunk, amelyhez csak rootfelhasználónak van olvasási/írási hozzáférési joga Minden más felhasználótól még az olvasási jogot is meg kell vonni Mielőtt használhatnánk a titkosított jelszavakat, az smbpasswd fájlban minden egyes Unix felhasználóhoz el kell készítenünk egy bejegyzést. A fájl nagyjából hasonló felépítésű, mint a Unix passwd fájlja, de attól eltérőek a mezői A 63 ábra szemlélteti az smbpasswd fájl szerkezetét, a benne látható bejegyzés a fájl egyik sora. 6.3 ábra Az smbpasswd fájl szerkezete (a fájl egyik sora) Az

egyes mezők jelentése: Felhasználónév A fiókhoz tartozó felhasználó neve. Közvetlenül a rendszer jelszófájljából másolódik ide 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 187 UID A fiókhoz tartozó felhasználó azonosítója. A felhasználónévhez hasonlóan ez is közvetlenül a rendszer jelszófájljából származik, és meg kell egyeznie az ott tárolt azonosítóval LAN Manager jelszókód Ez a 32 bites hexadecimális jelsorozat képviseli a Windows 95/98 ügyfél jelszavát. A jelsorozat a KGS!@#$% karakterlánc 56 bites DES algoritmussal való titkosításával jött létre, kulcsként kétszer a felhasználó jelszavát használva (az első 14 bájt alapján, nagybetűkre alakítva). Ha a felhasználóhoz nem tartozik jelszó, akkor a kód első 11 karakterhelyén a NO PASSWORD szöveg, a többin pedig X karakterek állnak. A megosztáshoz jelszó nélkül, bárki hozzáférhet Ha viszont nem engedélyezzük jelszó használatát, akkor

az összes karakterhelyen az X karakter áll. A Samba nem engedélyezi a jelszó nélküli hozzáférést a felhasználóknak, hacsak nem tartalmazza a konfigurációs fájlja a null passwords beállítást NT jelszókód Ez a 32 bites hexadecimális jelsorozat képviseli a Windows NT ügyfél jelszavát. A jelsorozat a jelszó MD4 eljárással történő kódolásával jön létre (a jelszót 16 bites little-endian Unicode sorozat alkotja). A jelszó betűi előzőleg nem alakulnak át nagybetűsre Fiók jelzőkarakterei Ez a mező 11 karakterből áll (beleértve a kezdő és a lezáró szögletes zárójelet). A zárójelek között az alábbi karakterek bármelyike állhat tetszőleges sorrendben. A nem használt karakterek helyén szóközök állnak. U Normál felhasználói fiók. D Ezt a fiókot tiltja a Samba, és semmilyen bejelentkezést nem fogad el hozzá. N Ehhez a fiókhoz nem tartozik jelszó. W Egy munkaállomás meghatalmazott fiókja, amelyről a Samba elsődleges

tartományvezérlőként konfigurálható, ha Windows NT gépek kapcsolódhatnak a tartományához. Utolsó módosítás ideje A mező a LCT (Last Change Time) karaktereket, és az 1970. január 1-je óta a bejegyzés utolsó módosításig eltelt, másodpercekben mért időtartamot tartalmazza hexadecimális alakban Bejegyzések felvétele a smbpasswd fájlba Többféle módon is felvehetünk bejegyzéseket az smbpasswd fájlba: • Az smbpasswd programot az -a kapcsolóval futtatva automatikusan felvehetünk olyan felhasználót, akinek standard Unix rendszerfiókja van a kiszolgálón. A program a /usr/local/samba/bin könyvtárban található. • A /usr/local/samba/bin könyvtárban lévő addtosmbpass programot is futtathatjuk. Ez egyébként egy egyszerű awk szkript, amely elemzi a rendszer jelszófájlját, majd kiveszi a felhasználónevet és az azonosítót azokból a bejegyzésekből, amelyeket fel akarunk 188 | SAMBA venni az SMB jelszófájlba. Ezt követően a

felhasználói bejegyzések többi mezőjébe elhelyezi az alapbeállításokat, melyeket a későbbiekben az smbpasswd program segítségével megváltoztathatunk. Ahhoz, hogy használni tudjuk ezt a programot, esetleg szerkesztenünk kell a fájl első sorát, hogy létrejöjjön a rendszerünkben az awk szkriptre mutató hivatkozás. • Abban az esetben, ha a fenti eljárások egyike sem lenne használható, kézzel is elkészíthetünk egy alapértelmezés szerinti bejegyzést az smbpasswd fájlban. A bejegyzés például az alábbihoz hasonló lehet (a mezőket kettősponttal kell egymástól elválasztani): dave:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX:[U]:LCT-00000000: A bejegyzés a felhasználónevet és az azonosítót tartalmazza a rendszer jelszófájljának megfelelően, ami után két, egyenként pontosan 32 X karakterből álló mező következik. Az utána következő két mező a fiók jelzőkaraktereit, illetve az utolsó módosítás

idejét tartalmazza. Miután elkészítettük ezt a bejegyzést, az smbpasswd program futtatásával meg kell változtatnunk ennek a felhasználónak a jelszavát Titkosított jelszó módosítása Ugyancsak az smbpasswd programot kell futtatnunk akkor is, ha módosítanunk kell egy titkosított jelszót. Figyeljünk arra, hogy ennek a programnak ugyanaz a neve, mint a titkosított jelszófájlé, ezért legyünk óvatosak, és ne keverjük össze a jelszófájlt a jelszómódosító programmal. Az smbpasswd program majdnem azonos azzal a passwd nevű programmal, amelyet Unix jelszavak módosításához használhatunk. A program egyszerűen bekéri a régi jelszót (hacsak nem rootfelhasználók vagyunk), és létrehozza az eredeti bejegyzés másolatát az új jelszóval. A képernyőn egyik jelszó sem jelenik meg # smbpasswd dave Old SMB password: New SMB password: Retype new SMB password: Password changed for user dave Miután lefutott a program, ellenőrizhetjük az smbpasswd

fájlban, hogy a jelszó LAN Manager és NT kódja a megfelelő helyre került. Azt követően, hogy a felhasználók titkosított jelszava ilyen módon bekerült az adatbázisba, a felhasználók a titkosított jelszavukat használhatják a megosztások eléréséhez. A jelszó szinkronizálása A jelszavak módosításakor problémát jelenthet, ha ugyanannak a jelszónak a normál és a titkosított alakja is létezik. Szerencsére a Samba ad némileg korlátozott segítséget a jelszavak szinkronizálásához Két olyan beállítási lehetőséget nyújt, amelyek segítségével automatikusan frissíthetjük a normál unixos jelszót, ha módosul a rendszerben a titkosított jelszó. Ezt a képességét a globális hatókörű unix password sync beállítással vehetjük igénybe: 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 189 [global] encrypt passwords = yes smb passwd file = /usr/local/samba/private/smbpasswd unix password sync = yes Ha a yes értéket

rendeljük ehhez a beállításhoz, akkor a Samba (rootként) megváltoztatja a felhasználó normál jelszavát, amikor az smbpasswd programmal módosítjuk a titkosított jelszavát. Ahhoz azonban, hogy ez sikerüljön, még két másik feladatot is el kell végeznünk A könnyebbet a passwd program segítségével oldhatjuk meg. Ez a program azt a Unix parancsot adja meg, amelyet a felhasználó normál rendszerjelszavának módosításához használunk. Alapbeállítás szerint ez a /bin/passwd %u parancs Egyes Unix rendszerekben ez megfelelő, és semmit sem kell változtatni rajta Más esetben, például a Red Hat Linux rendszerben ehelyett a /usr/bin/passwd parancsot kell használni. Az is lehetséges, hogy a jövőben másik programot vagy szkriptet kell futtatni a feladat elvégzéséhez Példaként tegyük fel, hogy egy changepass nevű szkriptet akarunk futtatni egy felhasználó jelszavának módosításához. Emlékezzünk arra, hogy az aktuális Unix felhasználó neve

helyett a %u változót használhatjuk. Ekkor így alakul a példánk: [global] encrypt passwords = yes smb passwd file = /usr/local/samba/private/smbpasswd unix password sync = yes passwd program = changepass %u Figyeljük meg, hogy a programot rootfelhasználóként kell meghívni, ha a unix password sync beállításhoz a yes érték tartozik. Erre azért van szükség, mert a Samba nem feltétlenül ismeri a felhasználó régi, titkosítatlan jelszavát. A nehezebb feladat a passwd chat beállítás konfigurálása. A passwd chat beállítás hasonlóan működik, mint egy Unix chat (beszélgetős) szkript. Kiküld egy sor karakterláncot, valamint kiküldi azokat a válaszokat is, amelyeket a passwd program beállításban megadott programtól vár. Az alábbi részlet a passwd chat beállítás alapértelmezés szerinti alakjára mutat példát Az egyes karaktercsoportokat szóközök választják el egymástól: passwd chat = *oldpassword %o newpassword %n newpassword %n

*changed Az első karaktercsoport a jelszómódosító programtól várt választ jelenti. Figyeljük meg, hogy helyettesítő karaktereket (*) tartalmaz, hogy segítse a programot a hasonló kifejezések megtalálásában is. Itt a *oldpassword sorozat azt jelzi, hogy a Samba minden olyan sort elfogad a jelszóprogramtól, amelyben előfordul az old és a password szó, bármi álljon is a két szó előtt, között és után. Ha nem érkezik válasz, sikertelen lesz a jelszómódosító művelet A második karaktercsoport azt jelzi, amit a Samba kiküld abban az esetben, ha az első csoportnak sikerült egyezőséget találnia. A példánkban a második csoport a %o karak- 190 | SAMBA tersorozat. Ez tulajdonképpen két választ jelent: a %o a régi jelszót képviseli, míg a az újsor karakter. Lényegében az történik, hogy a karaktercsoport ,,begépeli” a régi jelszót a jelszómódosító program bemenetére, majd ,,lenyomja” az Enter billentyűt. A második

karaktercsoportot ismét egy válaszcsoport követi, ami után a jelszómódosító programnak visszaküldendő adatok következnek. (Az ilyen válasz/küldés mintát követő sorozatok végtelen sorban követhetik egymást bármelyik normál Unix beszélgetős szkriptben.) A szkript futása mindaddig tart, amíg megtörténik az utolsó minta egyeztetése* A jelszóprogram által küldött válasz karakterláncok egyeztetését a 6.6 táblázatban felsorolt karakterek használatával segíthetjük A 67 táblázatban felsorolt karaktereket a válasz kialakításához használhatjuk. 6.6 táblázat Az egyeztetést segítő karakterek Karakter Jelentés * " " Bármely karakter egyszeri vagy többszöri előfordulása. Lehetővé teszi olyan karakterláncok egyeztetését is, amelyekben szóközök vannak. A csillagok akkor is helyettesítő karaktert jelentenek, ha idézőjelek között vannak, és két, egymást követő idézőjellel üres választ jelezhetünk. 6.7

táblázat A válaszban használható karakterek Karakter Jelentés %o %n s A felhasználó régi jelszava A felhasználó új jelszava Soremelés karakter Kocsivissza karakter Tabulátor karakter Szóköz A passwd chat beállítást például az alábbiak szerint módosíthatjuk. Ez olyan esetekben használható, amikor nem kell beírnunk a régi jelszót. Emellett a Red Hat Linux által kiküldött all tokens updated successfully üzenetet is kezeli passwd chat = *new password %n new password %n success Megismételjük, hogy az alapértelmezés szerinti chat szkript a legtöbb Unix rendszerben jól működik. Ha nem így lenne, akkor a passwd chat debug beállítás segítségével új chat szkriptet készíthetünk a jelszómódosító programhoz. A passwd chat debug beállítás a jelszómódosítás során bekövetkező minden eseményt naplóz. A beállítás a Boolean értékek valamelyikét veheti fel: * Ez nem igaz a Red Hat Linux rendszerre, mert abban a

jelszóprogram a ,,Password changed” helyett az ,,All authentication tokens updated successfully” üzenetet küldi. A fejezet későbbi részében kitérünk ennek a hibának a kijavítására. 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 191 [global] encrypted passwords = yes smb passwd file = /usr/local/samba/private/smbpasswd unix password sync = yes passwd chat debug = yes log level = 100 Miután engedélyeztük a passwd chat debug beállítást, a Samba által a beszélgetős szkripten keresztül vett Be/Ki műveletek 100-as hibakeresési szinttel bekerülnek a Samba naplófájljaiba. Mivel ez a szint gyakran nagyon sok naplófájlt készít, hatékonyabb lehet, ha saját szkriptet használunk, és a passwd program beállításban a /bin/passwd helyett ezt adjuk meg a módosítások során bekövetkezett események rögzítéséhez. A naplófájlokat is szigorú engedélyekkel védjük meg, és mihelyt megkaptuk a szükséges információkat, azonnal

töröljük őket – ugyanis ezek a normál alakjukban tartalmazhatják a jelszavakat. A Sambát futtató operációs rendszerek szigorú követelményeket támaszthatnak az érvényes jelszavakkal szemben, hogy érzéketlenebbek legyenek a szótári és ehhez hasonló támadásokkal szemben. A felhasználóknak is tisztában kell lenniük az ilyen korlátozásokkal, amikor módosítják a jelszavukat A korábbiakban említettük, hogy a Samba korlátozott mértékben segíti a jelszavak szinkronizálását. Ennek az az oka, hogy nem létezik a titkosított smbpasswd fájl fordított szinkronizálása arra az esetre, amikor egy felhasználó frissíti a normál unixos jelszavát. Bár ismertek különböző stratégiák ennek megkerülésére, így például a NIS és más ingyen hozzáférhető, beépíthető hitelesítő modulok (PAM), de a problémát igazából egyikük sem oldja meg. A Windows 2000 megjelenésével várhatóan nagyobb lesz az összhang a LDAP (Lightweight

Directory Access Protocol) protokollal, ami remélhetőleg fölöslegessé teszi a jelszavak szinkronizálását. A jelszó beállítási lehetőségei A 6.8 táblázatban felsorolt beállítási lehetőségek abban segíthetnek, hogy miként dolgozzunk a jelszavakkal a Sambában 6.8 táblázat A jelszó beállítási lehetőségei Beállítás Paraméterek encrypt Boolean érték passwords unix Boolean érték password sync passwd chat Karakterlánc (chat parancsok) Funkció Alapértelmezett érték Hatókör Bekapcsolja a titkosított jelszavakat. Ha yes az értéke, a Samba frissíti a standard Unix jelszóadatbázist, amikor egy felhasználó módosítja a titkosított jelszavát. Megadja azon parancsok sorozatát, amelyeket ki kell küldeni a jelszóprogramnak. no Globális no Globális Lásd a beállítással kapcsolatos korábbi részeket. Globális 192 | SAMBA 6.8 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték

Hatókör passwd chat debug Boolean érték no Globális passwd program Karakterlánc (Unix program) Numerikus Jelszómódosítással kapcsolatos bejegyzéseket készít a naplófájlokba 100-as hibakeresési szinttel. Megadja a jelszómódosításhoz használandó programot. Megadja azon nagybetűk számát, amelyeken permutációt kell végezni egy ügyfél jelszavának egyeztetéséhez. Ha yes az értéke, a Samba frissíti a titkosított jelszófájlját, amikor egy felhasználó a normál jelszavát használva akar hozzáférni egy megosztáshoz. Ha yes az értéke, a Samba engedélyezi a null jelszavú felhasználóknak a hozzáférést. Megadja a titkosított jelszófájl nevét. password level update Boolean érték encrypted null Boolean érték passwords smb passwd file hosts equiv Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) use rhosts Karakterlánc (teljes elérési út) Megadja annak a fájlnak a nevét, amely a jelszó

használata nélkül kapcsolódható gazdákat és felhasználókat tartalmazza. Megadja annak az .rhosts fájlnak a nevét, amely lehetővé teszi a felhasználóknak a jelszó nélküli kapcsolódást. /bin/passwd %u Globális Nincs Globális no Globális no Globális /usr/local/ Globális samba/private/ smbpasswd Nincs Globális Nincs Globális unix password sync A globális hatókörű unix password sync beállítás lehetővé teszi, hogy a Samba frissítse a standard Unix jelszófájlját, amikor egy felhasználó módosítja a titkosított jelszavát. A Samba kiszolgáló a titkosított jelszót az smbpasswd fájlban tárolja, amely alapbeállítás szerint a /usr/local/samba/private könyvtárban van. A Sambának ezt a képességét a beállítás bekapcsolásával aktivizálhatjuk: [global] unix password sync = yes 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 193 Ha engedélyezzük ezt a beállítást, akkor a Samba amellett, hogy módosítja a

titkosított jelszót, a standard unixos jelszó módosítását is megkísérli. Ezt úgy teszi meg, hogy a passwd program beállításban (lásd korábban) megadott programnak átadja a felhasználónevet és az új jelszót. Ne feledjük, hogy a Samba nem fér hozzá feltétlenül a felhasználó normál (titkosítás nélküli) jelszavához, ezért rootként kell meghívnia a jelszómódosító programot* Ha bármilyen oknál fogva meghiúsul a unixos jelszó módosítása, az SMB jelszó sem módosul. encrypt passwords A globális hatókörű encrypt passwords beállítás segítségével a Sambát a normál jelszó alapján történő hitelesítésről a titkosított jelszó alapján történő hitelesítésre kapcsolhatjuk át. Ha a beállításhoz a yes értéket rendeljük, akkor a Samba titkosított jelszót vár az ügyfeleitől encrypt passwords = yes Alapbeállítás szerint a Windows NT 4.0 a 3-as szervizcsomaggal és e fölött, valamint a Windows 98 titkosított

jelszavakat küld ki a hálózatra. Ha engedélyezzük a titkosított jelszavakat, léteznie kell egy érvényes smbpasswd fájlnak, amelynek tartalmaznia kell a titkosított jelszavak hitelesítéséhez használt felhasználóneveket (lásd a fejezet ,,Az smbpasswd fájl” című részét). Emellett a Sambának ismernie kell az smbpasswd fájl helyét is, ha az nem az alapértelmezés szerinti helyén van (ez tipikusan a /usr/local/samba/private/ smbpasswd). A fájl helyét az smb passwd file beállítással adhatjuk meg Ha akarjuk, az update encrypted beállítás segítségével ki is kényszeríthetjük, hogy a Samba mindannyiszor frissítse a titkosított jelszavakkal az smbpasswd fájlt, amikor egy ügyfél nem titkosított jelszóval akar kapcsolódni. Ha biztosítani akarjuk, hogy azok a gazdák, akiknek titkosított jelszóhitelesítésre van szükségük, valóban így is legyenek hitelesítve, akkor vegyünk fel egy include beállítást. Ezzel a beállítással egyedi

konfigurációs fájlokat készíthetünk, amelyek aszerint kerülnek beolvasásra, hogy a kapcsolódó fél számítógépe milyen operációs rendszert használ (%a), vagy mi a gép neve (%m). Az ilyen rendszer- vagy gazdaspecifikus konfigurációs fájlokba bevehetjük az encrypted passwords = yes beállítást, ami csak akkor lép érvénybe, ha ilyen ügyfelek kapcsolódnak a kiszolgálóhoz. passwd program A passwd program beállítás segítségével a Unix alatt futó Samba kiszolgálón azt a programot adhatjuk meg, amelyet a Samba a rendszer standard jelszófájljának frissítéséhez használhat, amikor frissítődik a titkosított jelszófájl. A beállításhoz alapértelmezés szerint a standard passwd program tartozik, ami általában a /bin könyvtárban található. A beállításban tipikusan a %u képviseli a felhasználót a parancs végrehajtásakor A program bemenetét és kimenetét a program végrehajtása során a passwd chat beállításban megadott szkript

kezeli. Ezzel a beállítással bővebben a fejezet ,,A jelszó szinkronizálása” részében foglalkoztunk. * Ennek az az oka, hogy a Unix passwd programja, amely általában ennek a műveletnek a célpontja, megszorítások nélkül engedélyezi a root hozzáférést a felhasználó jelszavának módosításához. 194 | SAMBA passwd chat Ehhez a beállításhoz a Unix chat (beszélgetős) szkriptjeihez hasonlóan küldött és visszaküldött karakterláncok sorozatát adhatjuk meg, amelyet a Samba kiszolgálón futó jelszómódosító program használhat. Ezzel a beállítással is a fejezet ,,A jelszó szinkronizálása” részében foglalkoztunk bővebben. passwd chat debug Ha ehhez a beállításhoz a yes értéket rendeljük, akkor a globális hatókörű passwd chat debug beállítás naplózza azokat az üzeneteket, amelyeket a Samba a jelszóról folytatott párbeszéd során küldött vagy kapott. A beérkező és kimenő üzenetek 100-as hibakeresési szinttel a

Samba naplófájljaiba kerülnek. Meg kell adnunk a log level = 100 beállítást, ha azt akarjuk, hogy rögzítésre kerüljenek az információk. A fejezet korábbi, ,,A jelszó szinkronizálása” részében bővebben foglalkoztunk ezzel a beállítással Ha használjuk ezt a beállítást, akkor legyünk tisztában azzal, hogy a hibakereső naplófájlokban megjelenhetnek a jelszavak a normál, titkosítatlan alakjukban, és ez potenciális veszélyt jelent, ha nem védjük meg a naplófájlokat. password level Az SMB rendszerek a nem titkosított (vagyis az eredeti alakjuk szerinti) jelszavakat – akárcsak a felhasználóneveket – nagybetűsre alakítva küldik el. Számos unixos felhasználó viszont vegyesen használja a kis- és nagybetűket a jelszavában. A Samba alapbeállítás szerint teljes egészükben kisbetűk szerint végzi el a jelszavak egyeztetését, és nem változtatja nagybetűsre a jelszó első karakterét. A username level beállításhoz hasonlóan van

egy password level beállítás is, amit arra használhatunk, hogy nagybetűkkel különböző permutációkat végezzünk a jelszavakon. A beállításhoz egész érték rendelhető, amely előírja, hogy a jelszóban hány betűt kell nagybetűsre alakítani, amikor a jelszó tulajdonosa kapcsolódni próbál egy megosztáshoz. A beállítást a következő módon használhatjuk: [global] password level = 3 Ebben az esetben a Samba három nagybetűs karakterrel végzi el az összes lehetséges permutációt. Minél nagyobb ez a szám, annál több számítást kell végeznie a Sambának a jelszó egyezőségére vonatkozóan, és annál tovább tart egy adott megosztáshoz való kapcsolódás engedélyezése update encrypted A Samba ezzel a beállítással segíti az átmenetet azokon a helyeken, ahol az ügyfelek át akarnak térni a titkosított jelszó használatára. Az update encrypted beállítás megkönynyíti a normál jelszó titkosított jelszóvá történő

átalakítását A beállítást az alábbi módon kapcsolhatjuk be: [global] update encrypted = yes 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 195 Ez a beállítás arra utasítja a Sambát, hogy az smbpassw fájlban hozza létre mindegyik felhasználó unixos jelszavának titkosított alakját, amikor az illető kapcsolódik egy megosztáshoz. Ha engedélyezzük a beállítást, akkor az encrypt passwords beállításhoz a no értéket kell rendelnünk, hogy a felhasználók a normál alakú jelszavukat küldjék a Sambára a fájlok frissítése érdekében. Miután már mindegyik felhasználó legalább egyszer kapcsolódott a kiszolgálóhoz, ismét a yes értéket rendelhetjük az encrypt passwords beállításhoz, hogy a későbbiekben már csak a titkosított jelszavakat engedélyezzük Ekkorra már létrejöttek a felhasználók érvényes bejegyzései az smbpasswd fájlban. null passwords Ez a globális hatókörű beállítás arról tájékoztatja a

Sambát, hogy engedélyezett-e a hozzáférés azon felhasználók számára, akiknek null jelszavú (titkos vagy titkosítatlan) a fiókjuk. A beállításhoz alapértelmezés szerint a no érték tartozik, amit azonban a következő szerint felülírhatunk: null passwords = yes Ennek a beállításnak a használata csak azok számára ajánlott, akik tisztában vannak a vele együtt járó biztonsági kockázatokkal; beleértve a rendszer jelszófájljában lévő azon rendszerhasználók véletlen elérését is, akiknek null a jelszavuk. smb passwd file Ezzel a globális hatókörű beállítással a titkosított jelszavakat tartalmazó adatbázis helye adható meg. Alapbeállítás szerint ez a /usr/local/samba/private/smbpasswd, de meg is változtatható: [global] smb passwd file = /etc/smbpasswd Különböző változatok, például a Red Hat számos disztribúciója is ezt a helyet használja. hosts equiv Ez az ugyancsak globális hatókörű beállítás annak a standard Unix

hosts.equiv fájlnak a nevét adja meg, amely azon gazdák és felhasználók nevét tartalmazza, akik jelszó megadása nélkül férhetnek hozzá a megosztásokhoz. A fájl helyét a következő módon adhatjuk meg: [global] hosts equiv = /etc/hosts.equiv Alapértelmezés szerint a beállításhoz semmilyen fájlnév sem tartozik. Mivel egy ilyen fájl használata óriási kockázatot jelent, semmiképpen sem javasolható a beállítás felvétele, hacsak nem tartjuk teljesen biztonságosnak a hálózatunkat. use rhosts Ez a globális hatókörű beállítás annak a standard unixos felhasználói .rhost fájlnak a nevét adja meg, amely a megosztásokhoz jelszó megadása nélkül hozzáférhető idegen gazdákat tartalmazza. A fájl helyét a következő módon adhatjuk meg: 196 | SAMBA [global] use rhosts = /home/dave/.rhosts Alapértelmezés szerint a beállításhoz semmilyen fájlnév sem tartozik. Akárcsak az előbb említett hosts equiv, az .rhost fájl is

biztonsági kockázatot jelent, ezért ezt a beállítást is csak akkor használjuk, ha tökéletesen megbízunk a hálózatunkban. Windows tartományok Most, hogy már megismerkedtünk a Samba kiszolgálóhoz kapcsolódó felhasználókkal és a kiszolgálón használható jelszavakkal, tekintsük át, miként konfigurálhatjuk úgy a kiszolgálót, hogy elsődleges tartományvezérlő (PDC) lehessen Windows 95/98 és Windows NT gépek számára. Miért van szükség egyáltalán tartományokra? Ahhoz, hogy erre egyértelmű választ adhassunk – főként a Windows 95/98 esetében –, be kell pillantanunk a kuliszszák mögé Emlékezzünk arra, hogy egy hagyományos munkacsoportban a Windows 95/98 egyszerűen elfogadja a rendszerbe bejelentkezők nevét és jelszavát. A Windows 95/98 rendszerben egyszerűen nem léteznek jogosulatlan felhasználók: ha bejelentkezik egy új felhasználó, az operációs rendszer megkérdezi a jelszavát, és ettől kezdve ezzel a jelszóval

tartja nyilván. A Windows 95/98 csak akkor igényli a jelszó használatát, ha a felhasználó másik megosztáshoz akar kapcsolódni. Ezzel szemben a tartományi bejelentkezések a Unix rendszerekben szokásos bejelentkezésekhez hasonlóak. Ahhoz, hogy valaki bejelentkezhessen egy tartományba, eleve rendelkeznie kell érvényes felhasználónévvel és jelszóval, amit a rendszer az elsődleges tartományvezérlőn tárolt jelszóadatbázis alapján hitelesít. Ha a jelszó érvénytelen, a rendszer tájékoztatja erről a felhasználót, és nem engedi belépni a tartományba Ha viszont érvényes a jelszó, a felhasználó beléphet a tartományba, és azon belül bármely olyan megosztáshoz hozzáférhet, amihez joga van anélkül, hogy újra hitelesíttetnie kellene magát. Pontosabban fogalmazva az elsődleges tartományvezérlő visszaküld a sikeres bejelentkezőnek egy tokent, amellyel bármely megosztást elérheti anélkül, hogy engedélyt kellene kérnie az

elsődleges tartományvezérlőtől. Lehet ugyan, hogy ez első hallásra nem tűnik fontosnak, mégis komoly jelentősége van a hálózati forgalom csökkentésében. (A revalidate beállítás segítségével kikapcsolható ez a képesség) A Samba konfigurálása Windows rendszerű tartományi bejelentkezéshez Ha engedélyezni szeretnénk, hogy a Samba tartományvezérlő legyen, akkor a fejezet most következő részeiben leírtak szerint konfiguráljuk a Sambát és az ügyfeleit. Tartományok létrehozásával kapcsolatos további tudnivalók a Samba disztribúció részét képező DOMAINS.TXT fájlban találhatók 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 197 Windows 95/98 ügyfelek Meglehetősen egyszerűen konfigurálhatjuk a Sambát elsődleges tartományvezérlőként Windows 95/98 ügyfelek számára. A kiszolgálón csak a következőket kell biztosítani: • Az aktuális munkacsoportban csak a Samba legyen az elsődleges tartományvezérlő.

• Legyen a hálózatban egy WINS kiszolgáló, ami akár egy Samba, akár egy Windows NT kiszolgáló is lehet (a WINS kiszolgálóval kapcsolatban a ,,Nyomtatás és névfeloldás” című 7. fejezetben olvasható további információ) • A Samba felhasználói szintű biztonságot használjon (vagyis ne bízza senki másra a jelszóhitelesítést). Nincs szükség tartomány szintű biztonságra, ha maga a Samba az elsődleges tartományvezérlő. Ezt követően vegyük fel az alábbi beállításokat a Samba konfigurációs fájljába: [global] workgroup = SIMPLE domain logons = yes # Legyen felhasználói szintű a biztonság! security = user # A Samba legyen az elsődleges tartományvezérlő! os level = 34 local master = yes preferred master = yes domain master = yes A domain logons beállítás engedélyezi, hogy a Samba tartományi hitelesítést végezzen el a bejelentkező ügyfeleken. A tartománynak ugyanaz lesz a neve, mint amit a Samba konfigurációs fájljában a

munkacsoport nevének választottunk, vagyis az esetünkben a SIMPLE Ezt követően létre kell hoznunk egy nem írható, nem közzétehető és nem tallózható megosztást, aminek a [netlogon] nevet adjuk (mindaddig, amíg minden Windows ügyfél hozzáférhet ehhez a megosztáshoz, nincs jelentősége, hogy hová mutat a megosztás): [netlogon] comment = The domain logon service path = /export/samba/logon public = no writeable = no browsable = no Windows NT ügyfelek Ha Windows NT ügyfelek is kapcsolódnak a hálózathoz, akkor valamivel több lépést kell megtennünk ahhoz, hogy a Samba elsődleges tartományvezérlőként jelenhessen meg számukra. 198 | SAMBA Csak a Samba 2.1-es és későbbi verziói teszik lehetővé, hogy a Samba teljes mértékben elsődleges tartományvezérlőként működhessen Windows NT ügyfelekkel szemben. A korábbi verziókban csak korlátozott módon lehetett hitelesíteni a Windows NT ügyfeleket. A könyv nyomdába adásának idején a

Samba 2.05 volt a legfrissebb verzió, de már a 21-est is le lehetett tölteni a CVS segítségével. A Samba alfa verzióinak letöltéséről az E függelékben olvashatók további tudnivalók. Mint korábban, most is biztosítanunk kell, hogy az aktuális munkacsoportban a Samba legyen az elsődleges tartományvezérlő, és hogy felhasználói szintű legyen a biztonság. Most azonban arról is gondoskodnunk kell. hogy a Samba titkosított jelszavakat kezeljen Ezért a korábbi példa [global] beállításai közé vegyük fel az encrypted passwords = yes beállítást az alábbiak szerint: [global] workgroup = SIMPLE encrypted passwords = yes domain logons = yes security = user Megbízható fiókok létrehozása NT ügyfelek számára Ezt a lépést kizárólag Windows NT ügyfelek esetében kell elvégezni. A megbízható fiókokat (trust accounts) az elsődleges tartományvezérlőhöz kapcsolódó NT ügyfelek használják. Az ilyen fiók lehetővé teszi, hogy egy gép

magára az elsődleges tartományvezérlőre, és ne valamelyik megosztására jelentkezzen be. Ebben az esetben a tartományvezérlő megbízhatónak tekinti az illető ügyfél felhasználóival létesítendő kapcsolatokat Mindent egybevéve azonban a megbízható fiók lényegében azonos egy felhasználói fiókkal. A példáinkban mi is standard unixos felhasználói fiókokkal utánozzuk a Samba kiszolgáló megbízható fiókjait. A megbízható fiókhoz tartozó számítógép bejelentkezési neve magának a számítógépnek a neve, a végén egy $ jellel kiegészítve. Ha például a Windows NT gépünknek chimaera a neve, akkor a bejelentkezési fióknév chimaera$. A fiókhoz kezdetben tartozó jelszó a számítógép neve kisbetűs alakban A megbízható fiók elkészítéséhez a Samba kiszolgálón létre kell hoznunk egy unixos fiókot a számítógép nevével, valamint az smbpasswd fájlba fel kell venni a titkosított jelszó bejegyzését. Lássuk a feladat első

részét. Itt csak a /etc/passwd fájlt kell úgy módosítanunk, hogy támogassa a megbízható fiókot; nincs szükség home könyvtárra, és héjprogramot sem kell rendelnünk a ,,felhasználóhoz”, mert csak az érdekes, hogy engedélyezett-e a bejelentkezés. Ezért egy ,,ál” fiókot hozunk létre az alábbi bejegyzéssel: chimaera$:*:1000:900:Trust Account:/dev/null:/dev/null Figyeljük meg, hogy a csillag (*) karakter beírásával letiltottuk a jelszó használatát. Azt akarjuk ugyanis, hogy a Samba az smbpasswd fájlban tárolt jelszót használja, és nem szeret- 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 199 nénk, hogy valaki telnet eléréssel használja a fiókot. A fiók neve mellett ezért csak a fiók UID azonosítóját adjuk meg (1000) a titkosított jelszóadatbázis számára. Ehhez a számhoz az NT kiszolgálón egy egyedi erőforrás-azonosítót kell megfeleltetni, ami semmilyen más erőforrás-azonosítóval nem kerülhet

összeütközésbe. Ezért egyetlen más NT felhasználó vagy csoport sem feleltethető meg ennek a számnak – ellenkező esetben hibaüzenetet küld a hálózat. Következő lépésként az smbpasswd parancs kiadásával vegyük fel a titkosított jelszót: # smbpasswd -a -m chimaera Added user chimaera$ Password changed for user chimaera$ Az -m kapcsoló azt a gépet adja meg, amelyikhez a megbízható fiókot létrehozzuk. Az smbpasswd program automatikus létrehozza az induló titkosított jelszót a gép NetBIOS nevének kisbetűs alakja alapján – nekünk nem kell beírnunk a nevet. A parancssorba beírt név után ne írjuk be a $ jelet – ezt a program elvégzi helyettünk. Miután ilyen módon felvettük a titkosított jelszót, a Samba kész fogadni az illető NT gép tartományi bejelentkezéseit. Windows ügyfelek konfigurálása tartomány bejelentkezéshez Miután a Sambán elvégeztük a tartományi bejelentkezésekhez szükséges konfigurációs lépéseket, a

Windows ügyfeleket is úgy kell konfigurálnunk, hogy induláskor bejelentkezhessenek a tartományba. Windows 95/98 Windows 95/98-ban ezt úgy tehetjük meg, hogy a Vezérlőpulton megnyitjuk a Hálózat párbeszédablakot, kijelöljük benne a ,,Microsoft Network ügyfél” tételt, és a Tulajdonságok gombra kattintunk. Ekkor a 64 ábrán láthatóhoz hasonló párbeszédablaknak kell megnyílnia. Jelöljük be az ablak felső részén lévő ,,Belépés a Windows NT tartományba” feliratú négyzetet, és a Windows NT tartomány neveként írjuk be a Samba konfigurációs fájljában megadott csoportnevet. Kattintsunk az OK gombra, és indítsuk újra a számítógépet, ha felszólítást kapunk erre Ha a Windows azt közölné, hogy már bejelentkeztünk egy tartományba, akkor valószínűleg van egy élő kapcsolatunk a munkacsoport valamelyik megosztásával (például a leképzett hálózati meghajtóval). Ebben az esetben egyszerűen szakítsuk meg átmenetileg a

kapcsolatot úgy, hogy az egér jobb oldali gombjával az ikonjára kattintunk, és a megnyíló helyi menüben a Szétkapcsolás parancsot választjuk. Miután betöltődött a Windows, a szokásos bejelentkezési párbeszédablak jelenik meg, kiegészülve a tartományra vonatkozó mezővel. A mezőnek már tartalmaznia kell a tartomány nevét, ezért csak annyi a teendőnk, hogy beírjuk a jelszavunkat, és az OK gombra 200 | SAMBA 6.4 ábra Windows 95/98 ügyfél konfigurálása tartományi bejelentkezéshez 6.5 ábra Windows NT ügyfél konfigurálása tartományi bejelentkezéshez 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 201 kattintunk. Ekkor a Windows felveszi a kapcsolatot az elsődleges tartományvezérlővel (ami a Samba), és megtörténik a jelszó vizsgálata. (A naplófájlokban utánanézhetünk ennek a műveletnek.) Ha túljutottunk az ellenőrzésen, gratulálhatunk magunknak Úgy konfiguráltuk a Sambát, hogy elsődleges

tartományvezérlőként szerepeljen a hálózatban Windows 95/98 gépekkel szemben, és az ügyfél is sikeresen kapcsolódott hozzá. Windows NT 4.0 Windows NT gép tartományi bejelentkezésének konfigurálásához nyissuk meg a Vezérlőpulton a Hálózat párbeszédablakát. Az elsőként megjelenő párbeszédlap a számítógép azonosítóit tartalmazza. A Change (Módosítás) gombra kattintva nyissuk meg a 6.5 ábrán látható párbeszédablakot Az ablak ,,Member of” (Tagság) csoportjában jelöljük be a Domain (Tartomány) választógombot, majd írjuk be annak a tartománynak a nevét, amelybe ügyfélként be akarunk jelentkezni. Ez ugyanaz a név legyen, mint amit a Samba konfigurációs fájljában a munkacsoport neveként használtunk. Ne jelöljük be a ,,Create a Computer Account in the Domain” négyzetet – a Samba jelenleg nem támogatja ezt a képességet. A Windows 95/98-hoz hasonlóan az NT is közölheti, hogy már bejelentkeztünk egy tartományba.

Ekkor valószínűleg van egy élő kapcsolatunk a munkacsoport valamelyik megosztásával (például a leképzett hálózati meghajtóval) Ebben az esetben egyszerűen szakítsuk meg átmenetileg a kapcsolatot úgy, hogy az egér jobb oldali gombjával az ikonjára kattintunk, és a megnyíló helyi menüben a Szétkapcsolás parancsot választjuk. Miután az OK gombra kattintottunk, a Windows egy párbeszédablakot jelenít meg, amelyben a tartomány üdvözletét olvashatjuk. Ekkor újra kell indítanunk a Windows NT számítógépet Miután betöltődött az operációs rendszer, a Windows 95/98 ügyfelekéhez hasonló bejelentkezési párbeszédablak nyílik meg Bármely olyan fiókra bejelentkezhetünk, amelyet úgy konfiguráltunk a Samba kiszolgálón, hogy fogadja a bejelentkezéseket Győződjünk meg arról, hogy a Windows NT bejelentkezési párbeszédablakában a megfelelő tartományt választottuk. Miután kiválasztottuk a tartományt, eltarthat egy ideig, amíg a

Windows NT elkészíti a rendelkezésre álló tartományok listáját. Miután beírtuk a jelszavunkat, a Windows NT felveszi a kapcsolatot az elsődleges tartományvezérlővel (ami a Samba), és megtörténik a jelszó vizsgálata. (A naplófájlokban most is utánanézhetünk ennek a műveletnek.) Ha túljutottunk az ellenőrzésen, gratulálhatunk magunknak. Úgy konfiguráltuk a Sambát, hogy elsődleges tartományvezérlőként szerepeljen a hálózatban Windows NT gépekkel szemben, és az ügyfél is sikeresen kapcsolódott hozzá 202 | SAMBA Tartományi beállítások A 6.9 táblázat a tartományi bejelentkezésekkel kapcsolatos leggyakrabban használt beállításokat sorolja fel 6.9 táblázat Windows 95/98 tartományi bejelentkezési beállítások Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör domain logons Boolean érték Azt jelzi, hogy Windows tartományi bejelentkezéseket kell-e használni. A Unixot Windows NT

tartománycsoportokra leképző fájl neve. A Unixot Windows NT tartományi felhasználókra leképző fájl neve. A Unixot Windows NT helyi csoportokra leképző fájl neve. Ha yes az értéke, a Samba megköveteli, hogy a felhasználók minden megosztáshoz való kapcsolódáskor hitelesíttessék magukat. no Globális Nincs Globális Nincs Globális Nincs Globális no Megosztás domain Karakterlánc group map (teljes elérési út) domain Karakterlánc user map (teljes elérési út) local Karakterlánc group map (teljes elérési út) revaliBoolean érték date domain logons Ez a beállítás úgy konfigurálja a Sambát, hogy elsődleges tartományvezérlőként fogadhasson tartományi bejelentkezéseket. Miután az ügyfél sikeresen bejelentkezett egy tartományba, a Samba egy különleges ,,zsetont” küld vissza, amelynek birtokában az ügyfél hozzáférhet a tartományi megosztásokhoz anélkül, hogy újból hitelesíttetnie kellene magát a

tartományvezérlőnél. Jegyezzük meg, hogy ehhez a Sambának felhasználói szintű biztonságot kell használnia (security = user), és elsődleges tartományvezérlőnek kell lennie. Emellett a Windows gépek még azt is elvárják, hogy legyen a Samba kiszolgálón egy [netlogon] megosztás (lásd ,,A Samba konfigurálása Windows rendszerű tartományi bejelentkezéshez” szakaszt a fejezet előző részében). domain group map Ezzel a beállítással annak a fájlnak a helyét és nevét adhatjuk meg, amely a Windows NT tartománycsoportok nevét Unix csoportok nevére képezi le. A fájlnak a Samba kiszolgálón kell lennie Például: /usr/local/samba/private/groups.mapping 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 203 A fájlnak egyszerű a formátuma: UnixGroup = NTGroup Egy példa a leképzésre: admin = Administrative A megadott Unix csoportnak érvényes csoportnak kell lennie az /etc/group fájlban. Az NT csoportnak azt a nevet kell adnunk,

amilyen névre a Unix csoportot az NT ügyfélnél le akarjuk képezni. Ez a beállítás csak Windows NT ügyfeleknél használható domain user map Ezzel a beállítással annak a fájlnak a helyét és nevét adhatjuk meg, amely a unixos felhasználóneveket Windows NT tartományi felhasználónevekre alakítja át. A fájlnak a Samba kiszolgálón kell lennie. Például: /usr/local/samba/private/domainuser.mapping A fájlnak egyszerű a formátuma: UnixUsername = [\Domain\]NTUserName Így nézhet ki egy bejegyzés: joe = Joseph Miller A megadott unixos névnek érvényes felhasználónévnek kell lennie az /etc/passwd fájlban. Az NT névnek annak a felhasználónévnek kell lennie, amelyet az NT ügyfél részére unixos felhasználónévként meg akarunk jeleníteni. Ez a beállítás csak Windows NT ügyfeleknél használható. Aki többet szeretne tudni arról, hogy miként kezeli a Windows NT a tartományi felhasználóneveket és a helyi csoportokat, olvassa el Eric

Pearce Windows NT in a Nutshell című könyvét (kiadó: O’Reilly). local group map Ezzel a beállítással annak a fájlnak a helyét és nevét adhatjuk meg, amely a Windows NT helyi csoportok nevét Unix csoportnevekre képezi le. Helyi csoportnevek az olyan nevek is, mint az Administrator vagy a Users. A fájlnak a Samba kiszolgálón kell lennie Például: /usr/local/samba/private/localgroup.mapping 204 | SAMBA A fájlnak egyszerű a formátuma: UnixGroup = [BUILTIN]NTGroup Így nézhet ki egy bejegyzés: root = BUILTINAdministrators A beállítás csak Windows NT ügyfeleknél használható. revalidate Ez a megosztás szintű beállítás azt közli a Sambával, hogy kényszerítse ki a felhasználóktól a jelszavas hitelesítésüket minden olyan esetben, amikor egy gépen másik megosztáshoz akarnak kapcsolódni, függetlenül attól, hogy milyen szintű biztonság van beállítva a Samba kiszolgálón. A beállításhoz alapértelmezés szerint a no érték

tartozik – ilyen esetben az egyszer már sikeresen hitelesített felhasználónak nem kell újból hitelesíttetnie magát. A beállítást az alábbi módon bírálhatjuk felül: revalidate = yes Ezzel ugyan növelhetjük a rendszerünk biztonságát, ugyanakkor kényelmetlenséget okozunk a felhasználóknak azzal, hogy bármely más megosztáshoz való kapcsolódáskor újból hitelesíttetni kell magukat. Bejelentkezési szkriptek A Samba támogatja a Windows olyan bejelentkezési szkriptjeit (ezeknek .BAT vagy CMD a kiterjesztésük), amelyek akkor futnak le az ügyfélgépen, amikor egy felhasználó bejelentkezik egy Windows tartományba. Jegyezzük meg, hogy ezeket a szkripteket a Unix oldal tárolja, és a hálózaton keresztül akkor kerülnek át a felhasználó gépére, és futnak le ott, amikor a felhasználó bejelentkezik a hálózatra. Az ilyen szkripteknek óriási szerepük van a hálózat dinamikus konfigurálásában. A hátrányuk az, hogy mivel Windows

rendszer alatt futnak, a Windows hálózati konfigurációs parancsait kell használniuk. Ha valaki többet szeretne tudni a NET parancsokról, olvassa el az O’Reilly kiadónál megjelent Windows NT in a Nutshell és a Windows 98 in a Nutshell című kézikönyveket. A Sambát a logon script beállítás segítségével utasíthatjuk egy bejelentkezési szkript lefuttatására: [global] domain logons = yes 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 205 security = user workgroup = SIMPLE os level = 34 local master = yes preferred master = yes domain master = yes logon script = %U.bat [netlogon] comment = The domain logon service path = /export/samba/logon public = no writeable = no browsable = no Figyeljük meg, hogy a fenti példában a %U változót használva a bejelentkező felhasználó testére szabhatjuk a szkriptet. Általában szokás, hogy a tartományba bejelentkező felhasználótól vagy számítógéptől függjön, hogy melyik szkript fusson le

Ezekben a szkriptekben figyelembe vehetjük az egyes felhasználók vagy ügyfelek egyéni konfigurációs igényeit. A bejelentkezési szkripteket a [netlogon] megosztás helyén kell tárolni. Ha ez az /export/ samba/logon könyvtár, és a bejelentkezési szkriptnek jeff.bat a neve, akkor a szkriptet a következő módon kell elhelyezni: /export/samba/logon/jeffbat Amikor a felhasználó egy induló szkriptet tartalmazó tartományba jelentkezik be, egy kis párbeszédablakot lát, amely tájékoztatja a szkript futásáról, és a szkript kimeneteit kiírja egy MS-DOS ablakba. Figyelem: mivel ezeket a szkripteket a Windows tölti be, és a Windows oldalon futnak le, a Unix kocsivissza karakterei helyett a DOS kocsivissza/sorelemelés karaktereit kell tartalmazniuk. Ezért ajánlatos, hogy az ilyen szkripteket DOS vagy Windows alapú szövegszerkesztőben készítsük el Az alábbiakban olyan bejelentkezési szkriptre mutatunk példát, ami az aktuális időt a Samba kiszolgálón

lévő időre állítja be, továbbá a h és az i hálózati meghajtókat két megosztásra képezi le a kiszolgálón: # # # Az aktuális idő beállítása a kiszolgálón lévő időre. Ehhez az smb.conf fájlba fel kell venni a "time server = yes" beállítást. echo Az aktuális idő beállítása . net time \hydra /set /yes # # Két hálózati meghajtót leképezünk a Samba kiszolgáló megosztásaira echo Hálózati meghajtók leképezése a Hydra Samba kiszolgálóra. net use h: \hydradata net use i: \hydra etwork 206 | SAMBA Mozgó profilok Windows 95/98 és NT rendszerekben minden felhasználónak saját profilja lehet. A profilok olyan információkat tartalmaznak, mint a rendszer Asztalának a megjelenítése, a Start menüben elhelyezett alkalmazások, a háttér színe és más, ezekhez hasonló jellemzők. Ha a profilt helyi lemez tárolja, akkor ezt helyi profilnak nevezzük, mert a helyi felhasználóval kapcsolatos információkat tartalmazza.

Ha viszont a profilt a kiszolgáló tárolja, akkor a felhasználó ugyanazt a profilt töltheti le, bármelyik ügyfélgépről is kapcsolódik a kiszolgálóhoz. Ez utóbbit mozgó profilnak nevezik, mert a felhasználó gépről gépre vándorolhat, és miközben ,,mozog”, mindig ugyanazt a profilt használhatja. Ennek különösen akkor vehetjük hasznát, ha valaki egyik nap az irodai gépéről, másik nap pedig a hordozható számítógépéről jelentkezik be. A mozgó profilokat a 66 ábra szemlélteti 6.6 ábra Helyi és mozgó profilok A Sambában létrehozhatunk mozgó profilokat, ha a kiszolgálót tartományi bejelentkezésekhez konfiguráltuk, és ha a logon path beállítással megadtunk egy könyvtárfát. A beállításban általában változókkal helyettesítik a felhasználókat az alábbi példa szerint: [global] domain logons = yes security = user workgroup = SIMPLE os level = 34 local master = yes preferred master = yes domain master = yes logon path =

\hydraprofile\%U 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 207 A profilok támogatásához új megosztást kell létrehozni – ez olyan alap lemezmegosztás, amelyhez csak a Samba processzeinek használója (root) férhet hozzá. A megosztásnak írhatónak kell lennie, de nem lehet tallózható Ezen túlmenően minden olyan felhasználóhoz, aki be akar jelentkezni, létre kell hoznunk egy könyvtárat (attól függően, hogy miként adtuk meg logon path beállításban a könyvtárat), amelyhez csak az illető felhasználó férhet hozzá. A biztonság növelése érdekében a megosztásba a directory mode és a create mode beállításokat is felvettük, hogy a megosztáshoz kapcsolódó személyek előtt ne jelenjenek meg az ezekben a könyvtárakban létrehozásra kerülő fájlok, és ne is módosíthassák ezeket. [profile] comment = Felhasználói profilok path = /export/samba/profile create mode = 0600 directory mode = 0700 writable = yes browsable = no

Miután először bejelentkezett egy felhasználó, a Windows ügyfél – attól függően, hogy milyen operációs rendszer fut a gépén – elkészít egy user.dat vagy egy ntuserdat nevű fájlt. Ezt követően az ügyfél feltölti az Asztalának, a Start menüjének, a Hálózatának (Network Neighborhood) és a programmappáinak tartalmát az adott könyvtár különböző mappáiba. Amikor az ügyfél ismét bejelentkezik, ezek a tartalmak letöltődnek a kiszolgálóról, és aktivizálódnak azon az ügyfélgépen, amelyről a felhasználó bejelentkezett Amikor a felhasználó kijelentkezik, a tartalmak ismét feltöltődnek a kiszolgálóra. Ha megnézzük egy profilmappa könyvtárlistáját, akkor például az alábbiakat látnánk: # ls -al total 321 drwxrwxr-x drwxrwxr-x drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx---rw------- 9 4 3 3 2 2 7 2 2 1 root root fred fred fred fred fred fred fred fred simple simple develope develope develope develope

develope develope develope develope Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul 21 22 12 12 12 12 12 12 19 21 20:44 14:32 07:15 07:15 07:15 07:15 07:15 07:15 21:05 21:59 . . Application Data Start Menu cookies desktop history nethood recent user.dat A user.dat fájlok bináris konfigurációs fájlok, amelyeket automatikusan hoz létre a Windows. A Windows ügyfélnél a Profile Editor programmal szerkeszthetők, de ez nem túl egyszerű feladat. A Samba egészen az NT 50 béta verzióig támogatja ebben az ügyfeleket 208 | SAMBA A bejelentkezési szkriptek kezelésével kapcsolatban a Samba dokumentációs könyvtáraiban található fájlokban olvashatunk további részleteket (docs/textdocs/DOMAIN.txt és docs/textdocs/PROFILEStxt) Kötelező profilok A felhasználókhoz kötelező profilok is tartozhatnak – ezek olyan mozgó profilok, amelyek nem módosíthatók. Ha például egy kötelező profillal rendelkező felhasználó kedden felvesz a Start menüjébe egy

parancsot, majd szerdán ismét bejelentkezik, nem fogja látni az előző napon felvett parancsot. A kötelező profil nem más, mint egy userdat fájl userman névre átnevezett változata, ami csak olvashatóvá lett átminősítve a Unix kiszolgálón. Általában azokat a beállításokat tartalmazza, amelyeket a felhasználónak a rendszergazda kívánsága szerint mindig végre kell hajtania. Ha például egy rendszergazda állandó felhasználói konfigurációt akar létrehozni, akkor a következőket teheti: 1. Létrehozza a Samba kiszolgálón az írható és olvasható könyvtárt 2. Az smbconf fájlban a logon path beállításhoz ezt a könyvtárt rendeli 3. Felhasználóként bejelentkezik a Windows 95/98 rendszerből, hogy az ügyfél bekerüljön a könyvtárba 4. A létrejövő userdat fájlt userman névre nevezi át 5. A könyvtárat és a tartalmát csak olvashatóvá minősíti át Az ilyen kötelező profilokat általában nem használják. Ezzel szemben a mozgó

profilok a Windows és a Samba legnépszerűbb szolgáltatásai közé tartoznak. A bejelentkezési szkript beállításai A 6.10 táblázat a Windows tartományi bejelentkezési szkriptjeivel kapcsolatos leggyakoribb beállításokat sorolja fel 6.10 táblázat Bejelentkezési szkriptek beállításai Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör logon script logon path Karakterlánc (DOS elérési út) Karakterlánc (a kiszolgáló és a megosztás UNC neve) Karakterlánc (meghajtó azonosítója) Karakterlánc (a kiszolgáló és a megosztás UNC neve) A DOS/NT parancsfájl neve. Nincs Globális A felhasználó profiljának helye. \%N\%Uprofile Globális logon drive logon home mozgó A bejelentkezési meghajtót adja meg a home könyvtárhoz (csak NT). A tartományba bejelentkezett ügyfelek home könyvtárainak helyét adja meg. Z: Globális \%N\%U Globális 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 209 logon script

Ez a beállítás egy Windows rendszerben futtatható .BAT vagy CMD kiterjesztésű parancsfájlt ad meg, amelyben az egyes parancssorokat a kocsivissza/soremelés karakterpár zárja le. A fájl végrehajtására azt követően kerül sor, hogy a felhasználó bejelentkezett a tartományba A bejelentkezési szkripteket egy [netlogin] nevű megosztásban kell tárolni (a részletekről ,,A Samba konfigurálása Windows rendszerű tartományi bejelentkezéshez” című előző fejezetrészben volt szó). A beállításban gyakran használják a %U vagy a %m változót (a felhasználó vagy a számítógép NetBIOS neve). Példa: logon script = %U.bat A fenti beállítás hatására végrehajtásra kerül a felhasználó nevével meghatározott, a [netlogin] nevű megosztásban található szkript. Ha bejelentkező felhasználónak fred a neve, és a [netlogin] megosztásban elérési útként az /export/samba/netlogin könyvtár van megadva, akkor a szkript az

/export/samba/netlogin/fred.bat lesz Mivel ezeket a szkripteket a Windows tölti be, és a Windows oldalon futnak le, a Unix kocsivissza karakterei helyett a DOS kocsivissza/sorelemelés karaktereit kell tartalmazniuk. logon path Ezzel a beállítással a mozgó profilok helyét adhatjuk meg. Amikor bejelentkezik egy felhasználó, a kiszolgálóról letöltődik a mozgó profilja arra a gépre, amelyről bejelentkezett, és így a megszokott környezetében dolgozhat. Amikor kijelentkezik a felhasználó, a profilja visszatöltődik a kiszolgálóra, és ott tárolódik, amíg legközelebb ismét bejelentkezik Gyakran biztonságosabb külön megosztást készíteni kizárólag a felhasználói profilok tárolására: logon path = \hydraprofile\%U A beállításról részletesebben a fejezet korábbi, ,,Bejelentkezési szkriptek” című részében volt szó. logon drive Ezzel a beállítással annak a lemezmeghajtónak az azonosító betűjét adhatjuk meg, amelyre a logon home

beállításban meghatározott home könyvtárt képezzük le egy NT ügyfélnél. Ez a beállítás csak Windows NT ügyfeleknél használható Példa: logon drive = I: Olyan betűt kell használnunk, amelyik nem ütközik az ügyfél gépében lévő merevlemezes meghajtók azonosítójával. A beállításhoz alapértelmezés szerint a Z betű tartozik, amit meg is hagyhatunk, mert a lehető legtávolabb van az A, a C és a D betűktől. logon home Ez a beállítás egy felhasználó home könyvtárának a helyét adja meg a DOS NET parancsai számára. A Samba kiszolgálón lévő valamely megosztást például az alábbi módon adhatjuk meg home könyvtárként: 210 | SAMBA logon home = \hydra\%U Megjegyezzük, hogy a home könyvtár a [homes] szakaszon keresztül is megtalálható, de bármely más könyvtár is megadható. A bejelentkezési szkripteket tartalmazó home könyvtárak az alábbi paranccsal képezhetők le: NET USE I: /HOME A Windows NT

felhasználó-kezelőjében (User Manager) a felhasználó tulajdonságai alatt, a környezeti profil segítségével ellenőrizhetjük is, hogy valóban létrejött-e a home könyvtár. Egyéb kapcsolódási szkriptek Miután egy felhasználó bejelentette azt a szándékát, hogy hozzá szeretne férni a Samba valamelyik megosztásához, a Samba a maga oldalán egy program végrehajtásával előkészítheti a megosztás használatát. A Samba lehetővé teszi, hogy akár a megosztáshoz való kapcsolódás előtt, akár utána lefusson egy szkript. Ehhez Windows tartományok használatára sincs szükség A 611 táblázat néhány ilyen előkészítő beállítást sorol fel 6.11 táblázat Kapcsolódási szkriptek beállításai Beállítás Paraméterek root preexec Karakterlánc Megadja azt a parancsot, (Unix parancs) amelynek rootként kell lefutnia a megosztáshoz való kapcsolódás előtt. Karakterlánc Megadja azt a Unix paran(Unix parancs) csot, amelynek

felhasználóként kell lefutnia a megosztáshoz való kapcsolódás előtt. Karakterlánc Megadja azt a Unix paran(Unix parancs) csot, amelynek felhasználóként kell lefutnia a megosztásról való lekapcsolódás után. Karakterlánc Megadja azt a Unix paran(Unix parancs) csot, amelynek rootként kell lefutnia a megosztásról való lekapcsolódás után. preexec (exec) postexec root postexec Funkció Alapértelmezett érték Hatókör Nincs Megosztás Nincs Megosztás Nincs Megosztás Nincs Megosztás root preexec Ehhez a beállításhoz egy Unix parancs tartozik, ami rootfelhasználóként kerül végrehajtásra, mielőtt még megtörténne a megosztáshoz való kapcsolódás. A beállítás segítségével olyan műveleteket végezhetünk el, amelyek rootprivilégiumot igényelnek. A root pre- 6. FEJEZET FELHASZNÁLÓK, BIZTONSÁG ÉS TARTOMÁNYOK | 211 exec beállítást használva például CD-ROM-ot csatlakoztathatunk egy megosztáshoz, hogy

elérhetővé tegyük őket az ügyfelek számára, vagy könyvtárakat hozhatunk létre. Az alábbi részlet arra mutat példát, miként használhatunk egy parancsot CD-ROM csatlakoztatására: [homes] browseable = no writeable = yes root preexec = /etc/mount /dev/cdrom2 Ne feledjük, hogy ezek a parancsok rootfelhasználóként futnak. Ezért a biztonság érdekében sohase engedélyezzük, hogy a felhasználók módosítsák a root preexec beállításhoz tartozó parancsot. preexec A preexec beállításhoz – amit esetenként exec alakban is használnak – tartozó parancs szintén a kapcsolódás előtt fut le. Ez normál, nem privilegizált parancs, amelyet a Samba a %u változóval megadott felhasználóként futtat le. A parancsot általában a bejelentkezés elvégzéséhez használják az alábbi módon: [homes] preexec = echo "%u connected to %S from %m (%I)" >/tmp/.log Legyünk tisztában azzal, hogy a parancs által a standard kimenetre küldött

parancsok nem jelennek meg a felhasználó előtt, hanem megsemmisülnek. Ha preexec szkriptet akarunk használni, akkor teszteljük, mielőtt még engednénk, hogy meghívja a Samba postexec Miután egy felhasználó lekapcsolódik egy megosztásról, felhasználóként végrehajtásra kerül a Samba kiszolgálón a postexec beállításban megadott parancs. Ez általában az utólagos tisztogatási műveleteket végzi el. Erre a parancsra is vonatkozik, hogy a %u változóval megadott felhasználóként fut le, és a standard kimenetre küldött üzenetei nem jelennek meg. root postexec A postexec beállítással megadott parancsot követően a root postexec beállításban megadott parancs végrehajtására kerül sor (amennyiben van ilyen). A beállításhoz megadott parancs rootfelhasználóként fut le, miután a felhasználó lekapcsolódott a megosztásról Ebben a beállításban olyan parancsokat adhatunk meg, amelyek végrehajtásához rootprivilégium tartozik.

Együttműködés NIS és NFS rendszerrel Végül megemlítjük, hogy a Samba NIS és NIS+ rendszerekkel is képes együttműködni. Ha a hálózatban egynél több fájlkiszolgáló van, és mindegyiken fut a Samba, akkor célszerű, hogy az SMB ügyfél ahhoz a kiszolgálóhoz kapcsolódjon, amelyiknek a merevlemezei a home könyvtárát tartalmazzák. Általában nem jó megoldás, hogy a fájlokat először NFS 212 | SAMBA rendszerrel elküldjük egy Samba kiszolgálóra, hogy onnan SMB rendszerrel újra az ügyfélhez kerüljenek. (A Samba sebessége mintegy a harmadára esne vissza) Ezért léteznek olyan beállítások, amelyek segítségével tájékoztathatjuk a Sambát arról, hogy a NIS ismeri a megfelelő kiszolgáló nevét, és jelezhetjük, hogy melyik NIS képezi le az információkat. A 6.12 táblázat két ilyen, a felhasználókat segítő beállítást sorol fel 6.12 táblázat NIS beállítások Beállítás Paraméterek Funkció Alapértelmezett érték

Hatókör nis homedir Boolean érték no Globális homedir map Karakterlánc (NIS leképzés neve) Ha yes az értéke, akkor a felhasználó home könyvtárát nem az /etc/passwd fájlban, hanem a NIS-ben kell keresni. A NIS leképzést kell használni a felhasználó home könyvtárának kereséséhez. Nincs Globális nis homedir és homedir map A nis homedir és a homedir map beállítást azokon a hálózatokon használják a Samba kiszolgálók, amelyeken a Unix home könyvtárakat az NFS (automounter) és a NIS (Yellow Pages) szolgáltatja. A nis homedir beállítással az jelezhető, hogy a felhasználó home könyvtárát tartalmazó kiszolgálót a NIS-ben kell keresni. A homedir map beállítás viszont arról tájékoztatja a Sambát, hogy melyik NIS leképezésben keresse ezt a kiszolgálót. A NIS kiszolgálónak Samba kiszolgálónak kell lennie, hogy az ügyfél SMB kéréssel kapcsolódhasson hozzá, a többi Samba kiszolgálóra pedig rá kell telepíteni a

NIS rendszert, hogy elvégezhető legyen a keresés. Ha például egy joe nevű felhasználó egy [joe] nevű megosztáshoz akar kapcsolódni, és a nis homedir beállításhoz a yes érték tartozik, akkor a Samba a homedir map beállításban megadott fájlban fogja keresni joe home könyvtárát. Ha megtalálja, akkor az ezt tartalmazó gép nevét visszaküldi az ügyfélnek. Az ügyfél ekkor megpróbál ehhez a géphez kapcsolódni, és azon kísérli meg a megosztások elérését A NIS-ben való kereséseket az alábbi módon engedélyezhetjük: [global] nis homedir = yes homedir map = amd.map Nyomtatás és névfeloldás Ebben a fejezetben két témakörrel foglalkozunk: egyrészt megvizsgáljuk, miként állíthatjuk be a nyomtatókat úgy, hogy Samba kiszolgálóról legyenek használhatók, másrészt megnézzük, hogyan konfigurálhatjuk úgy a Sambát, hogy WINS (Windows Internet Name Service) kiszolgálóként működhessen. A Samba lehetővé teszi az ügyfelei

számára, hogy kinyomtassák a dokumentumaikat a hozzá csatlakoztatott nyomtatókon. Emellett arra is lehetőséget ad, hogy unixos dokumentumokat nyomtassunk ki egy Windows géphez kapcsolódó nyomtatón. A fejezet első részében arról lesz szó, hogy miként kell konfigurálnunk a nyomtatókat mind az ügyfél, mind a kiszolgáló oldalán A fejezet második részében a NetBIOS névkiszolgáló (NBNS) Microsoft által megvalósított eljárásával, a WINS kiszolgálóval ismerkedünk meg. Amint az első fejezetben említettük, az NBNS lehetővé teszi, hogy a számítógépek broadcast üzenetek nélkül is elvégezhessék egy NetBIOS hálózatban a névfeloldást Ebben az elrendezésben mindegyik gép pontosan tudja, hogy hol található a WINS kiszolgáló, és elkérheti tőle a hálózathoz kapcsolódó többi gép IP címét. Nyomtatási feladatok küldése a Sambára A Samba kiszolgálóhoz csatlakozó nyomtató a Network Neighborhood (hálózatok) ablakában, a

felsorolt megosztások között látható. Ha az ügyfél gépén regisztrálva van a nyomtató, és a megfelelő illesztőprogram is telepítve van, akkor az ügyfél minden további nélkül elküldheti a nyomtatási feladatait a Samba kiszolgálóhoz csatlakoztatott nyomtatóra A 7.1 ábra azt szemlélteti, hogy miként jelenik egy Samba nyomtató a Windows ügyfél Network Neighborhood ablakában A nyomtatók Sambán történő kezeléséhez tudnunk kell, milyen alapvető folyamatok zajlanak le a nyomtatás során. A nyomtatási feladat Sambára történő küldése a következő négy lépésből áll: 1. A nyomtatómegosztási kapcsolat megnyitása és hitelesítés 2. Fájlok átmásolása a hálózaton keresztül 3. A kapcsolat bezárása 4. Az átküldött fájl kinyomtatása és a másolat törlése Amikor a nyomtatási feladat megérkezik a Samba kiszolgálóra, a nyomtatandó adatok átmenetileg lemezre íródnak, mégpedig a nyomtatómegosztás path beállításában

megadott könyvtárba. Ezt követően a Samba végrehajtja a Unix nyomtatási parancsát, ami a 214 | SAMBA 7.1 ábra Samba nyomtató a Network Neighborhood ablakban nyomtatóra küldi a fájlban lévő adatokat. A feladat a megosztáshoz kapcsolódó hitelesített felhasználóként nyomtatódik ki. Jegyezzük meg, hogy a felhasználó a megosztás konfigurálásától függően vendégfelhasználó is lehet Nyomtatási parancsok A dokumentum kinyomtatásához közölnünk kell a Sambával, hogy milyen parancsot használjon a fájl kinyomtatásához és törléséhez. Linuxban a következő parancs használható: lpr -r -Pprinter file A parancs lpr része azt mondja, hogy a dokumentumot be kell másolni egy várakozó területre (ez rendszerint a /var/spool), elő kell keresni a nyomtató nevét a rendszer konfigurációs fájljából (/etc/printcap), az ott található szabályok értelmezésével el kell dönteni, miként kell feldolgozni a fájlban lévő adatokat, és

melyik fizikai eszközre kell küldeni azokat. Az -r kapcsoló azt közli, hogy a parancssorban megadott fájlt a kinyomtatását követően törölni kell Természetesen a fájlnak csak a Samba kiszolgálón tárolt másolata törlődik, az eredeti fájl változtatás nélkül megmarad az ügyfélnél A Linux Berkeley (BSD) stílusú nyomtatást használ, de a Unix System V verziója is hasonlóképpen nyomtat. Ez utóbbinál némileg összetettebb a nyomtatási és törlési parancs: lp -dprinter -s file; rm file A System V verzióban az /etc/printcap fájlt az /usr/spool/lp könyvtárban elrejtett különböző konfigurációs fájlok helyettesítik, és a parancshoz nem tartozik olyan kapcsoló, ami törölné a nyomtatás után a fájlt. Ezért ezt magunknak kell elvégezni – ezért adtuk meg másodikként az rm parancsot. Nyomtatási változók A Sambában négy változót használhatunk a nyomtatási beállításokhoz. A változókat a 71 táblázat sorolja fel. 7.

FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 215 7.1 táblázat Nyomtatási változók Változó Meghatározás %s %f %p %j A kinyomtatandó fájl Samba kiszolgálón lévő teljes elérési útja. A kinyomtatandó fájl neve a Samba kiszolgálón (az elérési út nélkül). A használandó unixos nyomtató neve. A nyomtatási feladat száma (az lprm, lppause és lpresume parancsokhoz). A minimális nyomtatási beállítás Indulásként tekintsünk egy egyszerű, de szemléletes nyomtatómegosztást. Tegyük fel, hogy Linux rendszerben dolgozunk, és az /ltc/printcap fájlban fel van sorolva az lp nevű nyomtató. Ekkor az alábbi megosztást kell felvennünk az smbconf fájlba, hogy a hálózaton keresztül elérhető legyen a nyomtató: [printer1] printable = yes print command = /usr/bin/lpr -r printer = lp printing = BSD read only = yes guest ok = yes %s Ez a megosztás bárki számára lehetővé teszi, hogy adatokat küldjön a nyomtatóra (később ezen azért majd

változtatunk). Pillanatnyilag azt kell megértenünk, hogy a print command beállításban a %s változó annak a fájlnak a neve helyén áll, amely majd kinyomtatódik, amikor a Samba végrehajtja a parancsot Különböző stílusú Unix gépek különböző nyomtatási parancsokat használnak, de ehhez csak a print command és a printing beállítások értékét kell módosítanunk. Lássuk, milyen parancsot kell használni a System V Unixos rendszerben. Változók használatával a következő alakú lehet a parancs: print command = lp -d%p -s %s; rm %s Amint korábban említettük, a %p változó a nyomtató nevét helyettesíti, míg a %s a fájl neve helyett áll. Ezt követően a nyomtatási beállításban a következő módon adhatjuk meg, hogy System V rendszerben dolgozunk: printing = SYSV Ha megosztás szintű biztonságot alkalmazunk, akkor szenteljünk külön figyelmet a Samba által használt vendégfióknak. Az ehhez tartozó tipikus nobody érték letilthatja az

operációs rendszer számára a nyomtatást. Ha ez történne a rendszerünkben, akkor a nyomtatómegosztásba (vagy akár a globális megosztásba) vegyünk fel egy guest account beállítást, és olyan fiókot rendeljünk hozzá, amelyik engedélyezi a nyomtatást. 216 | SAMBA A Samba szerzői az ftp fiókot javasolják, ami általában eleve úgy van konfigurálva, hogy védett a jogosulatlan vendégekkel szemben. A beállítás alakja: guest account = ftp Ugyancsak a nyomtatáshoz tartozik, hogy az ügyfelek lekérdezhessék a Samba kiszolgálóra küldött nyomtatási feladatuk állapotát. A Samba akkor sem tiltja meg egy nyomtatási feladat elküldését, amikor éppen nyomtat egy dokumentumot. Ebből következően a Sambának nem csak az éppen nyomtatás alatt álló feladat állapotáról kell tudnia tájékoztatni a feladat tulajdonosát, hanem arról is, hogy mely dokumentumok várakoznak az adott nyomtatón a kinyomtatásukra. A Sambának azt is lehetővé kell

tennie, hogy az ügyfél szüneteltesse, újból aktivizálja vagy törölje a feladatot a várakozói sorból A Samba különböző beállításokat tartalmaz ezen feladatok végrehajtásához Amint gondolhatjuk, e beállítások funkciója a létező Unix parancsokéval azonos: • lpq command • lprm command • lppause command • lpresume command Ezekre a beállításokra rövidesen részletesebben is kitérünk. Annyit azonban már most megjegyzünk, hogy a nyomtatási beállításokhoz rendelt érték határozza meg a viselkedésüket, és többnyire nincs szükség az alapértelmezett értékek módosítására. Néhány fontos megjegyzés a nyomtatómegosztásokkal kapcsolatban: • Mindegyik nyomtatómegosztásba (még a [printers] megosztásba is) fel kell venni a printable = yes beállítást. Ha megfeledkeznénk erről, akkor a megosztást nem lehetne nyomtatáshoz használni, hanem lemezmegosztásnak tekintené a Samba. • Ha a nyomtató szakaszába felvesszük a path

beállítást, akkor a nyomtató(k)ra küldött fájlok nem az alapértelmezés szerint /tmp könyvtárba, hanem a beállításban megadott könyvtárba másolódnak. Mivel egyes Unix operációs rendszerekben a /tmp könyvtár számára lefoglalt lemezterület viszonylag kicsi lehet, sok rendszergazda ehelyett a var/spool vagy valamilyen más könyvtárt állít be. • A nyomtatómegosztásokban figyelmen kívül marad a read only beállítás. • Ha egy nyomtatómegosztásba felvesszük a guest ok = yes beállítást, és a Samba megosztás szintű biztonságra van konfigurálva, akkor a guest account használójaként bárki küldhet adatokat a nyomtatóra. Azzal, hogy egy vagy több Samba kiszolgálót nyomtatókiszolgálóként használhatunk, nagyon rugalmassá tehetjük a helyi hálózatunkat. Szabadon megoszthatjuk a nyomtatókat a felhasználók között, vagy éppenséggel csak bizonyos személyekre korlátozhatjuk az elérhetőségüket. Ez utóbbit például úgy

tehetjük meg, hogy az illető nyomtató megosztásába felvesszük a valid users beállítást, és a kedvezményezett személyeket rendeljük hozzá: [deskjet] printable = yes path = /var/spool/samba/print valid users = gail sam 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 217 A megosztás elérését engedélyező, az előző fejezetben ismertetett összes beállítás a nyomtatómegosztásokban is használható. Mivel a Samba a nyomtatókhoz a nevükön keresztül fér hozzá, a nyomtatási szolgáltatásokat egyszerűen megoszthatjuk különböző kiszolgálók között – az olyan feladatokhoz, mint a terheléselosztás vagy a karbantartás, a Unix ismert parancsait használhatjuk. A [printers] megosztás A ,,Lemezmegosztások” című 4. fejezetben röviden már találkoztunk a [printers] szakasszal, ami automatikusan létrehozza a nyomtatási szolgáltatásokat Tekintsük át most ennek a működését: ha a konfigurációs fájlba felveszünk egy [printers] nevű

megosztást. akkor a Samba automatikusan beolvassa a /ltc/printcap fájlt, és a fájlban felsorolt mindegyik nyomtatóhoz létrehoz egy-egy nyomtatómegosztást. Ha például a Samba kiszolgálónak ebben a fájljában az lp, a pcl, és a ps nyomtató van felsorolva, akkor a Samba három nyomtatómegosztást hoz létre az ilyen nevű nyomtatókhoz, melyek mindegyikét a [printers] megosztásba felvett beállításokkal konfigurálja. Emlékezzünk vissza arra, hogy a Samba az alábbi szabályokat követi, amikor egy ügyfél olyan megosztáshoz akar kapcsolódni, amelyet nem tartalmaz az smb.conf fájl: • Ha a kért megosztás neve megegyezik a rendszer jelszófájljában tárolt valamelyik felhasználónévvel, és létezik a [homes] megosztás, akkor a felhasználó nevét használva új megosztást készít, amelyet a [homes] és a [global] szakaszokban lévő értékekkel inicializál. • Ellenkező esetben, ha a kért megosztás neve a rendszer konfigurációs fájljában

felsorolt valamelyik nyomtató nevével egyezik meg, akkor a nyomtató nevét használva új megosztást készít, amelyet a [printers] szakaszban lévő értékekkel inicializál. (A [global] szakasz változói itt nem használhatók.) • Ha a fenti kapcsolódások egyike sem sikerült, akkor a Samba az alapértelmezés szerinti megosztást keresi. Ha ilyent sem talál, hibaüzenetet küld A fentiek egy lényeges dologra világítanak rá: vigyázzunk arra, hogy ne adjuk ugyanazt a nevet egy nyomtatónak, mint ami egy felhasználó neve. Ha így tennénk, lemezmegosztáshoz kapcsolhatnánk azt a felhasználót, aki egy nyomtatómegosztáshoz akart volna hozzáférni. Az alábbiakban arra látunk példát, hogy Linux (BSD) rendszerben hogyan vehetünk fel egy [printers] megosztást. Bár a beállítások között alapértelmezettek is vannak, szemléltetés céljából ezeket is beírtuk: [global] printing = BSD print command = /usr/bin/lpr -P%p -r %s printcap file = /etc/printcap min

print space = 2000 [printers] path = /usr/spool/public printable = true guest ok = true guest account = pcguest 218 | SAMBA Globális hatókörrel megadtuk a nyomtatási stílust (BSD), bevettük a nyomtatási parancsot (print command), ami a nyomtatóra küldi az adatokat, előírtuk, hogy törlődjön az átmeneti fájl, tájékoztatást adtunk a nyomtatási képességekről (printcap), és 2 megabájtban határoztuk meg a nyomtatáshoz lefoglalandó lemezterületet. Ezt követően elkészítettük a [printers] megosztást a rendszernyomtatókhoz. A path beállításban az átmeneti fájlok tárolási helyéül a /usr/spool/public könytárat írtuk elő. Ezekbe a megosztásokba a printable = true beállítást is fel kell venni A két guest beállítás akkor hasznos, ha megosztás szintű biztonsággal működik a Samba: engedélyeztük a vendéghozzáférést, és megadtuk azt a felhasználót, aki végrehajthatja a nyomtatási parancsokat. Tesztnyomtatás Nézzük most,

miként végezhetünk el egy tesztnyomtatást a Samba kiszolgálóról. Tételezzük fel a legbonyolultabb esetet, és használjunk egy vendégfiókot Először futtassuk le a nyomtatómegosztásokat tartalmazó konfigurációs fájlon a Samba testparm parancsát, amint ezt a 2. fejezetben is tettük Ebből megtudhatjuk, vannak-e szintaktikai hibák a konfigurációs fájlban Ha például az előző példából kihagytuk volna a path beállítást, a következőt látnánk: # testparm Load smb config files from /usr/local/samba/lib/smb.conf Processing configuration file "/usr/local/samba/lib/smb.conf" Processing section "[global]" Processing section "[homes]" Processing section "[data]" Processing section "[printers]" No path in service printers - using /tmp Loaded services file OK. Press enter to see a dump of your service definitions Global parameters: load printers: Yes printcap name: /etc/printcap Default service parameters: guest

account: ftp min print space: 0 print command: lpr -r -P%p %s lpq command: lpq -P%p lprm command: lprm -P%p %j lppause command: lpresume command: Service parameters [printers]: path: /tmp print ok: Yes read only: true public: true 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 219 Következő lépésként adjuk ki a testprns nyomtatónév parancsot. Ez az egyszerű program azt ellenőrzi, hogy szerepel-e a megnevezett nyomtató a printcap fájlban Ha ez a fájl nem a szokásos helyén lenne, akkor a testprns parancs második argumentumaként megadhatjuk az elérési útját: # testprns lp /etc/printcap Looking for printer lp in printcap file /etc/printcap Printer name lp is valid. Ezt követően jelentkezzünk be vendégfelhasználóként, keressük meg a várakozási sort tartalmazó könyvtárt, és győződjünk meg arról, hogy ugyanazt a parancsot használhatjuk a nyomtatáshoz, amit a Samba is használ a testparm parancs kimenetében. Amint korábban említettük, ebből

megtudhatjuk, hogy meg kell-e változtatnunk a vendégfiókot, mert lehetséges, hogy az alapértelmezés szerint fiókról nem engedélyezett a nyomtatás. Végül küldjünk az smbclient programmal valamilyen nyomtatási feladatot a Samba kiszolgálóra, és lássuk, ezek történnek-e: • A nyomtatási feladat (kis időre) megjelenik a Samba path beállításban megadott könyvtárának várakozási sorában. • A nyomtatási feladat megjelenik a nyomtatórendszer könyvtárának várakozási sorában. • A nyomtatási feladat eltűnik a várakozási sorból. Ha az smbclient parancs nem tud nyomtatni, akkor átirányíthatjuk a print command kimenetét, hogy összegyűjtsük a hibakereséshez szükséges információkat: print command = /bin/cat %s >/tmp/printlog; rm %s vagy: print command = echo "printed %s on %p" >/tmp/printlog A Samba nyomtatóbeállításaival kapcsolatos gyakori hiba, hogy elfelejtjük megadni a parancsokhoz a teljes elérési utat: a

parancsok egyszerű megadása gyakran nem elég, mert a vendégfiók path beállítása nem tartalmazza ezeket. Másik gyakori hiba, hogy nincs engedélyünk a várakozó sor könyvtárának eléréséhez. Nyomtatással kapcsolatos további tudnivalók a Samba dokumentációjában (Printing.txt) olvashatók Ezen túlmenően részletes információkat tartalmaz a Unix nyomtatási rendszereiről AEleen Frisch Essential Systems Administration című könyve (kiadó: O’Reilly). 220 | SAMBA Windows ügyfél beállítása és tesztelése Miután a Samba kiszolgáló már készen áll a nyomtatásra, a Windows ügyfelet is fel kell készítenünk erre. Nézzük meg a Samba kiszolgálót a Network Neighborhood ablakban A listában szerepelniük kell a rendelkezésre álló nyomtatóknak. A 72 ábrán az lp nevű nyomtató látható. 7.2 ábra Nyomtató a Network Neighborhood ablakban Következő lépésként fel kell ismertetnünk a Windows ügyféllel a nyomtatót. Kattintsunk

kettőt a nyomtató ikonjára. Ha egy még nem telepített nyomtató ikonjára kattintunk (amint most éppen tettük), a Windows felajánlja a segítségét. Fogadjuk el ezt, hogy elinduljon a Printer Wizard (Nyomtató varázsló) A varázsló elsőként azt kérdezi, akarunk-e DOS-ból nyomtatni. Tételezzük fel, hogy nem akarunk, ezért válaszoljunk nemmel, majd kattintsunk a Next (Tovább) gombra. A varázsló ekkor megnyitja a 7.3 ábrán látható ablakot, amelyben a nyomtató gyártóját és típusát választhatjuk ki. 7.3 ábra Nyomtatók gyártója és típusa 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 221 A párbeszédablak két listában számos gyártót és típust sorol fel. Ha nem találnánk meg pontosan az általunk használt típust, de tudjuk, hogy PostScript nyomtató, akkor gyártóként válasszuk az Apple céget, típusként pedig az Apple LaserWriter nyomtatót. Ez a legtöbb alapvető PostScript képességet tartalmazza, és az egyik legmegbízhatóbb

típusnak bizonyult. Ha előzőleg már voltak telepítve PostScript nyomtatók a gépünkre, akkor kérdést kapunk arra vonatkozóan, hogy a már meglévő illesztőprogramot akarjuk-e használni, vagy le akarjuk azt cserélni. Legyünk tisztában azzal, hogy ha újabbra cseréljük az illesztőprogramot, hibásan nyomtathatnak a többi nyomtatók Ezért az javasolható, hogy addig, amíg megfelelően működnek a nyomtatóink, ne cseréljük le a régi illesztőprogramokat. Következő lépésként a Nyomtató varázsló megkérdezi a nyomtató nevét. Meghagyhatjuk az eredeti nevét, de bármely más nevet is adhatunk neki Ha például a ,,PS a Samba kiszolgálón” nevet adjuk neki, akkor tudni fogjuk, hogy melyik nyomtatón keressük a kinyomtatott dokumentumokat. Befejezésül a Nyomtató varázsló megkérdezi, hogy nyomtasson-e tesztoldalt. Ha igennel válaszolunk, akkor a varázsló a 74 ábrán látható párbeszédablakot jeleníti meg 7.4 ábra Tesztoldal nyomtatása Ha

nem sikerült kinyomtatni a tesztoldalt, akkor kattintsunk a 7.4 ábrán látható No gombra Ekkor a varázsló az ügyfél oldalán keresi a hibát Ha viszont sikerült a tesztoldal kinyomtatása, akkor gratulálhatunk magunknak. A távoli nyomtatót minden olyan alkalmazásból használhatjuk, amelyben van Fájl és Nyomtatás menü vagy parancs Nyomtató-illesztőprogramok automatikus telepítése Az előző fejezetrészben arról olvashattunk, miként konfigurálhatunk kézzel nyomtatóillesztőprogramot Windows rendszerben. Rendszergazdaként azonban nem garantálhatjuk, hogy az összes felhasználó hiba nélkül el tudja végezni ezt a műveletet. Szerencsére a Samba lehetővé teszi, hogy automatikusan telepítsük egy nyomtatóhoz az illesztőprogramját. A Sambában három olyan beállítás van, amelynek segítségével automatikusan telepíthetők nyomtató-illesztőprogramok az első alkalommal kapcsolódó ügyfeleknél. E beállí- 222 | SAMBA tások neve

printer driver, printer driver file és printer driver location. A most következő részben ezek használatáról lesz szó. Ezzel kapcsolatban további tudnivalók a Samba disztribúciós dokumentációjában, a PRINTER DRIVER.TXT fájlban olvashatók Az automatikus telepítéshez a következő négy lépést kell végrehajtani: 1. Telepítsük a nyomtató illesztőprogramjait egy Windows ügyfélnél (ehhez nem szükséges, hogy az illető nyomtató kapcsolódjon a számítógéphez) 2. A Windows gép adatai alapján készítsünk el egy nyomtatódefiníciós fájlt 3. Hozzunk létre egy PRINTER$ megosztást, ahová az illesztőprogramokat majd el fogjuk helyezni. 4. Ennek megfelelően módosítsuk a Samba konfigurációs fájlját Lássuk részleteiben a fenti lépéseket. Illesztőprogramok telepítése Windows ügyfélnél Ehhez a lépéshez Windows 95/98 rendszert kell használnunk. Az ügyfelek közül bármelyiket választhatjuk, a lényeg az, hogy be lehessen tölteni rajta

a megfelelő illesztőprogramokat Még arra sincs szükség, hogy csatlakozzon a géphez a nyomtató A My Computer (Sajátgép) ablakból nyissuk meg a nyomtatók ablakát, és kattintsunk kettőt az Add Printer (Nyomtató hozzáadása) ikonra, amint ezt a 7.5 ábra mutatja 7.5 ábra A nyomtatók ablaka Ekkor elindul az Add Printer Wizard (Nyomtató hozzáadása varázsló), amely segíti a nyomtató gyártójának és típusának kiválasztását. Arra a kérdésére, hogy akarunk-e DOSból nyomtatni, nemmel válaszoljunk A varázsló az operációs rendszert telepítő CD-ROMról betölti a szükséges illesztőprogramokat, és felajánlja tesztoldal nyomtatását Erre is nemmel válaszoljunk, és fejezzük be a varázsló futását. 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 223 Nyomtatódefiníciós fájl készítése A nyomtatódefiníciós fájlt a /usr/local/samba/bin könyvtárban lévő make printerdef szkript segítségével készíthetjük el. A szkript

használatához a Windows ügyféltől át kell másolnunk a következő négy fájlt:* C:WINDOWSINFMSPRINT.INF C:WINDOWSINFMSPRINT2.INF C:WINDOWSINFMSPRINT3.INF C:WINDOWSINFMSPRINT4.INF Miután átmásoltuk a négy fájlt, a megfelelő illesztőprogram és a hozzá tartozó .INF fájl alapján elkészíthetjük a nyomtatóinformációs fájlt. Ha az illesztőprogram neve az A–K betűk valamelyikével kezdődik, akkor az MSPRINT.INF vagy az MSPRINT3INF fájlt válasszuk. Ha az illesztőprogram neve az L–Z betűk valamelyikével kezdődik, akkor az MSPRINT2.INF vagy az MSPRINT4INF fájlt válasszuk Lehet, hogy a grep paranccsal végig kell pörgetnünk ezeket a fájlokat, hogy lássuk, hol található egy adott illesztőprogram. Az alábbi példában az illesztőprogramot az MSPRINT3.INF fájl tartalmazza, és egy HP DeskJet 560C típusú nyomtatóhoz készítjük el a nyomtatódefiníciós parancsot: $grep "HP DeskJet 560C Printer" MSPRINT.INF MSPRINT3INF MSPRINT3.INF:

"HP DeskJet 560C Printer"=DESKJETCDRV,HP DeskJet $make printerdef MSPRINT3.INF "HP DeskJet 560C Printer" >printersdef FOUND:DESKJETC.DRV End of section found CopyFiles: DESKJETC,COLOR DESKJETC Datasection: (null) Datafile: DESKJETC.DRV Driverfile: DESKJETC.DRV Helpfile: HPVDJC.HLP LanguageMonitor: (null) Copy the following files to your printer$ share location: DESKJETC.DRV HPVCM.HPM HPVIOL.DLL HPVMON.DLL HPVRES.DLL HPCOLOR.DLL HPVUI.DLL HPVDJCC.HLP colorHPDESK.ICM Figyeljük meg, hogy a szkript kéri néhány fájl átmásolását. Ezekre a következő lépésben lesz szükség. * A Windows 95 régebbi verziói csak az első két fájlt tartalmazzák. 224 | SAMBA PRINTER$ megosztás készítése A feladatnak ez a része eléggé egyszerű. Készítsünk el az smbconf fájlban egy [PRINTER$] nevű megosztást, ami a Samba kiszolgáló egyik üres könyvtárára mutat Miután ez megtörtént, másoljuk be a make printerdef szkript által kért fájlokat

a [PRINTER$] megosztás path beállításában megadott könyvtárba. A konfigurációs fájlba például az alábbi sorokat vehetjük fel: [PRINTER$] path = /usr/local/samba/print read only = yes browsable = no guest ok = yes A szkript által kért fájlok tipikusan a C:WINDOWSSYSTEM könyvtárban vannak, bár az alábbi parancsokkal is kereshetjük ezeket: cd C:WINDOWS dir fájlnév /s Esetünkben a fájlokat a Samba kiszolgáló /usr/local/samba/print könyvtárába kell átmásolnunk. Ezen túlmenően még a korábban elkészített printersdef fájlt is másoljuk át ebbe a megosztásba. Még néhány lépés, és máris készen vagyunk A Samba konfigurációs fájljának módosítása Utolsó feladatként az alábbi három beállítás felvételével módosítsuk a Samba konfigurációs fájlját: • printer driver • printer driver file • printer driver location A printer driver file a printers.def fájlra hivatkozó globális hatókörű beállítás, ezért a [global]

szakaszba vegyük fel. A másik két beállítást abba a nyomtatómegosztásba kell felvennünk, amelyet az illesztőprogramok automatikus konfigurálásához akarunk használni. A printer driver beállításhoz azt a karakterláncot (nyomtatónevet) kell rendelnünk, amely a Windows Nyomtató varázslójában olvasható A printer driver location beállítás értékeként a PRINTER$ megosztásban megadott elérési utat kell megadnunk, és nem a kiszolgálón lévő unixos elérési utat. Ezeket a következőképpen tehetjük meg: [global] printer driver file = /usr/local/samba/print/printers.def [hpdeskjet] path = /var/spool/samba/printers printable = yes printer driver = HP DeskJet 560C Printer printer driver location = \%LPRINTER$ 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 225 Most már készen állunk a tesztelésre. A Sajátgép Nyomtatók ablakában töröljük az első lépésben ,,telepített” nyomtatót. Ha a Samba megkérdezi, hogy törölje-e a fölösleges

fájlokat, akkor engedélyezzük ezt A fájlok rövidesen újra rákerülnek az ügyfélgépre A konfiguráció tesztelése Indítsuk újra a Samba démonjait, és a Network Neighborhood ablakban a számítógép neve alatt keressük meg a [hpdeskjet] megosztást. Kattintsunk kettőt a nyomtató ikonjára, hogy elinduljon a 76 ábrán látható telepítési művelet 7.6 ábra A nyomtató-illesztőprogram automatikus konfigurálása Ez most nem ugyanaz a művelet, mint amit korábban a nyomtató telepítésekor láttunk. A párbeszédablak lényegében azt kérdezi, hogy elfogadjuk-e a ,,már telepített” illesztőprogramot, vagyis azt, amit a Samba felkínál. Tartsuk meg a meglévő illesztőprogramot, és kattintsunk a Next (Tovább) gombra Most átnevezhetjük a nyomtatót, és tesztoldalt is nyomtathatunk Ha minden rendben megy, elvégeztük a nyomtató telepítését Ugyanez a művelet az összes többi Windows ügyfélnél is elvégezhető. Nyomtatás Windows ügyfél

nyomtatóján A Sambából azok a nyomtatók is elérhetők, amelyek Windows 95/98 vagy NT 4.0 rendszert használó ügyfelekhez csatlakoznak A Sambában van egy smbprint nevű eszköz, amelynek segítségével Windows alapú nyomtatókon is sorba állíthatók a nyomtatási feladatok. Ahhoz azonban, hogy ezt megtehessük, a nyomtatót megosztott erőforrásként kell beállítanunk az ügyfél gépén. Ehhez nyissuk meg a Windows Start menüjét, majd válasszuk a Beállítások és a Nyomtatók parancsot. A képernyőn megnyílik a 77 ábrán látható párbeszédablak. 226 | SAMBA 7.7 ábra A Nyomtatók párbeszédablak Jelöljünk ki egy helyileg csatlakoztatott nyomtatót (ez a példánkban a Canon nyomtató), az egér jobb oldali gombjával kattintsunk az ikonjára, és a megnyíló helyi menüben válasszuk a Share (Megosztás) parancsot. Ekkor megnyílik a nyomtató tulajdonságain belül a 7.8 ábrán látható Sharing (Megosztás) párbeszédlap Ha azt szeretnénk,

hogy a Windows vendégfelhasználója szerint a hálózatban bárki hozzáférhessen ehhez a nyomtatóhoz, akkor hagyjuk üresen a jelszó mezőjét. 7.8 ábra A nyomtató Megosztás párbeszédablaka 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 227 Miután ezzel végeztünk, felvehetjük a nyomtatót a standard nyomtatók listájába, hogy a Samba a munkacsoport összes többi PC-je számára is elérhetővé tegye. A Unix gépen történő telepítést megkönnyítik a Samba smbprint és smbprintsysv nevű szkriptjei Az első BSD stílusú nyomtatókhoz, míg a második System V nyomtatókhoz használható. BSD nyomtatók Két lépést kell elvégeznünk ahhoz, hogy egy BSD Unix felismerjen egy távoli nyomtatót: 1. Vegyünk fel az /etc/printcap fájlba egy bejegyzést a nyomtatóhoz 2. Vegyünk fel a /var/spool könyvtárba egy konfigurációs fájlt a nyomtatóhoz Első lépésként szerkesszük az /etc/printcap fájlt, és helyezzünk el benne egy bejegyzést a távoli

nyomtatóhoz. Figyeljük meg, hogy a bemeneti szűrőnek (if) az smbprint programra kell mutatnia, ha a nyomtató Windows 95/98 rendszerhez kapcsolódik Ezeket a műveleteket az alábbi sorok végzik el egy Linux gépen: laserjet: :sd=/var/spool/lpd/laser: :mx#0: :sh: :if=/usr/local/samba/bin/smbprint: # # # # spool directory maximum file size (none) surpress burst header (no) text filter Ezt követően létre kell hoznunk egy konfigurációs fájlt abban a várakozási sort tartalmazó könyvtárban, amelyet az előbb az sd beállításban adtunk meg (lehetséges, hogy el kell készítenünk ezt a könyvtárt). A fájlnak a config nevet kell adnunk, és a következő információkat kell tartalmaznia: • A nyomtatóval összekapcsolt Windows gép NetBIOS neve. • A nyomtatót jelentő szolgáltatás neve. • A szolgáltatás eléréséhez szükséges jelszó. A két utolsó adatot a Windows gépen a Megosztás párbeszédlapon adtuk meg. Esetünkben a config fájl az alábbi

három sort tartalmazza: server = phoenix service = CANON password = "" Miután ezzel is végeztünk, indítsuk újra a Samba kiszolgálót, és bármely normál unixos programból nyomtassunk ki valamit. System V nyomtatók System V Unixos rendszerből valamivel egyszerűbben küldhetünk nyomtatási feladatokat. Ehhez meg kell nyitunk a /usr/local/samba/examples/printing könyvtárban található smbprint.sysv szkriptet, és a következő módosításokat kell elvégeznünk benne: 1. Úgy módosítsuk a szkriptben a server, a service és a password beállításokat, hogy rendre a számítógép NetBIOS nevét, a megosztott nyomtatószolgáltatását és ennek a 228 | SAMBA jelszavát tartalmazzák. Az előbbi példánk adataival például így kell módosítani a beállításokat: server = phoenix service = CANON password = "" 2. Futassuk az alábbi parancsokat, amelyek az illető nyomtatóra mutató hivatkozást hoznak létre a nyomtató konfigurációs

fájljában # lpadmin -p canon printer -v /dev/null -i./smbprintsysv # enable canon printer # accept canon printer Miután ezzel elkészültünk, indítsuk újra a Samba démonjait, és bármely normál unixos programból nyomtassunk ki valamit. A hálózaton keresztül most már adatokat küldhetünk egy Windows ügyfél nyomtatójára A Samba nyomtatási beállításai A Samba nyomtatási beállításait a 7.2 táblázat foglalja össze 7.2 táblázat A nyomtatás beállítási lehetőségei Beállítás printing Paraméterek bsd, sysv, hpux, aix, qnx, plp, softq, vagy lprng printable Boolean érték (print ok) printer Karakterlánc (printer (a nyomtató name) unixos neve) printer Karakterlánc driver (a nyomtató illesztőprogramjának neve) printer Karakterlánc driver (teljes file elérési út) printer Karakterlánc driver (hálózati location elérési út) Funkció Alapértelmezett érték Hatókör A nyomtatási rendszer típusát adja meg Unix rendszerhez.

Rendszerfüggő Megosztás Nyomtatásmegosztásként jelöl meg egy megosztást. no Megosztás Megadja az ügyfelek számára megjelenítendő nyomtató nevét. Megadja annak az illesztőprogramnak a nevét, amelyet az ügyfélnek az adatok nyomtatóra küldéséhez használnia kell. Megadja a nyomtatódefiníciós fájl helyét. Rendszerfüggő Megosztás Nincs Megosztás Nincs Globális Megadja az illesztőprogramot tartalmazó megosztás elérési útját. Nincs Megosztás 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 229 7.2 táblázat folytatása Beállítás Paraméterek lpq cache Numerikus time (másodpercekben mért idő) post Boolean érték script load printers Boolean érték print command Karakterlánc (shell parancs) lpq command Karakterlánc (shell parancs) lprm command Karakterlánc (shell parancs) lppause command Karakterlánc (shell parancs) lpresume command Karakterlánc (shell parancs) printcap name (printcap) min print space

Karakterlánc (teljes elérési út) queuepause command queueresume command Funkció Alapértelmezett érték Hatókör Megadja másodpercekben azt az időt, ameddig a Samba megjegyzi magának az lpq állapotát. Az összes átküldött nyomtatási feladatot PostScript feladatnak tekinti azzal, hogy a %! karaktereket illeszti a fájlok elejére. A printcap fájlban felsorolt összes nyomtatót nyomtatómegosztásként tölti be. Megadja azt a Unix parancsot, amely elvégzi a nyomtatást. Megadja azt a Unix parancsot, amely visszaküldi a nyomtatási sor állapotát. Megadja azt a Unix parancsot, amely töröl egy feladatot a nyomtatási sorból. Megadja azt a Unix parancsot, amely szüneteltet egy nyomtatási sorban álló feladatot. Megadja azt a Unix parancsot, amely megszünteti a nyomtatási sorban álló feladat szüneteltetését. Megadja a nyomtatókonfigurációt tartalmazó fájl helyét és nevét. 10 Global no Megosztás no Globális Lásd lejjebb Megosztás

Lásd lejjebb Megosztás Lásd lejjebb Megosztás Lásd lejjebb Megosztás Lásd lejjebb Megosztás Rendszerfüggő Globális 0 Megosztás Lásd lejjebb Megosztás Lásd lejjebb Megosztás Megadja annak minimális Numerikus lemezterületnek a méretét, (méret kilobájtokban) amelynek szabadnak kell lennie a nyomtatás elvégzéséhez. Karakterlánc Megadja azt a Unix paran(shell parancs) csot, amely szüneteltet egy nyomtatási sort. Karakterlánc Megadja azt a Unix paran(shell parancs) csot, amely megszünteti egy nyomtatási sor szüneteltetését. 230 | SAMBA printing A printing beállítás a Unix nyomtatórendszeréről tájékoztatja a Sambát, jelen esetben arról, hogy nyomtatási elemzőprogramot kell használnia. A Unixban számos különböző paranccsal vezérelhető a nyomtatás. Közülük a Samba a 73 táblázatban felsorolt nyomtatási típusokat támogatja 7.3 táblázat Nyomtatási típusok Változó Meghatározás BSD SYSV AIX HPUX QNX

LPRNG SOFTQ PLP Berkeley Unix rendszer System V AIX operációs rendszer (IBM) Hewlett-Packard Unix QNX Realtime Operating System (QNX) LPR Next Generation (Powell) SOFTQ rendszer Portable Line Printer (Powell) A beállításhoz a fenti nyolc változó valamelyikét kell rendelni, mint például: printing = SYSV A beállításhoz tartozó alapértelmezés szerinti érték rendszerfüggő, és a Samba első lefordításakor kell megadni. A konfigurációs szkript a legtöbb rendszerben automatikusan észleli a rendszer által használt nyomtatórendszert, és ennek megfelelően konfigurálja a Samba make-fájlját. Ha viszont a rendszerünk PLP, LPRNG vagy QNX nyomtatórendszert használ, akkor ezt külön meg kell adnunk a make-fájlban vagy a nyomtatómegosztásban. A leggyakoribb nyomtatórendszerek a BSD és a SYSV. Egy BSD Unix kiszolgálón a nyomtatókat a nyomtatókonfigurációt tartalmazó fájl írja le, ami alapesetben az /etc/printcap fájl. A printing beállítás

megadásakor automatikusan értéket kap legalább három másik nyomtatási beállítás is: a print command, az lpq command és az lprm. Ha olyan rendszeren fut a Samba, amely a felsorolt nyomtatási stílusok egyikét sem támogatja, akkor ezekhez a beállításokhoz kézzel kell értéket rendelnünk. printable A printable beállításhoz a yes értéket kell rendelni, hogy jelezzük, a megosztás nyomtatóhoz tartozik. Ha nem így tennénk, akkor a Samba lemezmegosztásnak tekintené a megosztást A beállítást így használhatjuk: [printer1] printable = yes 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 231 printer Ez a beállítás, amit néha printer name alakban is használnak, azt a kiszolgálóhoz csatlakozó nyomtatót adja meg, amelyikre a megosztás mutat. A beállításhoz alapértelmezés szerint nem tartozik érték, ezért külön meg kell adnunk a konfigurációs fájlban, annak ellenére, hogy a Unix rendszerek gyakran maguk is felismernek alapbeállítás

szerinti neveket, mint amilyen például egy nyomtató lp neve. Például: [deskjet] printer = hpdkjet1 printer driver A printer driver beállítás azt a karakterláncot tartalmazza, amelyikkel a Samba azonosítja a nyomtatót a Windows ügyfél felé. Ha a megfelelő karakterláncot rendeljük ehhez a beállításhoz, akkor a Windows Nyomtató varázslója már tudni fogja, hogy melyik nyomtatóról van szó. Ezzel a felhasználó számára megkönnyíti a telepítését, mert eggyel kevesebb párbeszédablakon kell áthaladnia A karakterláncnak pontosan meg kell egyeznie azzal a karakterlánccal, amit a Nyomtató varázsló az ablakában megjelenít (lásd a 7.9 ábrát) Így például az Apple LaserWriter nyomtatóhoz az Apple LaserWriter; a Hewlett Packard Deskjet 560C nyomtatóhoz pedig a HP DeskJet 560C Printer karakterlánc tartozik. 7.9 ábra A Nyomtató hozzáadása varázsló párbeszédablaka Windows 98 rendszerben A fejezet korábbi, ,,Nyomtató-illesztőprogramok

automatikus telepítése” című részében olvashattunk részletesebben az illesztőprogramok automatikus telepítéséről. 232 | SAMBA printer driver file Ez a globális hatókörű beállítás a Windows 95/98 nyomtató-illesztőprogramjait tároló definíciós fájl helyét adja meg. Erre a Samba nyomtatóját használó ügyfeleknek van szükségük A beállításhoz alapértelmezés szerint a /usr/local/samba/lib/printersdef fájl tartozik Ezt az alábbi módon felülbírálhatjuk: [deskjet] printer driver file = /var/printers/printers.def Erről a beállításról részletesebben a fejezet korábbi, ,,Nyomtató-illesztőprogramok automatikus telepítése” című részében olvashattunk. printer driver location Ez a beállítás a Windows 95 és 98 nyomtató-illesztőprogramjait és definíciós fájljait tartalmazó megosztást adja meg. A beállításhoz alapértelmezés szerint nem tartozik semmilyen érték. A fájlok helyének megadásához hálózati elérési

utat kell specifikálni Általános gyakorlat, hogy egy saját gépen lévő megosztást adnak meg az alábbiak szerint: [deskjet] printer driver location = \%LPRINTER$ Erről a beállításról részletesebben a fejezet korábbi, ,,Nyomtató-illesztőprogramok automatikus telepítése” című részében olvashattunk. lpq cache time A globális hatókörű lpq cache time beállítással azt a másodpercekben mért időtartamot adhatjuk meg, amennyi ideig a Samba emlékezik a nyomtató aktuális állapotára. A megadott időtartam eltelte után a Samba egy lpq parancsot ad ki (vagy azt a parancsot, amit az lpq command beállításhoz rendeltünk), hogy bekérje a friss állapotot. Az időtartam alapértelmezés szerinti hossza 10 másodperc, de ez megnövelhető, ha az lpq parancs végrehajtásához túlságosan hosszú időre lenne szükség, vagy ha sok ügyféllel van dolgunk Az alábbi példában 30 másodpercet rendeltünk ehhez a beállításhoz: [deskjet] lpq cache time = 30

postscript A postscript beállítás segítségével arra utasíthatjuk a nyomtatót, hogy a rá küldött adatokat PostScript adatoknak tekintse. Ezt azzal éri el, hogy az egyes nyomtatási feladatok első sora elé beszúr egy %! karakterpárt. Ezt általában PC-s dokumentumoknál kell használni, amelyek egy ^D (control-D vagy EOF) karaktert helyeznek el egy PostScript fájl első sora elé Ettől egy nem PostScript nyomtatóból természetesen még nem lesz PostScript nyomtató. A beállításhoz alapértelmezés szerint a no érték tartozik, amit azonban felülbírálhatunk: [deskjet] postscript = yes 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 233 print command, lpq command, lprm command, lppause command, lpresume command Ezekben a beállításokban azt közölhetjük a Sambával, hogy milyen Unix parancsokat használjon a nyomtatandó adatok vezérléséhez és nyomtatóra küldéséhez. A vonatkozó Unix parancsok: lpr (send to Liner PRinter = küldés a

sornyomtatóra), lpq (list Printer Queue = nyomtatási sor listázása), lprm (Line printer ReMove = törlés a sornyomtatóról), valamint a nem kötelező lppause (nyomtatás szüneteltetése) és az lpresume (nyomtatás újbóli felvétele). A Samba lehetővé teszi, hogy felülbíráljuk a rendszer alapértelmezett értékeit, például a következő módon: lpq command = /usr/ucb/lpq %p A fenti bejegyzés megadásával az lpq command beállítás a /usr/ucb/lpq parancsot fogja használni. Ehhez hasonlóan az lprm command = /usr/local/lprm -P%p %j bejegyzést felvéve a Samba a /usr/local/lprm parancsot fogja használni a nyomtatási feladat törléséhez. A nyomtatási feladat számát a %j változó tárolja A fenti beállításokhoz tartozó alapértelmezés szerinti parancsok a printing option beállításban megadott értéktől függnek. A 74 táblázat a printing option különböző beállításaihoz tartozó alapértelmezett parancsokat foglalja össze Legszélesebb

körben a BSD nyomtatórendszert használják. 7.4 táblázat Különböző nyomtatórendszerekhez tartozó alapértelmezett parancsok Beállítás BSD, AIX, PLP, LPRNG SYSV, HPUX QNX SOFTQ print command lpr -r -P%p %s lpq -P%p lprm -P%p %j lp -i %p-%j -H hold (csak SYSV) lp -i %p-%j -H resume (csak SYSV) lp -c -d%p %s; rm %s lpstat -o%p cancel %p-%j Nincs lp -r -P%p %s lpq -P%p cancel %p-%j Nincs lp -d%p -s %s; rm %s lpstat -o%p cancel %p-%j Nincs Nincs Nincs qstat -s -j%j -r lpq command lprm command lppause command lpresume command A Sambában általában nem kell átállítani ezeket a beállításokat, kivéve esetleg a print command beállítást. Ezt a beállítást kifejezetten meg kell adni, ha a nyomtatórendszer a nyomtatási parancsban nem fogadja el az -r (törlés nyomtatás után) parancsot. Például: /usr/local/lpr -P%p %s; /bin/rm %s 234 | SAMBA Némi programozási ismeret birtokában az smb.conf fájl e beállításait hibakereséshez is

használhatjuk: print command = cat %s >/tmp/printlog; lpr -r -P%p %s Ezzel a beállítással például megvizsgálhatjuk, hogy a fájlok egyáltalán átkerültek-e a Samba kiszolgálóra. Amennyiben igen, akkor a tartalmuk megtekinthető a /tmp/printlog fájlban A BSD után a második legelterjedtebb nyomtatási rendszer a SYSV (vagy System V), valamint ezek változatai az IBM AIX és a Hewlett-Packard HP-UX rendszeréhez. Ezekben a rendszerekben nincs /etc/printcap fájl. Itt a printcap file beállításhoz hozzárendelhetünk egy alkalmas lpstat parancsot, és a Samba ebből a parancsból olvassa el a nyomtatók listáját Ehelyett azt is megtehetjük, hogy a globális hatókörű printcap name beállításhoz egy ,,hamis” printcap fájlt rendelünk Utóbbi esetben azonban ennek a fájlnak az alábbiakhoz hasonló sorokat kell tartalmaznia: lp|print1|My Printer 1 print2|My Printer 2 print3|My Printer 3 Mindegyik sor megnevez egy nyomtatót, és álneveket is megad hozzá. Az

első nyomtatónak lp a neve, az álnevei pedig print1 és My Printer 1 A felhasználó tetszése szerint választhat közülük. A Samba az ezzel a nyomtatóval kapcsolatos parancsokban a %p változó helyén mindig az első nevet fogja használni A Samba még a következő két nyomtatási típust is támogatja: LPRNG (LPR New Generation) és PLP (Public Line Printer) Ezek nyilvános és nyitott kódú nyomtatórendszerek, és sok helyen arra használják, hogy kijavítsák a kereskedelemben kapható szoftverek hibáit. Ezek mellett a Samba még az SOFTQ és a QNX valós idejű operációs rendszereket is támogatja. load printers A load printers beállítással azt írhatjuk elő, hogy a Samba az összes ismert nyomtatónévhez hozzon létre megosztásokat, és töltse be ezeket a tallózólistába. A Samba az /etc/printcap (vagy amit a rendszer használ) fájlban felsorolt nyomtatónevekhez hozza létre a megosztásokat. Ha a printcap fájl például az alábbiakat tartalmazza:*

lp: :sd=/var/spool/lpd/lp: :mx#0: :sh: :lp=/dev/lp1: :if=/var/spool/lpd/lp/filter: # # # # # * A megjegyzéseket a könnyebb érthetőség céljából írtuk be. várakozási sor könyvtára maximális fájlméret (nulla) burst header elnyomása (nem) kiviteli eszköz neve szöveg szűrője 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS laser: :sd=/var/spool/lpd/laser: :mx#0: :sh: :lp=/dev/laser: :if=/var/spool/lpd/lp/filter: # # # # # | 235 várakozási sor könyvtára maximális fájlméret (nulla) burst header elnyomása (nem) kiviteli eszköz neve szöveg szűrője és előírtuk, hogy load printers = yes akkor automatikusan létrejön és érvényes lesz az [lp] és a [laser] megosztás, amikor elindítjuk a Sambát. Mindkét megosztás a [printers] szakaszban megadott beállításoknak megfelelően konfigurálja magát, és megjelenik a Samba kiszolgáló tallózólistájában printcap name Ha tartalmazza egy nyomtatómegosztás a printcap name beállítást (amit

esetenként printcap alakban is írnak), akkor a Samba az ebben a beállításban megadott fájlt használja a nyomtatóbeállítások fájljaként. Ez a fájl általában az /etc/printcap fájl, de másik fájlt is megadhatunk, ami például csak azokat a nyomtatókat tartalmazza, amelyekre engedélyezzük a hálózaton keresztüli hozzáférést. A fájlt a teljes elérési útjával kell megadni: [deskjet] printcap name = /usr/local/printcap min print space Ezzel a beállítással a nyomtatáshoz szükséges minimális lemezterület méretét adhatjuk meg. A 0 érték hozzárendelésével kikapcsoljuk a lemezterület vizsgálatát, ha pedig valamilyen más számot adunk meg, akkor a rendszer ennek megfelelő lemezterületet foglal le (kilobájtokban). A beállítás felvételével megakadályozhatjuk, hogy nyomtatási feladatok tömege foglalja le a merevlemez még üres területét, mert ez akadályozná más folyamatok futását. [deskjet] min print space = 4000 queuepause

command Ebben a beállításban azt a parancsot írhatjuk elő, amelyet a Sambának a teljes várakozási sor szüneteltetéséhez kell kiadnia. Az alapértelmezett érték a választott nyomtatási típustól függ Általában nincs szükség a módosítására queueresume command Ebben a beállításban azt a parancsot írhatjuk elő, amelyet a Sambának a teljes várakozási sor szüneteltetésének megszüntetéséhez kell kiadnia. Az alapértelmezett érték a választott nyomtatási típustól függ. Általában nincs szükség a módosítására 236 | SAMBA Névfeloldás a Sambában Mielőtt megszületett a NetBIOS névkiszolgáló (NBNS), a névfeloldás teljes mértékben üzenetszórásos (broadcast) eljárással történt. Ha szükségünk volt egy gép nevére, akkor egyszerűen ,,szétkürtöltük” a nevét a hálózatban, és – elméletileg – válaszolt a gép. Ez az eljárás ma is használható, és ha bárki keresne például egy fred nevű gépet,

továbbra is küldhet ilyen üzenetet, és megtudhatja, létezik-e ilyen nevű gép, és mi az IP címe. (Az eljárást a 9. fejezetben, a Samba névszolgáltatásának nmblookup paranccsal elvégezhető hibakereséséhez fogjuk használni.) Amint az első fejezetben láttuk, az ilyen üzenetszórás – legyen szó akár tallózásról, akár névregisztrálásról és feloldásról – nem túlságosan egyszerű, ha több alhálózatból áll a hálózat. Emellett a túl sok üzenetszórás nagyon le is terheli a hálózatokat A probléma megoldásához a Microsoft kifejlesztette a WINS (Windows Internet Naming Service) protokollt, ami alhálózatok között végzi el a névfeloldást, és amit a Samba is támogat. Ezt a protokollt használva a rendszergazda kijelölhet egy számítógépet, ami WINS kiszolgálóként működik, és a névfeloldást kérő ügyfelek számára megadhatja ennek a WINS kiszolgálónak a nevét. Ebből következik, hogy a névregisztrálási és

névfeloldási kérelmek a hálózat bármely pontjáról egyetlen gépre irányíthatók, és nincs szükség a szétküldésükre. A névfeloldáshoz a WINS és a szétszórásos eljárás mellett még más eljárások is léteznek. A Samba jelenleg az alábbi négy eljárást ismeri: • WINS; • üzenetszórás (broadcasting); • Unix /etc/hosts vagy NIS/NIS+ az ezekhez illeszkedők; • LMHOSTS fájl. A Samba a name resolve order beállításban megadott sorrend szerint választja ki a szükséges eljárást. Mielőtt azonban rátérnénk az egyes beállítások jelentésére, nézzük meg, mit is takar az eddigiekben még nem ismeretetett LMHOSTS fájl. A LMHOSTS fájl Az LMHOSTS fájl a LAN Manager hostfájlja, amit IP címekre történő névfeloldáshoz használ, csakúgy, mint a Unix rendszerek /etc/hosts fájlja. Alapértelmezés szerint a Samba ezt a /usr/local/samba/lib/LMHOSTS helyen és néven tárolja. A fájl felépítése hasonlít az /etc/hosts fájl

felépítéséhez. Például: 192.168220100 192.168220101 hydra phoenix Az egyetlen különbség az, hogy a bejegyzések jobb oldalán álló nevek NetBIOS, és nem DNS nevek. Miután ezek NetBIOS nevek, erőforrástípust is megadhatunk hozzájuk: 192.168220100 192.168220100 192.168220101 hydra#20 simple#1b phoenix#20 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 237 A fenti példában azzal, hogy a második sorban a hydra IP címe után beírtuk az <1B> erőforrástípust, a hydra gépet jelöltük ki a SIMPLE tartomány elsődleges tartományvezérlőjévé. A másik gép normál munkaállomás Ha nem az alapértelmezés szerinti helyére akarjuk tenni az LMHOSTS fájlt, akkor erről az nmbd démont az indításakor az alábbi módon értesítenünk kell: nmbd -H /etc/samba/lmhosts -D A Samba beállítása másik WINS kiszolgáló használatához A Sambának egyszerűen megmondhatjuk, hogy a hálózat valamelyik másik WINS kiszolgálóját használja. Ehhez mindössze

annyit kell tennünk, hogy a wins server beállításhoz hozzárendeljük a WINS kiszolgáló IP címét az alábbi módon: [global] wins server = 192.168200122 Ekkor a Samba az összes WINS kérést a 192.168200122 című kiszolgálóra irányítja át Mivel a kérelmeket egyetlen gépre irányítottuk át, nem kell aggódnunk a broadcast típusú üzenetekkel kapcsolatos problémák miatt. Ugyanakkor viszont, bár a konfigurációs fájlban megadtuk egy WINS kiszolgáló IP címét, nem biztos, hogy a Samba ezt az eljárást fogja használni a névfeloldáshoz. Azt, hogy a Samba a lehetséges eljárások közül milyen sorrendiséget válasszon, a name resolve order beállításban megadott sorrend dönti el. A beállításra rövidesen visszatérünk. Ha az egyik alhálózatban olyan Samba kiszolgálónk van, amelyik továbbra is az üzenetszórást használja a névfeloldáshoz, és a kiszolgáló ismeri egy másik alhálózatban levő WINS kiszolgáló helyét, akkor a wins proxy

beállítás felvételével úgy konfigurálhatjuk a Samba kiszolgálót, hogy arra irányítsa át a névfeloldási kéréseket: [global] wins server = 192.16820012 wins proxy = yes Ezt a megoldást azonban csak akkor válasszuk, ha a WINS kiszolgáló másik alhálózatban van. Ellenkező esetben az üzenetszórás amúgy is elérné a WINS kiszolgálót A Samba konfigurálása WINS kiszolgálóként Ahhoz, hogy a Samba WINS kiszolgálóként működhessen, az alábbi két, globális hatókörű beállítást kell felvennünk a konfigurációs fájlba: [global] wins support = yes name resolve order = wins lmhosts hosts bcast 238 | SAMBA Ha felvesszük a konfigurációs fájlba a wins support beállítást, a Samba kiszolgálóból máris WINS kiszolgáló lesz. Akár hisszük, akár nem, mindössze ennyi a teendő! A Samba az összes többi részletmunkát a háttérben végzi, és nem terheli még ezzel is a rendszergazdákat. A wins support = yes és a wins server

beállítások egymást kölcsönösen kizárják, vagyis egyidejűleg nem tehetjük meg, hogy egyrészt WINS kiszolgálóvá léptetjük elő a Sambát, másrészt egy másik kiszolgáló nevét is megadjuk. Ha a Samba WINS kiszolgálóként működik, akkor tisztában kell lennünk az előbb említett name resolve order beállítás jelentésével. Ebben a beállításban azt adhatjuk meg, hogy milyen sorrendben próbálkozzon a Samba a különböző névfeloldási eljárásokkal. A beállítás négy különböző értéket vehet fel: lmhosts A LAN Manager LMHOSTS fájlját használó eljárás. hosts A Unix rendszer standard névfeloldási eljárásait használja: /etc/hosts, DNS, NIS vagy ezek kombinációja (a rendszer konfigurálásától függően). wins WINS kiszolgálót használ. bcast Az üzenetszórásos (broadcast) eljárást használja. A Samba WINS kiszolgálóként a megadott sorrendben próbálkozik a különböző eljárásokkal. Lássuk például az előbbiekben

megadott sorrendet: name resolve order = wins lmhosts hosts bcast Ebben az esetben a Samba először a WINS bejegyzéseit használja a névfeloldáshoz, majd a LAN Manager LMHOSTS fájlját. A sorban következő hosts érték arra utasítja, hogy a Unix névfeloldó eljárásait használja. A hosts szó esetleg félrevezető lehet: nem csak az /etc/hosts fájlt jelenti, hanem a DNS vagy a NIS használatát is (ahogyan a Unix gazdagép konfigurálva van). Utoljára, ha a három eljárás egyike sem vezetne eredményre, a broadcast eljárást használja a megfelelő gép megtalálásához Végül a WINS kiszolgálóként működő Samba kiszolgálót arra is utasíthatjuk, hogy a rendszer DNS kiszolgálójának segítségét kérje, ha egy keresett gazdagép nem található a WINS adatbázisában. Egy tipikus Linux rendszerben például az /etc/resolvconf fájlban találhatjuk meg a DNS kiszolgáló IP címét. A fájlban például az alábbi bejegyzések lehetnek: nameserver 127.001

nameserver 192.168200192 Ezek a sorok arról adnak tájékoztatást, hogy a DNS kiszolgálónak 192.168200192 az IP címe. (A 127001 a localhost cím, ami sohasem lehet DNS kiszolgáló címe) 7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 239 A dns proxy beállítás segítségével értesíthetjük arról a Sambát, hogy a konfigurált DNS kiszolgálóhoz forduljon névfeloldási kérésekkel. [global] wins support = yes name resolve order = wins lmhosts hosts bcast dns proxy = yes A névfeloldás beállítási lehetőségei A Samba WINS kiszolgálóval kapcsolatos beállításait a 7.5 táblázat sorolja fel 7.5 táblázat Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör wins support Boolean érték no Globális wins server Karakterlánc (IP cím vagy DNS név) Nincs Globális wins proxy Boolean érték no Globális dns proxy Boolean érték no Globális name resolve order max ttl lmhosts, hosts, wins vagy bcast Numerikus lmhosts hosts

wins bcast Globális 259200 (3 nap) Globális max wins ttl Numerikus 518400 (6 nap) Globális min wins ttl Numerikus Ha yes az értéke, a Samba WINS kiszolgálóként működik. Azonosítja azt a WINS kiszolgálót, amelyet a Samba névregisztráláshoz és névfeloldáshoz használ. Lehetővé teszi, hogy a Samba másik alhálózat WINS kiszolgálójának helyettesítőjeként (proxy) működjön. Ha yes az értéke, a Samba WINS kiszolgáló a DNS kiszolgálóhoz fordul, ha nem talál egy nevet a WINS-ben. Megadja a NetBIOS nevek feloldásához használandó eljárások sorrendjét. Megadja a kért NetBIOS nevek élettartamát (time-tolive) másodpercekben. A Samba mint WINS kiszolgáló által kiadott NetBIOS nevek maximális élettartamát adja meg másodpercekben. A Samba mint WINS kiszolgáló által kiadott NetBIOS nevek minimális élettartamát adja meg másodpercekben. 21600 (6 óra) Globális 240 | SAMBA wins support A Samba a hálózathoz csatlakozó

összes gép számára elvégzi a WINS névfeloldást, ha az smb.conf fájl [global] szakaszába felvesszük az alábbi beállítást: [global] wins support = yes A beállításhoz alapértelmezés szerint a no érték tartozik, lehetővé téve, hogy egy Windows NT gép legyen a WINS kiszolgáló. Mielőtt átírnánk ezt az értéket, ne feledkezzünk meg arról, hogy a Samba WINS kiszolgálóként nem tud adatokat cserélni tartalék WINS kiszolgálókkal. Ez a beállítás és a wins server beállítás kölcsönösen kizárják egymást; ha mindkettőt engedélyeznénk, a Samba hibaüzenetet küldene wins server Ha a konfigurációs fájlba felvesszük ezt a beállítást, akkor a Samba a hálózatban egy létező WINS kiszolgálótól fogja kérni a névfeloldást. A beállításhoz vagy egy IP cím, vagy a WINS kiszolgáló DNS neve (és nem a NetBIOS neve) tartozhat. Például: [global] wins server = 192.168220110 vagy [global] wins server = wins.examplecom Ahhoz, hogy ezt a

beállítást használhassuk, a wins support beállításhoz a no értéket kell rendelnünk (ez az alapértelmezett). Ellenkező esetben a Samba hibát jelez A beállításban csak egyetlen WINS kiszolgáló adható meg. wins proxy Ez a beállítás lehetővé teszi, hogy a Samba másik WINS kiszolgálót helyettesítsen, és a hozzá érkező névfeloldási kéréseket a tényleges WINS kiszolgálóra irányítsa át, amely gyakran egy másik alhálózatban található. A WINS kiszolgáló a wins server beállításban adható meg. A WINS kiszolgáló válaszait a helyettesítő kiszolgáló küldi vissza a kérő félnek Ha engedélyezni szeretnénk ezt a lehetőséget, akkor a [global] szakaszba vegyük fel a az alábbi sort: [global] wins proxy = yes dns proxy Ha igénybe szeretnénk venni a DNS (tartománynév-kiszolgáló) szolgáltatását abban az esetben, ha egy nevet nem sikerült megtalálni a WINS-ben, akkor vegyük fel az alábbi beállítást: [global] dns proxy = yes

7. FEJEZET NYOMTATÁS ÉS NÉVFELOLDÁS | 241 Ezzel azt írjuk elő, hogy az nmdb a kiszolgáló standard tartománynév-szolgáltatójától kérje a gépek nevének keresését. Ha nem vagyunk állandó kapcsolatban egy DNS kiszolgálóval, akkor ne éljünk ezzel a lehetőséggel Ettől eltekintve azonban ajánlható, hogy használjunk WINS kiszolgálót Ha még egyetlen WINS kiszolgáló sem működik a hálózatban, akkor az egyik Samba gépet jelöljük ehhez. Két Samba gépet azonban ne tegyünk WINS kiszolgálóvá (egyet elsődlegessé és egyet tartalékká), mert ezek jelenleg nem képesek a WINS adatbázisok kicserélésére. name resolve order A globális hatókörű name resolve order beálltásban azt írhatjuk elő, hogy a Samba milyen sorrendben próbálkozzon különböző névfeloldási eljárásokkal. Az alapértelmezés szerinti sorrend: LMHOSTS fájl, standard Unix eljárások (/etc/hosts, DNS és NIS vagy ezek kombinációja), WINS kiszolgáló és

üzenetszórás (broadcast). Ezt az alapértelmezés szerinti sorrendet azonban például az alábbiak szerint átírhatjuk: [global] name resolve order = lmhosts wins hosts bcast Ekkor a Samba az itt megadott sorrend szerint próbálkozik a különböző eljárásokkal. Nincs szükség mind a négy eljárás megadására. A beállításról részletesebben a fejezet korábbi, ,,A Samba konfigurálása WINS kiszolgálóként” című fejezetében volt szó. max ttl Ezzel a beállítással azt a maximális élettartamot (time-to-live) írhatjuk elő, ameddig egy Samba kiszolgálón regisztrált NetBIOS névnek aktívnak kell maradnia. A beállítás alapértelmezett értékét sohasem kell megváltoztatnunk max wins ttl Ezzel a beállítással azt a maximális élettartamot (time-to-live) írhatjuk elő, ameddig egy WINS kiszolgálón feloldott NetBIOS névnek aktívnak kell maradnia. A beállítás alapértelmezett értékét sohasem kell megváltoztatnunk min wins ttl Ez a

beállítás azt a minimális élettartamot adja meg, ameddig egy WINS kiszolgálón feloldott NetBIOS névnek aktívnak kell maradnia. A beállítás alapértelmezett értékét sohasem kell megváltoztatnunk. Különleges Samba ismeretek Ebben a fejezetben, amelyben egyúttal lezárjuk az smb.conf fájllal kapcsolatos vizsgálatainkat, néhány érdekes beállítást mutatunk be, amelyekkel nem szokványos feladatokat végezhetünk el. Röviden kitérünk arra, hogyan támogathatjuk a programozók munkáját, miként tehetjük ,,nemzetközivé” a Sambát, hogyan kezelhetünk üzeneteket, és javíthatunk ki néhány windowsbeli hibát. Az esetek többségében ezeket a beállításokat csak különleges körülmények között kell használnunk. A fejezet végén arról szólunk, miként készíthetünk biztonsági másolatokat a Samba smbtar programjával. Ennyit elöljáróban, és most lássuk, hogyan segíthetjük a programozók munkáját. A programozók segítése Ha

programozók is hozzáférhetnek a Samba kiszolgálónkhoz, akkor legyünk tisztában a 8.1 táblázatban felsorolt beállítások szerepével 8.1 táblázat Programozási beállítási lehetőségek Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör time server Boolean érték Ha yes az értéke, az nmbd saját maga jelentkezik be SMB időszolgáltatóként a Windows ügyfelek számára. A megadott számú percet hozzáadja a jelentett időhöz. Nem fájltulajdonosoknak is engedélyezi, hogy módosítsák a fájl idejét, ha van joguk írni a fájlba. A fájlok idejét a legközelebbi páros másodpercre kerekíti fel. Beállítja a könyvtáridőket, hogy elhárítsa az MS nmake hibáját. no Globális 0 Globális no Megosztás no Megosztás no Megosztás time Numerikus offset (percek) dos file- Boolean érték times dos file- Boolean érték time resolution fake Boolean érték directory create times 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK

| 243 Időszinkronizálás A programozók számára nagyon fontos lehet az idő szinkronizálása. Gondoljuk végig az alábbi beállításokat: time server = yes dos filetimes = yes fake directory create times = yes dos filetime resolution = yes delete readonly = yes Ha felvesszük ezeket a beállításokat, akkor a Samba megosztásai a Visual C++, az nmake és más Microsoft programozói eszköz által elvárt formátumban szolgáltatják a fájlidőket. Ellenkező esetben a PC-s make programok arra gondolhatnak, hogy egy könyvtár összes fájlját újra le kell fordítaniuk. Nyilvánvaló, hogy nem ez a célunk time server Ha a Samba kiszolgálónknak pontos az órája, vagy ha a kiszolgáló a unixos hálózati időkiszolgálók valamelyikének az ügyfele, akkor a time server beállítás alábbi megadásával arra utasíthatjuk, hogy saját magát jelentse be SMB időkiszolgálóként: [global] time server = yes Az ügyfél az alábbi DOS parancs megadásával is

lekérdezheti a helyes időt, ha a kiszolgáló helyére a Samba kiszolgáló nevét írja be: C:NET TIME \kiszolgáló /YES /SET Ezt a parancsot egy Windows bejelentkezési szkriptbe is bevehetjük (lásd a ,,Felhasználók, biztonság és tartományok” című 6. fejezetet) Alapértelmezés szerint a time server beállításhoz a no érték tartozik. Ha bekapcsoljuk ezt a szolgáltatást, akkor a fenti paranccsal megakadályozhatjuk, hogy más időt mutassanak az ügyfelek Az időszinkronizálás nagyon fontos olyan ügyfeleknél, akik make vagy ehhez hasonló programokat használnak – az ilyen programok ugyanis a fájlok utolsó módosításának idejétől függően végzik el az újrafordításukat. A helytelenül szinkronizált idő miatt az ilyen programok vagy újrafordítják a könyvtárban lévő fájlokat, ami időveszteség, vagy ellenkezőleg, nem fordítják újra az éppen módosított fájlokat, mert egy kicsit késik az órájuk. time offset Azon ügyfelek

számára, akik nem használják helyesen a téli/nyári időszámításra való áttérést, a Samba a time offset beállítást kínálja. Ha bekapcsoljuk ezt a lehetőséget, akkor a Samba a megadott számú percet hozzáadja az aktuális időhöz. Erre akkor lehet szükségünk, ha történetesen Új-Fundlandon lennénk, mert a Windows nem tudja, hogy ott 30 perces az időeltolódás: 244 | SAMBA [global] time offset = 30 dos filetimes Unix rendszerben hagyományosan csak egy rootfelhasználó és a fájl tulajdonosa változtathatja meg a fájl utolsó módosítási idejét. A megosztás szintű dos filetimes beállítás azonban lehetővé teszi, hogy a Samba kiszolgáló lemásolja egy DOS/Windows rendszerű gép jellemzőit: bárki olyan felhasználó megváltoztathatja az adott megosztásban egy fájl utolsó módosítási idejét, akinek írási joga van az adott fájlhoz. A Samba a rootjogosultságait használja ahhoz, hogy módosítani lehessen a fájl időbélyegén

Alapbeállítás szerint ez a lehetőség tiltva van. Gyakran szükség lehet azonban az engedélyezésére, hogy a PC-s make programok megfelelően működhessenek E nélkül ugyanis maguk a programok nem tudnák megváltoztatni az utolsó módosítás dátumát Emiatt viszont gyakran azt hihetnék, hogy akkor is újra kellene fordítaniuk a fájlokat, amikor erre nem lenne szükség. dos filetime resolution Ha ehhez a megosztás szintű beállításhoz a yes értéket rendeljük, a Samba a fájlidőket a legközelebbi két másodpercen belül a páros értékre kerekíti. A beállítás segítségével elkerülhetők az olyan windowsos hibák, amelyek megakadályozzák a Visual C++ programot abban, hogy észleljék, ha nem változott egy fájl. Ezt a lehetőséget az alábbi módon engedélyezhetjük: [data] dos filetime resolution = yes Csak akkor javasolható ennek a beállításnak a használata, ha egy Samba megosztásban Visual C++ programmal dolgozunk, amely támogatja az

opportunista zárolást. fake directory create times A fake directory create times beállításra azért van szükség, hogy biztosítani lehessen a PC-s make programok működését. A VFAT és az NTFS fájlrendszerek feljegyzik egy adott könyvtár létrehozásának idejét, míg a Unix ezt nem teszi meg. Ha nem használnánk ezt a beállítást, akkor a Samba az általa ismert legrégebben feljegyzett dátumot rendelné a könyvtárhoz (ami gyakran egy fájl utolsó módosítási dátuma), és ezt küldené viszsza az ügyfélnek Ha ez nem lenne megfelelő, akkor vegyük fel az alábbi beállítást egy megosztás definíciójába: [data] fake directory create times = yes Ha használjuk ezt a beállítást, akkor a Samba a könyvtár létrehozásának idejeként a hardverbe bekódolt 1980. január 1-jei dátumot adná meg Ezzel elsősorban a Visual C++ nmake programja győzhető meg arról, hogy a build könyvtáraiban lévő object fájlok valóban újabb keletűek, mint a

könyvtár létrehozási dátuma, ezért újra kell fordítani őket. 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 245 Mágikus szkriptek Az alábbi beállítások a Samba kiszolgáló mágikus szkriptjeivel kapcsolatosak. A mágikus szkriptek programokat futtatnak egy Unix gépen, amelyek kimenetét átirányítják az SMB ügyfélre. Ez az eljárás lényegében véve nem más, mint valamiféle bizonytalan kísérletezés Ennek ellenére egyes programozók mégis így próbálnak meggyőződni a programjuk helyes működéséről. A mágikus szkriptek azonban nem megbízhatók, és a Samba fejlesztői kifejezetten óvnak mindenkit a használatuktól. További információk a 82 táblázatban olvashatók 8.2 táblázat Mágikus szkriptek beállítási lehetőségei Beállítás Paraméterek magic script Karakterlánc Megadja annak a fájlnak a (fájlnév a teljes nevét, amelyet a Sambának elérési úttal) végre kell hajtania, amikor a felhasználó bezárta azt. Megadja

annak a fájlnak a Karakterlánc (fájlnév a teljes nevét, amelybe a mágikus fájl kimenete kerül. elérési úttal) magic output Funkció Alapértelmezett érték Hatókör Nincs Megosztás szkriptnév.out Megosztás magic script Ha a magic script beállításhoz hozzá van rendelve fájlnév, és az ügyfél abban a megosztásban létrehoz egy ilyen nevű fájlt, akkor a Samba azonnal lefuttatja azt, mihelyt megnyitotta és bezárta azt az ügyfél. Tegyük fel, hogy az alábbi bejegyzést tartalmazza az [accounting] megosztás: [accounting] magic script = tally.sh A Samba állandóan figyelemmel kíséri a megosztásban lévő fájlokat. Ha a tallysh nevű fájlt bezárta egy felhasználó (miután előtte megnyitotta), a Samba a fájl tartalmát helyileg végrehajtja. A fájlt végrehajtásra átadja egy héjprogramnak, ezért a fájlnak szabályos Unix shell szkriptnek kell lennie. Ez azt jelenti, hogy a sorait újsor karakterrel kell lezárni, nem pedig a Windowsban

szokásos kocsivissza/soremelés karakterpárral. Emellett még ajánlatos a #! direktívát is beírni a fájl elejére, jelezve, hogy melyik héjprogramnak kell végrehajtania a szkriptet magic output Ezzel a beállítással annak a fájlnak a nevét adhatjuk meg, amelybe a magic script beállításban megadott szkript kimenete kerül. A fájlnévnek írható könyvtárban kell lennie: [accounting] magic script = tally.sh magic output = /var/log/magicoutput 246 | SAMBA Ha nem rendelünk fájlnevet ehhez a beállításhoz, akkor a kiviteli fájl a szkript nevét kapja (amit a magic script beállításban megadtunk), és .out lesz a kiterjesztése Nemzetközi beállítások A Samba bizonyos korlátok között más nyelveken is ,,beszél”. Ha olyan karaktereket kell használnunk, amelyeket nem tartalmaz a szabványos ASCII tábla, akkor ezen a 8.3 táblázatban felsorolt beállítások felvételével segíthetünk 8.3 táblázat Nyelvi beállítások Beállítás Paraméterek

client Lásd lejjebb code page character Lásd lejjebb set coding system Lásd lejjebb valid chars Karakterlánc (karakterkészlet) Funkció Alapértelmezett érték Hatókör Megadja az ügyfelek által elvárt kódlapot. A kódlapokat alternatív Unix karakterkészletekre fordítja le. A 932-es kódlapot valamelyik ázsiai karakterkészletre fordítja le. Elavult: régebben egyedi karaktereket vett fel egy kódlapra, és a kódlap beállítását követően lehetett használni. 850 Globális Nincs Globális Nincs Globális Nincs Globális client code page A Windows platformokon használt karakterkészletek a kódlap eredeti koncepcióján alapulnak. A kódlapokat eredetileg DOS és Windows ügyfelek használták, hogy meghatározzák a kis- és nagybetűk megfeleltetését előíró szabályokat Az ügyfelek a globális hatókörű client code page beállítás segítségével utasíthatják a Sambát a nekik megfelelő kódlap használatára. A beállítás

először betölti a kódlapot definiáló fájlt, majd kiveszi ebből a 84 táblázatban megadott értékeket. 8.4 táblázat A Samba 20-ban használható kódlapok Kódlap Nyelv 437 737 850 852 861 866 932 MS-DOS latin (Egyesült Államok) Windows 95 görög MS-DOS latin 1 (Nyugat-Európa) MS-DOS latin 2 (Kelet-Európa) MS-DOS izlandi MS-DOS cirill (Oroszország) MS-DOS japán (Shift-JIS) 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 247 8.4 táblázat folytatása Kódlap Nyelv 936 949 950 MS-DOS egyszerűsített kínai MS-DOS koreai (hangul) MS-DOS hagyományos kínai Az ügyfél kódlapját a következőképpen adhatjuk meg: [global] client code page = 852 A beállításhoz alapértelmezés szerint a 850-es kódlap tartozik. A Samba részét alkotó make smbcodepage eszköz segítségével saját SMB kódlapokat is készíthetünk, ha az itt felsoroltak nem lennének elegendők. character set Ennek a globális hatókörű beállításnak a segítségével a DOS kódlapot

használó (lásd a client code page beállítást) fájlnevek úgy alakíthatók át, hogy a nem az Egyesült Államokban használt Unix karakterkészlettel is leképezhetők legyenek. Ha például az ügyfél által használt nyugat-európai MS-DOS karakterkészletet a kiszolgálón egy nyugat-európai Unix karakterkészletre akarunk átalakítani, akkor a következő beállításokat kell felvennünk a konfigurációs fájlba: [global] client code page = 850 character set = ISO8859-1 Figyeljük meg, hogy a client code page beállítást is fel kell vennünk, amelyben a forrás karakterkészletet kell specifikálnunk. A 85 táblázat sorolja fel a Samba 20 verzióban használható karakterkészleteket (és a nekik megfelelő kódlapokat) 8.5 táblázat A Samba 20 verzióban használható karakterkészletek Karakterkészlet Kódtábla Nyelv ISO8859-1 ISO8859-2 ISO8859-5 KOI8-R 850 852 866 866 Nyugat-európai Unix Kelet-európai Unix Cirill Unix Alternatív cirill Unix coding

system A coding system beállításnak, ami hasonlít a character set beállításhoz, az a feladata, hogy meghatározza, miként kerüljön átalakításra egy japán Shift JIS kódlap egy neki meg- | 248 SAMBA felelő Unix karakterkészletté. A beállítás használatához az előzőekben ismertetett client code page beállításhoz a 932-es értéket kell rendelni. A Samba 20 a 86 táblázatban felsorolt kódrendszereket fogadja el 8.6 táblázat A Samba 20 által elfogadható kódrendszerek Karakterkészlet Meghatározás SJIS JIS8 J8BB J8BH J8@B J8@J J8@H JIS7 J7BB J7BH J7@B J7@J J7@H JUNET JUBB JUBH JU@B JU@J JU@H EUC HEX CAP Standard Shift JIS Nyolc bites JIS kódok Nyolc bites JIS kódok Nyolc bites JIS kódok Nyolc bites JIS kódok Nyolc bites JIS kódok Nyolc bites JIS kódok Hét bites JIS kódok Hét bites JIS kódok Hét bites JIS kódok Hét bites JIS kódok Hét bites JIS kódok Hét bites JIS kódok JUNET kódok JUNET kódok JUNET kódok JUNET kódok JUNET

kódok JUNET kódok EUC kódok Három bájtos hexadecimális kód Három bájtos hexadecimális kód (Columbia Appletalk Program) valid chars A valid chars beállítás a Samba egyik régebbi képessége, amelynek segítségével egyedi karaktereket lehetett felvenni egy kódlapba. A korszerűbb kódolási rendszerek azonban kiszorították ezt az eljárást A beállítás a következőképpen használható: valid chars = Î valid chars = 0450:0420 0x0A20:0x0A00 valid chars = A:a A listában felsorolt karaktereket szóközökkel kell egymástól elválasztani. Ha két karakter vagy a numerikus megfelelői között kettőspont áll, akkor a Samba a kettősponttól balra álló adatot nagybetűs karakternek, a tőle jobbra állót pedig kisbetűs karakternek tekinti. A karaktereket literálként (ha be tudjuk írni a billentyűzetről) vagy a Unicode megfelelőjük oktális, hexadecimális vagy decimális alakjában is megadhatjuk. 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 249

Ennek a beállításnak a használata nem ajánlott. Ehelyett inkább a fejezet előző részében ismertetett kódlapokat vegyük igénybe Ha valamilyen oknál fogva mégis használnunk kellene, akkor először rendeljük a client code page beállításhoz azt a kódlapot, amelyikbe a karaktereket fel akarjuk venni, és csak ezt követően soroljuk fel a felveendő karaktereket. Ellenkező esetben a karakterek nem kerülnek be a kódtáblába WinPopup üzenetek A Windowsban a WinPopup eszköz (WINPOPUP.EXE) segítségével küldhetünk üzeneteket felhasználóknak, számítógépeknek vagy a hálózatba kapcsolt összes munkacsoportnak Ez az eszköz a Windows for Workgroups és a Windows 95/98 rendszerben is megtalálható A Windows 95 és a 98 rendszerben azonban futtatnunk kell a WinPopup programot, ha üzeneteket akarunk küldeni vagy kapni Ezzel szemben a Windows NT-ben az üzenetszolgáltató a program futtatása nélkül is automatikusan megjeleníti egy kis ablakban a kapott

üzeneteket. A WinPopup program működését a 81 ábra szemlélteti 8.1 ábra A WinPopup működése A Samba az ilyen üzenetküldéssel kapcsolatban csak egyetlen, a 8.7 táblázatban leírt beállítást használ 250 | SAMBA 8.7 táblázat WinPopup beállítás Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör message command Karakterlánc (teljes elérési út) Megadja azt a parancsot, amelyet a Unixban futtatni kell WinPopup üzenet vételekor. Nincs Globális message command A message command beállítással annak a programnak az elérési útját adhatjuk meg, amelynek egy WinPopup üzenet beérkezésekor a kiszolgálón le kell futnia. A parancs a guest account beállításban megadott felhasználó nevében hajtódik végre. Ilyenkor azonban kérdéses, hogy mi a teendő, hiszen az üzenet feltehetően a Samba rendszergazdájának szól, aki viszont nem ismeri a parancs végrehajtását kérő személy nevét. A Samba fejlesztői ebben az

esetben a következőket javasolják: [global] message command = /bin/csh -c ’xedit %s; rm %s’ & Figyeljük meg, hogy változókat használunk a beállításban. A %s változó azt a fájlt jelenti, amelyik az üzenetet tartalmazza. A parancs végrehajtását követően ezt a fájlt törölni kell, hogy ne gyűljenek fel az ilyen üzenetek. Emellett a parancsnak saját processzt kell indítania (figyeljük meg a parancs neve után álló & karaktert) Ellenkező esetben ugyanis megakasztaná az ügyfelet, akinek meg kellene várnia a parancs sikeres végrehajtására vonatkozó üzenet beérkezését, mielőtt folytathatná a munkáját A standard változók mellett a 8.8 táblázatban még további három olyan változót is felsorolunk, amelyek a message command beállítással együtt használhatók 8.8 táblázat A message command beállítással együtt használható változók Változó Meghatározás %s %f %t Az üzenetet tartalmazó fájl neve. Az üzenetet

küldő ügyfél neve. Az üzenet címzettjének (a fogadó számítógépnek) neve. Újonnan felvett beállítások A Samba a 2.0 verzió megjelenése körüli időkben olyan beállításokat is tartalmazott, amelyek támogatottsága még nem volt teljes körű Ennek ellenére a most következő fejezetrészben röviden áttekintjük ezek jelentését Ezeket a beállításokat a 89 táblázat sorolja fel 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 251 8.9 táblázat Újonnan felvett beállítások Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör change notify timeout Numerikus (másodpercek száma) 60 Globális machine password timeout stat cache Numerikus (másodpercek száma) Boolean érték 604,800 (1 hét) Globális yes Globális stat cache size Numerikus Megadja a vizsgálatok közötti időtartamot, amikor egy ügyfél kéri az adott könyvtárban lévő fájlok módosulásának figyelését. Megadja az NT tartományi gépek

jelszavainak megújítási időtartamát. Ha yes az értéke, a Samba elrejti a legutolsó névmegfeleltetéseket. Megadja a stat cache méretét. 50 Globális change notify timeout A change notify timeout globális hatókörű beállítás segítségével a Windows NT módosulásértesítés nevű szolgáltatása utánozható le. Ez lehetővé teszi, hogy a Windows NT kiszolgáló az ügyfél kérésére rendszeres időközönként figyeljen egy megosztott könyvtárat, és értesítse az ügyfelet, ha módosulást észlelt benne. A Samba 2.0 verziója felkínálja ezt a szolgáltatást az ügyfeleinek Az ilyen vizsgálatok elvégzése azonban jelentősen csökkentheti a kiszolgáló sebességét. A beállításban azt adhatjuk meg, hogy milyen időközönként ellenőrizze a Samba a könyvtárat. Az alapértelmezés szerinti időköz 1 perc (60 másodperc), amit azonban az alábbiak szerint meg is változtathatunk: [global] change notify timeout = 30 machine password timeout A

machine password timeout globális hatókörű beállítással azt adhatjuk meg, hogy mennyi ideig emlékezzen egy Windows NT gép a tartományi számítógépek jelszavaira. A beállításhoz alapértelmezés szerint ugyanaz az érték tartozik, amit a Windows NT 4.0 is használ – ez 604 800 másodperc (1 hét). A Samba rendszeres időközönként kísérletet tesz a számítógépjelszó megváltoztására, ami az a jelszó, amelyet kifejezetten egy másik kiszolgáló használ a változás jelentésére. Ezzel a beállítással másodpercekben megadhatjuk azt az időtartamot, ameddig a Sambának várakoznia kell, mielőtt kísérletet tenne ennek a jelszónak a megváltoztatására. Az alábbi beállítással 1 nap várakozási időt állítunk be: [global] machine password timeout = 86400 252 | SAMBA stat cache A globális hatókörű stat cache beállítás bekapcsolja az utolsó kis- és nagybetűket nem megkülönböztető névleképzések elrejtését. A

beállításhoz alapértelmezés szerint a yes érték tartozik. A Samba fejlesztői azt javasolják, hogy sohase változtassunk ezen a beállításon stat cache size A globális hatókörű stat cache size beállítással a stat cache beállításban megadott elrejtett bejegyzések számát határozhatjuk meg. Az alapértelmezés szerinti érték 50 A Samba fejlesztői ebben az esetben is azt javasolják, hogy sohase változtassunk ezen a beállításon. Vegyes beállítások A Samba egyes beállításai a Unix és a Windows operációs rendszerekkel kapcsolatos problémákat kezelik. Az ilyen beállításokat a 810 táblázatban soroltuk fel A könyv szerzői általában nem javasolják az alapértelmezett értékek módosítását 8.10 táblázat Vegyes beállítások Beállítás Paraméterek deadtime Numerikus Megadja, hogy meddig le(percek száma) het inaktív egy kapcsolat, mielőtt megszakadna. Karakterlánc Megadható hozzá egy pa(parancs) rancs, amely a Samba által

észlelt formában küldi viszsza az üres lemezterületet. NTFS, FAT, Beállítja a kiszolgáló által az vagy Samba ügyfélnek jelentett fájlrendszert. Másodpercek Megadja, hogy a Samba milyen időközönként vizsgálja egy ügyfél jelenlétét a hálózatban. Megadja az ügyfeleknek Numerikus visszaküldhető legnagyobb (méret lemezterületet. Nem befoMB-ban) lyásolja a lemezen végzett aktuális műveleteket. Numerikus Megadja az ügyfelek által egyidejűleg végrehajtható SMB műveletek maximális számát. dfree command fstype keep alive max disk size max mux Funkció Alapértelmezett érték Hatókör 0 Globális Nincs Globális NTFS Globális 0 (nincs) Globális 0 (végtelen) Globális 50 Globális 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 253 8.10 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör max open files Numerikus 10 000 Globális max xmit Numerikus 65 535 Globális nt pipe

support Boolean érték yes Globális nt smb support Boolean érték yes Globális ole locking compatibility Boolean érték yes Globális panic action Parancs Korlátozza az egyidejűleg nyitva tartható fájlok számát, hogy ne haladják meg a Unix korlátjait. Megadja a Samba által küldhető csomagok maximális méretét. Kikapcsolja az NT kísérleti szolgáltatását teljesítményméréshez vagy hiba esetére. Kikapcsolja az NT kísérleti szolgáltatását teljesítményméréshez vagy hiba esetére. Újra leképezi a Windowsban használt, és a korlátokon kívül eső zárolási kérelmeket, hogy elférjenek a Unix korlátjai között. Kikapcsolása zárolási hibákat okoz a Unixban A Samba kiszolgáló kiesése esetén hibakeresés céljából futtatandó parancs. Ha yes az értéke, a VMS ügyfelek kiadhatnak set dir parancsokat. Megadja azt a parancsot, amelyet a Samba shell parancsok becsomagolásához használ. Ha yes az értéke, a Samba engedélyezi a

smbstatus programnak az állapotok figyelését. Ha no az értéke, figyelmen kívül maradnak a Windows alkalmazások lemezszinkronizálási kérései. Ha yes az értéke, a lemezre írást követően mindig megtörténik a lemezszinkronizálás, mielőtt visszakapná a vezérlést a hívó fél. Ha yes az értéke, törlődnek a Unix fájlnevek végén álló pontok. Nincs Globális no Globális Nincs Globális yes Globális no Globális no Globális no Globális set Boolean érték directory smbrun status Karakterlánc (parancsnév teljes elérési úttal) Boolean érték strict sync Boolean érték sync always Boolean érték strip dot Boolean érték 254 | SAMBA deadtime Ezzel a globális hatókörű beállítással annak az időtartamnak a hosszát adhatjuk meg, amennyi ideig a Samba vár, mielőtt bezárná egy inaktív felhasználóval fennálló kapcsolatát. A felhasználó akkor minősül inaktívnak, ha nem nyitott meg fájlokat, és adatokat

sem küld. A beállításhoz alapértelmezés szerint a 0 érték tartozik, ami azt jelenti, hogy a Samba sohasem zárja be a kapcsolatokat, akármeddig legyenek is inaktívak a felhasználók. Ezt az értéket az alábbi módon megváltoztathatjuk: [global] deadtime = 10 Ezzel azt közöljük a Sambával, hogy 10 perc eltelte után zárja be az inaktív felhasználóval fennálló kapcsolatát. A hálózatok többségénél használható ez a beállítás, mert a kapcsolat újrafelvétele a felhasználó számára általában láthatatlan módon történik. dfree command Ezt a beállítást olyan rendszereken használjuk, amelyek nem képesek a lemezen lévő üres terület helyes megállapítására. Ez ideig mindössze csak az Ultrix rendszernél bizonyosodott be ennek a beállításnak a szükségessége A beállításhoz alapértelmezés szerint nem tartozik érték, ami azt jelenti, hogy a Samba már tudja, miként kell helyesen kiszámítani az üres lemezterületet, és a

kapott eredményt megbízhatónak tartja. Az alapbeállítást az alábbi módon változtathatjuk meg: [global] dfree command = /usr/local/bin/dfree A beállításnak olyan szkriptre kell mutatnia, amely képes a lemez blokkokban számított teljes méretének és a szabad blokkok számának visszaküldésére. A Samba dokumentációja az alábbi szkript használatát ajánlja: #!/bin/sh df $1 | tail -1 | awk ’{print $2" "$4}’ System V gépeken az alábbi szkript használható: #!/bin/sh /usr/bin/df $1 | tail -1 | awk ’{print $3" "$5}’ fstype Ezzel a megosztás szintű beállítással annak a fájlrendszernek a típusát adhatjuk meg, amelyet a Samba egy ügyfél kérésére jelent. A beállítás értékeként a 811 táblázatban megadott karakterláncok használhatók. 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 255 8.11 táblázat Fájlrendszer típusai Karakterlánc Jelentés NTFS FAT Samba Microsoft Windows NT fájlrendszer DOS FAT

fájlrendszer Samba fájlrendszer A beállításhoz alapértelmezés szerint az NTFS karakterlánc tartozik, ami a Windows NT fájlrendszerét jelenti. Valószínűleg nem lesz szükségünk más fájlrendszer megadására Ha mégis, akkor ezt az alábbi módon tehetjük meg: [data] fstype = FAT keep alive Ez a globális hatókörű beállítás azt az időtartamot adja meg másodpercekben, ameddig a Samba a NetBIOS keep-alive csomagok küldése között várakozik. Az ilyen csomagok küldésével azt vizsgálja a kiszolgáló, hogy ,,életben” van-e még egy ügyfél a hálózaton A beállítás alapértelmezett értéke a 0, ami azt jelenti, hogy a Samba sohasem küld ki ilyen csomagokat Ezt az értéket az alábbi módon bírálhatjuk felül: [global] keep alive = 10 max disk size Ennek a globális hatókörű beállításnak a segítségével egy megabájtokban értendő képzeletbeli határt adhatunk meg a Sambán lévő megosztásokhoz. A beállítást általában arra

használjuk, hogy a régebbi operációs rendszerekben dolgozó ügyfeleket megóvjuk a nagy, például 1 GB-ot meghaladó kapacitású lemezterületek helytelen használatától. A beállításhoz alapértelmezés szerint a 0 érték tartozik, ami azt jelenti, hogy semmiféle felső határ sincs. Ezt az értéket a következők szerint módosíthatjuk: [global] max disk size = 1000 max mux Ezzel a globális beállítással a Samba által engedélyezett egyidejű SMB műveletek maximális számát adhatjuk meg. A beállítás alapértelmezés szerinti értéke 50, amit az alábbi módon változtathatunk meg: [global] max mux = 100 256 | SAMBA max open files Ez a beállítás a Samba által az összes processz számára engedélyezett, egyidejűleg megnyitható fájlok maximális számát adja meg. Az érték az operációs rendszer által engedélyezett értéket (ami rendszerről rendszerre változik), nem haladhatja meg A beállításhoz alapértelmezés szerint a 10 000-es

érték tartozik, amit az alábbi módon bírálhatunk felül: [global] max open files = 8000 max xmit Ez a beállítás a Samba és az ügyfele között cserélhető csomagok maximális méretét írja elő. Bizonyos esetekben, különösen a Windows for Workgroups rendszerben kisebb csomagméret megadásával nőhet a teljesítmény A beállítás alapértelmezés szerinti értéke 65 535, ami a következőképpen változtatható meg: [global] max xmit = 4096 A B függelék ,,TCP fogadási ablak” című részében szólunk ennek a beállításnak az alkalmazásáról. nt pipe support Ezt a globális hatókörű beállítást programfejlesztők használják arra, hogy engedélyezzék vagy tiltsák Windows NT ügyfelek számára az NT SMB-specifikus IPC$-pipe-okhoz való kapcsolódást. Felhasználóként sohasem kell megváltoztatnunk az alapértelmezett értékét: [global] nt pipe support = yes nt smb support Ezt a globális hatókörű beállítást szintén programfejlesztők

használják arra, hogy NT-specifikus SMB beállításokat lehessen egyeztetni Windows NT ügyfelekkel. A Samba fejlesztői rájöttek arra, hogy valamivel jobb teljesítmény érhető el, ha ehhez a beállításhoz a no értéket rendelik. Felhasználóként valószínűleg sohasem kell megváltoztatnunk az alábbi, alap-értelmezés szerinti értéket: [global] nt smb support = yes ole locking compatibility Ez a globális hatókörű beállítás kikapcsolja a Samba belső bájttartományú zárolását, hogy kompatibilis legyen azokkal az OLE (objektumok csatolása és beágyazása) alkalmazásokkal, amelyek magas bájttartományú zárolásokat használnak a processzek közötti kommunikációban. A beállításhoz alapértelmezés szerint a yes érték tartozik Ha bízunk a Unix rendszerünk zárolási mechanizmusában, akkor az alábbiak szerint bírálhatjuk felül ezt: 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 257 [global] ole locking compatibility = no panic action

Ezzel a globális hatókörű beállítással egy parancsot adhatunk meg, amely akkor kerül végrehajtásra, ha a Samba a betöltődésekor vagy a futásakor végzetes hibával találkozik. A beállításhoz nem tartozik alapértelmezett érték. A végrehajtandó parancsot a következőképpen adhatjuk meg: [global] panic action = /bin/csh -c ’xedit <: "A Samba váratlanul leállt!"’ set directory Ezzel a beállítással Digital Pathworks ügyfelek számára tehetjük lehetővé, hogy a setdir paranccsal váltsanak könyvtárt a kiszolgálón. Ha nincs a hálózatban Digital Pathworks ügyfél, akkor sohasem kell megváltoztatnunk ezt a beállítást. A beállításhoz alapértelmezés szerint a no érték tartozik, amit egy adott megosztásban az alábbi módon változtathatunk meg: [data] set directory = yes smbrun Ezzel a beállítással az smbrun végrehajtható fájl helyét adhatjuk meg, amelyet a Samba a shell parancsok becsomagolásához használ. A

beállítás a Samba lefordításakor kapja meg az alapértelmezés szerinti értékét. Ha a Sambát nem a standard könyvtárába telepítettük, akkor az alábbi módon adhatjuk meg ennek a bináris fájlnak a helyét: [global] smbrun = /usr/local/bin/smbrun status Ez a globális hatókörű beállítás azt jelzi a Sambának, hogy kell-e naplóznia az összes aktív kapcsolatot egy állapotfájlba. Ezt a fájlt csak az smbstatus parancs használja Ha nincs szándékunkban ennek a parancsnak a használata, akkor a no értéket rendelhetjük a beállításhoz, amivel némiképp növelhető a kiszolgáló sebessége A beállításhoz alapértelmezés szerint a yes érték tartozik, amit az alábbi módon változtathatunk meg: [global] status = no strict sync Ez a megosztás szintű beállítás azt határozza meg, hogy elfogadja-e a Samba az ügyfél lemezszinkronizálásra vonatkozó kéréseit. Sok ügyfél akkor is kéri a lemezszinkronizálást, amikor csak adatokat kívánnak

behozni a nyitott fájljaikba Ezzel viszont jelentősen 258 | SAMBA lassul a Samba működése. A beállításhoz alapértelmezés szerint a no érték tartozik, amit az alábbi módon változtathatunk meg: [data] strict sync = yes sync always Ez a megosztás szintű beállítás azt határozza meg, hogy követnie kell-e minden egyes lemezre írást lemezszinkronizálásnak, mielőtt az írásra vonatkozó hívás visszaadná a vezérlést az ügyfélnek. Az ügyfelek azonban akkor is kérhetik a lemezszinkronizálást, ha ehhez a beállításhoz a no érték tartozik (lásd a strict sync beállítást). A beállításhoz alapértelmezés szerint a no érték tartozik, amit azonban az alábbi módon megváltoztathatunk: [data] sync always = yes strip dot Ezzel a globális hatókörű beállítással azt határozhatjuk meg, hogy törlődjön-e a ponttal a végükön megformázott Unix fájlnevekből a lezáró pont. A beállításhoz alapértelmezés szerint a no érték

tartozik, amit azonban az adott megosztásban az alábbi módon megváltoztathatunk: [global] strip dot = yes Ez a beállítás már elavultnak tekinthető – inkább a mangled map beállítást használjuk helyette. Biztonsági másolatok készítése az smbtar eszközzel A fejezet utolsó témaköreként az smbtar eszközzel ismerkedünk meg. A korszerű PC-ken gyakori probléma, hogy a hajlékonylemezek és a CD-k mérete túlságosan kicsi biztonsági másolatok tárolására. Minden géphez külön szalagmeghajtó vásárlása azonban nyilván ésszerűtlen. Következésképpen sokan egyáltalán nem készítenek biztonsági másolatokat Ehelyett azt a megoldást választják, hogy egyszerűen újratelepítik a meghibásodott alkalmazásokat. Szerencsére a Samba felkínál egy másik lehetőséget: a PC-ken lévő adatokról az smbtar eszköz segítségével biztonsági másolatot készíthetünk. Ha az ügyfelek adatait a Samba kiszolgálón tartjuk, akkor rendszeres

időközönként elvégezhetjük ezt a feladatot. Az alkalmazásokról és a konfigurációs fájlokról helyben is készíthetők esetenként biztonsági másolatok, amelyek birtokában gyorsabban végezhetők el a helyreállítások. Ahhoz, hogy egy Unix kiszolgálón dolgozva biztonsági másolatokat készíthessünk PC-kről, előzőleg a következő három feladatot kell elvégeznünk: 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 259 1. Ha még nem lenne telepítve a PC-n a fájl- és a nyomtatómegosztás, akkor telepítsük, és kössük hozzá a TCP/IP protokollhoz. 2. Hozzunk létre egy lemezmegosztást a PC-n, hogy a kiszolgálóról olvasható legyen a lemez. 3. Telepítsük a kiszolgálóra a biztonsági másolatokat készítő szkripteket Ez első két lépést Windows 95/98 rendszerben mutatjuk be. A Vezérlőpultról nyissuk meg a Hálózat (Networking) ablakát, és ellenőrizzük, hogy az ablak felső részében lévő lista tartalmazza-e a Microsoft Networks

fájl- és nyomtatómegosztás tételt (lásd a 8.2 ábrát) 8.2 ábra A Hálózat ablaka Ha nem lenne telepítve a Microsoft Networks fájl- és nyomtatómegosztás, akkor a Hozzáadás gombra kattintva telepítsük azt. Miután rákattintottunk a gombra, meg kell adnunk a felveendő hálózati összetevő típusát. Jelöljük ki a Szolgáltatás tételt, és a megnyíló párbeszédablakban válasszuk a ,,Microsoft Networks fájl- és nyomtatómegosztás” tételt Végül az OK gombra kattintva végezzük el a telepítést. Miután telepítettük a Microsoft Networks fájl- és nyomtatómegosztást, térjünk vissza a Hálózat párbeszédablakába, és jelöljük ki a Samba hálózati kártyájához kötött TCP/IP protokollt. Kattintsunk a Tulajdonságok gombra, és válasszuk a Kötések (Bindings) párbeszédlapot Ekkor a 83 ábrán láthatóhoz hasonló párbeszédablak nyílik meg Ebben csak azt kell ellenőriznünk, hogy a be van-e jelölve a ,,Fájl- és

nyomtatómegosztás” négyzete, hogy TCP/IP kapcsolaton keresztül elérhető legyen ez a megosztás. Ettől a pillanattól kezdve a megosztott lemezeink mások számára is elérhetők a hálózatban. 260 | SAMBA 8.3 ábra TCP/IP kötések Következő lépésként meg kell osztanunk azt a lemezt, amelyről biztonsági másolatot akarunk készíteni a szalagmeghajtón. Nyissuk meg a Windows Intézőjét, és válasszuk például a Dokumentumok (My Documents) könyvtárt. Az egér jobb oldali gombjával kattintsunk a könyvtárra, és a megnyíló helyi menüben válasszuk a Tulajdonságok parancsot. Ekkor a 8.4 ábrán láthatóhoz hasonló párbeszédablak nyílik meg 8.4 ábra A Dokumentumok tulajdonságai párbeszédablak 8. FEJEZET KÜLÖNLEGES SAMBA ISMERETEK | 261 Válasszuk a Megosztás párbeszédlapot. Ebben eldönthetjük, hogy a könyvtárt csak olvasásra, teljes hozzáférésre, vagy jelszófüggően az egyik vagy mindkét típusú hozzáférésre

akarjuk-e megosztani. A Windows 95/98 csak megosztás szintű biztonságot nyújt A példánkban a teljes hozzáférést választottuk, és megadtunk ehhez egy jelszót is a 85 ábrán látható módon. Miután beírtuk a jelszót és az OK gombra kattintottunk, felszólítást kapunk a jelszó ismételt beírására. Ezzel elkészítettünk egy megosztást a lemezünkön 8.5 ábra A megosztott Dokumentumok könyvtár Utolsó lépésként már csak a biztonsági másolatot készítő szkriptet kell elhelyeznünk az smbtar program segítségével a szalagkiszolgálóra. A legegyszerűbb szkript akár egyetlen sorból is állhat, és az alábbiakat tartalmazhatja: smbtar -s client -t /dev/rst0 -x "My Documents" -p password Ez a szkript minden feltétel nélkül létrehozza a //client/My Documents megosztás tartalmát a /dev/rst0 eszközön. Természetesen ez a szkript kivételesen egyszerű, és nem túlságosan biztonságos A szkript tartalmát aszerint bővíthetjük, hogy

milyen sémák szerint akarjuk létrehozni a biztonsági másolatokat. 262 | SAMBA Ízelítőül csak néhány lehetőség az smbtar program használatára: • Növekményes biztonsági másolat létrehozása a DOS archiválandó bitje (az -i kapcsoló) alapján: Ehhez az szükséges, hogy az ügyfél megosztása írásra és olvasásra is elérhető legyen, hogy az smbtar törölhesse a bitet. • Biztonsági másolat készítése azokról a fájlokról, amelyek egy adott idő óta módosultak (az -N fájlnév kapcsolójával). • Biztonsági másolat készítése teljes lemezmeghajtóról, miután a teljes meghajtót megosztottá tettük. Az első példát kivéve a másik két eljárást anélkül is használhatjuk, hogy írási engedélyt is adnánk az illető megosztáshoz. Ezzel csökkenthetjük a biztonsági kockázatot, mert a szkripteknek nem kell tartalmazniuk jelszavakat, és a parancssorban sem kell jelszót átadnunk. Hibakeresés a Sambában A Samba

rendkívül hibatűrő programcsomag. Miután mindent beállítottunk a kívánságunk szerint, talán meg is feledkezünk arról, hogy egyáltalán fut. Hibák többnyire csak a telepítés során vagy akkor fordulnak elő, amikor valamilyen új összetevővel egészítjük ki a kiszolgálót. Szerencsére egész sor eszköz áll a rendelkezésünkre az ilyen problémák diagnosztizálására. Arra semmiképpen sem vállalkozhatunk, hogy minden lehetséges hibára részletes megoldást adjunk, de az e fejezetben leírtak elegendő támpontot adhatnak a megfelelő kiinduláshoz. A fejezet első részében a hibakereséshez rendelkezésünkre álló eszközökkel, a második részében a részletes tudnivalókkal ismerkedünk meg. Végül a harmadik rész azokról az erőforrásokról szól, amelyekre speciális problémák megoldásához lehet szükségünk. Az eszközkészlet A Unixra bizonyos szempontból úgy is tekinthetünk, mint egy sor alkalmazás és eszköz gyűjteményére.

Az utóbbiak egy részét kifejezetten hibakereséshez használhatjuk Mint sok más esetben, itt is igaz, hogy ugyanazt a feladatot többféleképpen is megoldhatjuk. Amikor a Sambával kapcsolatos hibákat keressük, először a következőkből induljunk ki: 1. Samba naplófájlok 2. Hibafa 3. Unix segédprogramok 4. Samba tesztprogramok 5. Dokumentáció és a FAQ (gyakran ismételt kérdések) 6. Kutatható archívumok 7. Samba hírcsoportok Lássuk külön-külön, miként használhatjuk ezeket. Samba naplófájlok Hiba esetén elsőként mindig a naplófájlokat nézzük át. A Samba naplófájljai jelentősen segítik az olyan problémák diagnosztizálását, amellyel a kezdő és a középhaladó Samba rendszergazdák találkozhatnak. A naplóvezetést illetően a Samba nagyon rugalmas A kiszolgáló konfigurálásától függően a naplófájlok nagyon kevés és nagyos sok információt is megörökíthetnek. Változókat használva gépenként, megosztásokként vagy ezek

kombinációjaként szét is választhatjuk a naplófájlokat. 264 | SAMBA Alapbeállítás szerint a Samba naplóbejegyzéseit a samba könyvtár/var/smbd.log és a samba könyvtár/var/nmbd.log fájlok tartalmazzák, ahol a samba könyvtár azt a könyvtárat jelenti, ahová a Sambát telepítettük (ez rendszerint a /usr/local/samba). Amint a 4. fejezetben említettük, az smbconf konfigurációs fájl log file beállításában a fájlok helyét és nevét is megváltoztathatjuk. A beállításban a 2 fejezetben ismertetett bármelyik változót használhatjuk, így külön-külön naplófájlokat hozhatunk létre minden egyes kapcsolódó felhasználó számára, ha az smb.conf fájl [global] szakaszába felvesszük az alábbi sort: log file = %m.log Másik megoldásként a parancssorban az -l kapcsoló megadásával is specifikálhatjuk a naplófájl könyvtárát, például a következő módon: smbd -l /usr/local/var/samba Azt is megtehetjük, hogy megosztásonként

választjuk szét a naplófájlokat; ennek különösen akkor vehetjük hasznát, ha a hiba okozójaként egy adott megosztásra gyanakszunk. A konfigurációs fájl [global] szakaszába ekkor az %S változót használva a következő bejegyzést vegyük fel: log file = %S.log Naplózási szintek A Samba naplózási szintjeit az smb.conf fájl globális hatókörű log level vagy az ezzel egyenértékű debug level beállításában írhatjuk elő. A naplózási szint értéke egy 0 (nincs naplózás) és 10 (legrészletesebb napló) közötti értéket vehet fel. Az esetek többségében a 3-as szint már kielégítő adatokat szolgáltat. Tegyük fel például, hogy egy Windows ügyfél tallóz egy könyvtárat a Samba kiszolgálón. Ha csak kevés adatot akarunk összegyűjteni, akkor a log level = 1 beállítást használhatjuk, ami arra utasítja a Sambát, hogy csak felületes információkat naplózzon. Az alábbi bejegyzés például csak a kapcsolat létrejöttéről ad

tájékoztatást: 105/25/98 22:02:11 server (192.168220100) connect to service public as user pcguest (uid=503,gid=100) (pid 3377) A magasabb naplózási szintek részletesebb információkkal szolgálnak. A 3-as szint által szolgáltatott információk általában elegendőek, és még a Samba rendszergazdáknak sincs többre szükségük. A magasabb szinteknek megfelelő információkat többnyire csak a fejlesztők használják, akik értik is ezeknek a hosszasan sorjázó rejtélyes üzeneteknek a jelentését Az alábbiak arra mutatnak példát, hogy ugyanazon művelet elvégzésekor mi kerül be a naplófájlba a 2-es, és mi a 3-as naplózási szint választásakor. Ne aggódjunk amiatt, ha netán nem értenénk egy SMB kapcsolat minden részletét, a célunk mindössze az, hogy bemutassuk, milyen típusú információk kerülnek naplózásra különböző szintek használatakor: 9. FEJEZET HIBAKERESÉS A SAMBÁBAN /* Level 2 / Got SIGHUP Processing section Processing

section Processing section Allowed connection Allowed connection | 265 "[homes]" "[public]" "[temp]" from 192.168220100 (192168220100) to IPC$ from 192.168220100 (192168220100) to IPC/ /* Level 3 / 05/25/98 22:15:09 Transaction 63 of length 67 switch message SMBtconX (pid 3377) Allowed connection from 192.168220100 (192168220100) to IPC$ ACCEPTED: guest account and guest ok found free connection number 105 Connect path is /tmp chdir to /tmp chdir to / 05/25/98 22:15:09 server (192.168220100) connect to service IPC$ as user pcguest (uid=503,gid=100) (pid 3377) 05/25/98 22:15:09 tconX service=ipc$ user=pcguest cnum=105 05/25/98 22:15:09 Transaction 64 of length 99 switch message SMBtrans (pid 3377) chdir to /tmp trans <PIPELANMAN> data=0 params=19 setup=0 Got API command 0 of form <WrLeh> <B13BWz> (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8) Doing RNetShareEnum RNetShareEnum gave 4 entries of 4 (1 4096 126 4096) 05/25/98 22:15:11

Transaction 65 of length 99 switch message SMBtrans (pid 3377) chdir to / chdir to /tmp trans <PIPELANMAN> data=0 params=19 setup=0 Got API command 0 of form <WrLeh> <B13BWz> (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8) Doing RNetShareEnum RNetShareEnum gave 4 entries of 4 (1 4096 126 4096) 05/25/98 22:15:11 Transaction 66 of length 95 switch message SMBtrans2 (pid 3377) chdir to / chdir to /pcdisk/public call trans2findfirst: dirtype = 0, maxentries = 6, close after first=0, close if end = 0 requires resume key = 0 level = 260, max data bytes = 2432 unix clean name [./DESKTOPINI] unix clean name [desktop.ini] 266 | SAMBA unix clean name [./] creating new dirptr 1 for path ./, expect close = 1 05/25/98 22:15:11 Transaction 67 of length 53 switch message SMBgetatr (pid 3377) chdir to / [.] Az első csomag beérkezését követően elvágtuk a listát, mert a további része még több oldalt is elfoglalna a könyvben. Arra azonban már ennyiből is

következtethetünk, hogy a 3-as szint fölötti szinteket beállítva megabájtok sokaságával zsúfolhatunk tele értékes lemezterületeket. A 3-as naplózási szint információi alapján már pontosan nyomon követhetjük, hogy mi történik a kiszolgálón, és az esetek többségében ezekből egyértelműen kideríthető a hiba oka. Még egy figyelmeztetés: a magasabb naplózási szintek (3-as vagy e felettiek) jelentős mértékben lelassíthatják a kiszolgáló működését. Ne feledjük, hogy minden egyes naplóbejegyzés egy írási műveletet jelent (ami már önmagában is lassú művelet), és a 2-esnél magasabb szintek rengeteg bejegyzést generálnak. Ezért azt javasoljuk, hogy a 3-as szintet is csak akkor használjuk, ha ténylegesen ki akarjuk deríteni egy hiba okát. A naplózás be- és kikapcsolása A naplózás be- és kikapcsolásához adjuk meg a megfelelő naplózási szintet az smb.conf fájl [global] szakaszában. Ezt követően vagy újraindítjuk a

Sambát, vagy arra kényszerítjük az aktuális démont, hogy dolgozza fel újra a konfigurációs fájl Azt is megtehetjük, hogy az smbd processzt a futása közben utasítjuk a naplózási szint módosítására: a SIGUSR1 jel kiküldésével eggyel növelhetjük, a SIGUSR2 jel kiküldésével pedig eggyel csökkenthetjük a naplózás szintjét. # Naplózási szint növelése 1 szinttel kill -SIGUSR1 1234 # Naplózási szint csökkentése 1 szinttel kill -SIGUSR2 1234 Naplózás ügyfélgépenként vagy felhasználónként A hibakeresés egyik hatékony – és más felhasználókat nem zavaró – módja az, hogy az smb.conf fájl [global] szakaszában különböző naplózási szinteket rendelünk a különböző gépekhez Ezt a korábban már bemutatott stratégia alapján tehetjük meg: [global] log level = 0 log file = /usr/local/samba/lib/log.%m include = /usr/local/samba/lib/smb.conf%m Ezekkel a beállításokkal arra utasítjuk a Sambát, hogy minden egyes kapcsolódó

ügyfélhez egyedi konfigurációt és naplófájlokat használjon. Ekkor csak az a teendőnk, hogy elkészítünk egy adott ügyfél gépéhez egy olyan smb.conf fájlt, amely a log level = 3 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 267 beállítást tartalmazza (a többi ügyfélre az alapértelmezés szerinti naplózási szint [0] lesz érvényes), és az így létrejövő naplófájlt tanulmányozva keressük a hiba okát. Az is előfordulhat, hogy csak egy adott felhasználóval kapcsolatos hibára gyanakszunk, és ez a hiba gépről-gépre követi a felhasználót. Ekkor megtehetjük, hogy csak az ehhez a felhasználóhoz kapcsolódó naplófájlokat készítjük el, ha az smb.conf fájlba felvesszük az alábbi sorokat: [global] log level = 0 log file = /usr/local/samba/lib/log.%u include = /usr/local/samba/lib/smb.conf%u Ezt követően készítsünk az illető felhasználó számára egy egyedi smb.conf fájlt (ami például a /usr/local/samba/lib/smbconftim lehet), és

vegyük fel bele a log level = 3 beállítást Ekkor csak az ehhez a felhasználóhoz kapcsolódó részletes naplóbejegyzéseket kell tanulmányoznunk. A Samba tesztprogramjai A Samba tesztprogramjait, amelyek segítségével a kiszolgáló jelentős része vizsgálható, a disztribúciós csomag /docs/textdocs könyvtárában található különböző fájlok írják le, kezdve a DIAGNOSIS.TXT fájllal Az ebben a fejezetben bemutatásra kerülő hibafa a Samba fejlesztőcsoportja által javasolt alaptesztek valamivel részletesebb változata, de csak a telepítéssel és az újrakonfigurálással kapcsolatos diagnosztikai műveleteket tartalmazza, akárcsak a DIAGNOSIS.TXT fájl A /docs könyvtárban és az alkönyvtáraiban lévő többi fájl speciális problémákkal foglalkozik (például Windows NT ügyfelekkel), és olyan hibákkal kapcsolatban adnak útmutatásokat, amelyekre ebben a könyvben nem térünk ki. Ha a hibafa nem lenne elegendő, akkor olvassuk el a DIAGNOSISTXT

és a többi ehhez hasonló fájl szövegét. Unix segédprogramok Esetenként az is eredményre vezethet, ha nem a Samba csomag valamelyik eszközével vizsgáljuk, mi is történik a kiszolgáló belsejében. A Unixban két olyan diagnosztikai eszköz is van, amelyekkel hibákat kereshetünk a Samba kiszolgálóban: a trace és a tcpdump A trace eszköz A trace eszköz a különböző operációs rendszerekben különböző neveken bukkan fel. A Linuxban strace, a Solarisban truss, míg az SGI rendszerben padc és par a neve. Lényegében mindegyiküknek azonos a feladata: bemutatja, hogyan zajlik le az operációs rendszerben egy függvényhívás Ezzel nyomon követhetjük egy program, így például a Samba kiszolgáló végrehajtásának menetét, és gyakran már ebből is kiszúrhatjuk azt a függvényhívást, amelyik a problémát okozza. A trace eszköz segítségével az olyan hibák okát is kideríthetjük, amelyek abból származnak, hogy rossz helyen vannak a

dinamikusan csatolt függvénytárak. Ilyen hibák akkor fordulhatnak elő, ha a Samba előre lefordított összetevőit töltjük le valahonnan. 268 | SAMBA A hibát okozó függvényhívás általában a kimenet végén látható, közvetlenül a program befejeződése előtt. Az alábbiakban a Linux operációs rendszeren végrehajtott strace program kimenete látható. Ez a kimenet egy nagyobb fájlnak a részlete, amely a Samba kiszolgáló egyik könyvtárának megnyitásakor generálódott. A fájl mindegyik sora egy-egy rendszerfüggvény neve, ami után a paraméterek és a visszatérési érték áll Ha hiba keletkezett egy függvény meghívásakor, akkor a sor végén a hibaérték (például ENOENT) és egy magyarázat olvasható. A paraméterek típusáról és a hibaértékek jelentéséről az illető operációs rendszer megfelelő trace programjának kézikönyvében olvashatunk chdir("/pcdisk/public") = 0 stat("mini/desktop.ini",

0xbffff7ec) = -1 ENOENT (No such file or directory) stat("mini", {st mode=S IFDIR|0755, st size=1024, .}) = 0 stat("mini/desktop.ini", 0xbffff7ec) = -1 ENOENT (No such file or directory) open("mini", O RDONLY) = 5 fcntl(5, F SETFD, FD CLOEXEC) = 0 fstat(5, {st mode=S IFDIR|0755, st size=1024, .}) = 0 lseek(5, 0, SEEK CUR) = 0 SYS 141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 196 lseek(5, 0, SEEK CUR) = 1024 SYS 141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 0 close(5) = 0 stat("mini/desktop.ini", 0xbffff86c) = -1 ENOENT (No such file or directory) write(3, "#377SMB10122001"., 39) = 39 SYS 142(0xff, 0xbffffc3c, 0, 0, 0xbffffc08) = 1 read(3, "?", 4) = 4 read(3, "377SMBu"., 63) = 63 time(NULL) = 896143871 A fenti példában különböző stat hívások sikertelenek, mert nem találják az általuk elvárt fájlokat. Nem kell szakértőnek lennünk ahhoz, hogy rájöjjünk arra,

hiányzik a desktopini fájl az illető könyvtárból. Nagyon sok, látszólag bonyolult probléma okára egyszerűen rájöhetünk, ha azt látjuk, hogy ismétlődő hibákat jelez a trace program. A tcpdump eszköz A tcpdump program – írója Van Jacobson, Craig Leres és Steven McCanne, a kiegészítését Andrew Tridgell végezte – lehetővé teszi a hálózati forgalom valós idejű figyelemmel kísérését. A programhoz különböző kiviteli formátumok állnak rendelkezésre, amelyek segítségével úgy szűrhetjük meg a kimenetét, hogy csak egy adott típusú forgalmat figyeljünk meg. A tcpdump program segítségével az ügyfél és a kiszolgáló közötti teljes adatforgalmat vizsgálhatjuk, beleértve az SMB és az NMB üzenetszórásos (broadcast) üzeneteket is A program a hibákat elsősorban az OSI modell hálózati szintjén keresi, ennek ellenére általános képet kaphatunk a kiszolgáló és az ügyfél tevékenységéről. 9. FEJEZET HIBAKERESÉS A

SAMBÁBAN | 269 Az alábbiakban egy példát látunk a tcpdump naplózott futásáról. A példában az ügyfél egy könyvtárlistát kér, amire a kiszolgáló a válaszában megadja a homes, a public, az IPC$ és a temp könyvtár nevét (a jobb szélre néhány magyarázó megjegyzést írtunk be): $tcpdump -v -s 255 -i eth0 port not telnet SMB PACKET: SMBtrans (REQUEST) SMB Command = 0x25 Csomag kérése A kérés ls vagy dir volt [000] 01 00 00 10 . >>> NBT Packet SMB csomag külső kerete NBT Session Packet Flags=0x0 Length=226 [kihagyott sorok] SMB PACKET: SMBtrans (REPLY) A kérésre adott válasz kezdete SMB Command = 0x25 A parancs ls vagy dir volt Error class Error code = = 0x0 0 Nincs hiba Flags1 = 0x80 Flags2 = 0x1 Tree ID Proc ID = = 105 6075 UID = 100 MID Word Count = = 30337 10 TotParamCnt=8 TotDataCnt=163 Res1=0 ParamCnt=8 ParamOff=55 Res2=0 DataCnt=163 DataOff=63 Res3=0 Lsetup=0 Param Data: (8 bytes) [000] 00 00 00 00 05 00 05

00 Data Data: (135 bytes) . Az aktuális könyvtár tartalma: [000] 68 6F 6D 65 73 00 00 00 00 00 00 00 00 00 00 00 homes. [010] 64 00 00 00 70 75 62 6C 69 63 00 00 00 00 00 00 d.publ ic [020] 00 00 00 00 75 00 00 00 [030] 00 00 00 00 00 00 00 00 74 65 6D 70 00 00 00 00 76 00 00 00 49 50 43 24 .u temp . vIPC$ [040] 00 00 00 00 00 00 00 00 00 00 03 00 77 00 00 00 . w [050] 64 6F 6E 68 61 6D 00 00 00 00 00 00 00 00 00 00 donham. 270 | SAMBA [060] 92 00 00 00 48 6F 6D 65 20 44 69 72 65 63 74 6F .Home [070] 72 69 65 73 00 00 00 49 50 43 20 53 65 72 76 69 ries.I PC Servi [080] 63 65 20 28 53 61 6D Directo ce (Sam A parancsban -v kapcsoló jelentése verbose (részletes információk), az -s 255 azt jelzi, hogy az egyes csomagok első 255 bájtját kérjük (az alapértelmezés szerinti 68 bájt helyett), az -i eth0 kapcsoló azt közli a tcpdump paranccsal, hogy melyik portra figyeljen (egy Ethernet portra), végül a port not telnet kapcsoló letiltja a

telnetes forgalom figyelését, mivel telnettel távolról jelentkezhetünk be a kiszolgálóra. A tcpdump programnak ezeken felül még egyéb kapcsolói is vannak, amelyek segítségével úgy szűrhetjük meg a forgalmat, hogy csak az legyen látható, amire kíváncsiak vagyunk. Aki dolgozott már snoop vagy etherdump programmal, annak ismerősök lehetnek ezek a szűrők. A módosított tcpdump program a Samba FTP kiszolgálójáról, az ftp://samba.anueduau/ pub/samba/tcpdump-smb címről tölthető le. Más változatai nem támogatják az SMB protokollt – ha nem látnánk az előző példában bemutatott kimenetet, akkor a program SMB-t támogató verzióját kell használnunk. A hibafa A hibafa a Samba telepítésekor és konfigurálásakor előforduló hibák diagnosztizálására és kijavítására használható eljárás, amely a Samba disztribúció hibakereső és diagnosztizáló dokumentációjának kibővített változata. Mielőtt még a Samba szoftvercsomag

bármelyik részét vizsgálhatnánk, ismernünk kell az alábbi adatokat: • az ügyfél IP címe (példánkban a 192.168220105 címet használjuk); • a kiszolgáló IP címe (példánkban a 192.168220100 címet használjuk); • a hálózat alhálózati maszkja (ez tipikusan a 255.2552550 cím); • az összes gép ugyanabban az alhálózatban van-e (a példánkban igen). Az egyszerűbb érthetőség érdekében a példánkban a kiszolgálónak server.examplecom, az ügyfélgépnek pedig client.examplecom lesz a neve A hibafa használata A hibakeresést az itt leírt sorrendben végezzük, anélkül, hogy előre ugranánk a könyv későbbi részeire. Ha sikeresen befejeződik egy teszt, megadjuk annak a fejezetrésznek a címét, ahová már nyugodtan továbbléphetünk. Hibakeresés az IP alacsony szintjén Az első tesztsorozatban a Samba futtatásához szükséges alacsony szintű szolgáltatásokat vizsgáljuk. E tesztek futtatásával meggyőződhetünk arról, hogy •

működik az IP-szoftver; • működik az Ethernet kártya; • működik az alapvető névszolgáltatás. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 271 A további tesztekkel a TCP-szoftvert, a Samba smdb és nmbd démonjait, a host alapú hozzáférésvezérlést, a hitelesítést, a felhasználói hozzáférésvezérlést, a fájlszolgáltatásokat és a tallózást fogjuk vizsgálni. Ezeket a teszteket nagyon részletesen írjuk le, hogy mind a műszaki beállítottságú, mind a tapasztalt hálózati és rendszergazdák számára érthetők legyenek. Hálózati szoftver tesztelése a ping paranccsal Elsőként mind a kiszolgálónál, mind az ügyfélnél a ping 127.001 parancsot kell kiadnunk A megadott cím az ún visszahurkolási (loopback) cím, és a parancs azt teszteli, hogy egyáltalán támogatja-e a gép a hálózati munkát. Unix rendszerben a parancs alakja ping 127.001 a statisztikai beállítással, és néhány sor után megszakíthatjuk a futását Sun

munkaállomásokon a parancs alakja általában /usr/etc/ping -s 127.001, míg Linux rendszerben egyszerűen csak ping 127.001 Windows ügyfeleknél a DOS parancssorba a ping 127.001 parancsot kell beírnunk, és a program négy sor kiírása után magától leáll. Az alábbiakban egy Linux kiszolgálón mutatjuk be a parancs kimenetét: server% ping 127.001 PING localhost: 56 data bytes 64 bytes from localhost (127.001): icmp-seq=0. time=1 ms 64 bytes from localhost (127001): icmp-seq=1. time=0 ms 64 bytes from localhost (127001): icmp-seq=2. time=1 ms ^C ----127.001 PING Statistics---3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max = 0/0/1 Ha válaszként a ,,ping: no answer from” vagy a ,,100% packet loss” üzenetet kapjuk, akkor a gépen egyáltalán nincs telepítve hálózati összetevő. A 127001 a belső visszahurkolási cím, és semmi köze ahhoz, hogy a számítógép kapcsolódik-e fizikailag egy hálózathoz vagy sem Ha nem fut le

a teszt, akkor komoly helyi problémára gyanakodhatunk Lehetséges, hogy a TCP/IP nincs telepítve vagy rosszul van konfigurálva. Ha Unix kiszolgálón lép fel ez a hiba, akkor nézzünk utána az operációs rendszer dokumentációjában, ha viszont egy Windows ügyfélnél tapasztaljuk ezt, akkor a 3. fejezetben olvassuk el, hogyan telepíthetjük a TCP/IP protokollt. Hálózati rendszergazdáknak ajánlható olvasmány Craig Hunt TCP/IP Network Administration, valamint Craig Hunt és Robert Bruce Thompson Windows NT TCP/IP Network Administration című könyve (mindkettő kiadója az O’Reilly). Helyi névszolgáltatás tesztelése a ping paranccsal Próbálkozzunk most a ping localhost paranccsal a Samba kiszolgálón. A localhost a 127.001 visszahurkolási cím gazdaneve, és a névfeloldónak erre a névre kell feloldania a címet. Miután beírtuk a ping localhost parancsot, a kimenetnek ehhez hasonlónak kell lennie: 272 | SAMBA server% ping localhost PING

localhost: 56 data icmp-seq=0. time=0 ms icmp-seq=1. time=0 ms icmp-seq=2. time=0 ms bytes 64 bytes from localhost (127.001): 64 bytes from localhost (127.001): 64 bytes from localhost (127.001): ^C Ha sikeresen lefutott a parancs, akkor végezzük el ugyanezt a tesztet az ügyfélnél is. Ellenkező esetben: • Ha az ,,unknown host: localhost” üzenetet kapjuk, akkor valamilyen probléma van a localhost gazdanév érvényes IP címmé való átalakításával. (Lehet, hogy csak az a baj, hogy hiányzik egy bejegyzés egy helyi hosts fájlból.) Lapozzunk át a fejezet ,,Hibakeresés a névszolgáltatásban” című részére • Ha a ,,ping: no answer” vagy a ,,100% packet loss” üzenetet kapjuk, de a ping 127.001 parancs sikeresen lefutott, akkor a névfeloldó elvégzi a név feloldását, csak nem a megfelelő címmé. Ellenőrizzük azt a fájlt vagy adatbázist (ez Unix rendszerben tipikusan az /etc/hosts), amelyet a névszolgáltató a névfeloldáshoz használ, hogy

lássuk, rendben vannak-e benne a bejegyzések. Hálózati kártya tesztelése a ping paranccsal Ellenőrizzük most a kiszolgáló hálózati IP címét magából a kiszolgálóból. Ennek ugyanazt az eredményt kell szolgáltatnia, mintha a 127.001 címre adtuk volna ki a ping parancsot: server% ping 192.168220100 PING 192.168220100: 56 data bytes 64 bytes from 192168220100 (192.168220100): icmp-seq=0. time=1 ms 64 bytes from 192168220100 (192.168220100): icmp-seq=1. time=0 ms 64 bytes from 192168220100 (192.168220100): icmp-seq=2. time=1 ms ^C ----192.168220100 PING Statistics---3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max = 0/0/1 Ha ez működik a kiszolgálón, akkor ismételjük meg az ügyfélnél is. Ellenkező esetben: • Ha ping hálózati ip parancs akár a kiszolgálón, akár az ügyfélnél nem futott le rendben, de a ping 127.001 sikeresen végrehajtódott, akkor az illető számítógépben lévő Ethernet kártyával

kapcsolatos TCP/IP hibával van dolgunk. Lapozzuk fel a hálózati kártya és a gazdagép operációs rendszerének dokumentációját, és nézzük utána, hogy megfelelően konfiguráltuk-e a kártyát. Azzal azonban legyünk tisztában, hogy egyes operációs rendszereknél akkor is rendben lefuthat a ping parancs, ha a gép nem kapcsolódik a hálózathoz, ezért ez a vizsgálat nem deríthet mindig fényt az összes hálózati problémára. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 273 Kapcsolódások tesztelése a ping paranccsal Adjuk ki most a ping parancsot úgy, hogy a kiszolgáló IP címe helyett nevét írjuk be a parancssorba. A parancsot először a kiszolgálón, majd az ügyfélnél futtassuk le Ez a hálózati kártya működésének általános tesztje: server% ping server PING server.examplecom:0 56 data bytes 64 bytes from server.examplecom (192168220100): icmp-seq=0. time=1 ms 64 bytes from serverexamplecom (192.168220100): icmp-seq=1. time=0 ms 64 bytes from

serverexamplecom (192.168220100): icmp-seq=2. time=1 ms ^C ----server.examplecom PING Statistics---3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max = 0/0/1 Microsoft Windows rendszerben a kiszolgálóra kiadott ping parancs a 9.1 ábrán láthatóhoz hasonló eredménnyel fut le 9.1 ábra Windows ügyfélnél a Samba kiszolgálóra kiadott ping parancs kimenete Ha a parancs sikeresen lefutott, akkor ebből öt tény következik: 1. A gazdanevet (vagyis a ,,server”-t) megtalálta a helyi névkiszolgáló 2. A gazdanév kiegészült a teljes nevére (serverexamplecom) 3. A kiszolgáló visszaküldte a gazdagép IP címét (192168220100) 4. Az ügyfél négy, egyenként 56 bájtos UDP/IP csomagot küldött a Samba kiszolgálóra 5. A Samba kiszolgáló mind a négy csomagra válaszolt 274 | SAMBA Ha sikertelen a teszt, akkor különböző hibák lehetnek a hálózatban: • Ha a ,,ping: no answer” vagy ,,100% packet loss” hibaüzenetet

kapjuk, akkor vagy a kiszolgáló, vagy az ügyfél nem kapcsolódik a hálózathoz, vagy az egyikük címe hibás. Ellenőrizzük az egyes gépeken a ping parancs által visszaadott címeket, és győződjünk meg arról, hogy ezek megegyeznek az eredetileg megadott címekkel. Lehetséges, hogy hibásan adtunk meg egy címet. Adjuk ki az arp -a parancsot, hogy lássuk, kapunk-e bejegyzést a másik gépről. E parancs arp neve az Addres Resolution Protocol (címfeloldó protokoll) kezdőbetűiből álló rövidítés. Az arp -a parancs a helyi gép által ismert összes címet felsorolja. Próbálkozzunk a következőkkel: – Ha a ,,192.168220100 at (incomplete)” vagy ehhez hasonló üzenetet kapunk, akkor a gép számára ismeretlen a 192.168220100 IP címhez tartozó Ethernet cím Ez a kapcsolódás teljes hiányát jelenti, és valószínűleg a TCP/IP protokoll legalsó szintjén, az Ethernet szintjén van a probléma. Az ilyen hibákkal a TCP/IP Network Administration című

könyv (O’Reilly) 5 és 6 fejezete foglalkozik – Ha a ,,server (192.168220100) at 8:0:20:12:7c:94” vagy ehhez hasonló üzenetet kapunk, akkor a kiszolgáló esetenként elérhető, vagy másik gép válaszol a nevében. Annyit azonban már tudhatunk, hogy a ping parancs rendben lefuthat: valamilyen időszakos hálózati vagy címfeloldási problémával lehet dolgunk. – Ha az arp parancs által visszaküldött Ethernet cím nem egyezik meg a várt címmel, akkor keressük meg és kézzel javítsuk ki a címet. • Ha a ping parancs magukon az egyes gépeken rendben lefut, de két különböző gép között már nem, akkor az őket összekötő hálózatban lehet a hiba. • Ha a ,,ping: network unreachable” vagy az ,,ICMP Host Unreachable” üzenetet kapjuk, akkor a hiba több hálózatot is érint. Lehetőség szerint ne próbáljunk hibát keresni olyan SMB ügyfeleknél és kiszolgálókon, amelyek különböző hálózatokhoz kapcsolódnak. A hibakeresést egyetlen

hálózat gépeire korlátozzuk. Az alábbi három teszt abból a feltételezésből indul ki, hogy két hálózat között keresünk hibát: a) Először a válaszokra vonatkozó teszteket végezzük el a korábban leírtak szerint. Ha ezekkel nem tudjuk behatárolni a hiba okát, akkor a következő hibák lehetségesek: rossz valamelyik cím, rossz az alhálózati cím, a hálózat nem működik, vagy a vizsgálatnak útját állja egy tűzfal. b) Ellenőrizzük mind a küldő, mind a fogadó gépeknél a címeket, hogy lássuk, nincs valamilyen nyilvánvaló hiba. Ha mind a küldő, mind a fogadó gép ugyanahhoz a hálózathoz tartozik, akkor mindkettőnek azonos alhálózati maszkkal kell rendelkeznie, és a ping parancsnak a helyes címet kell visszajelentenie. Ha hibás ez a cím, akkor ki kell javítani. Ha helyes a cím, akkor a programokat valamilyen hibás alhálózat zavarja össze Lásd a fejezet későbbi, ,,Hálózati maszkok” című részét c) Ha a parancsok

továbbra is azt jelzik vissza, hogy elérhetetlen a hálózat, és az előző két hiba nem fordul elő, akkor az egyik hálózat nem érhető el a másikból. Az ilyen hiba elhárítása a hálózat rendszergazdájának a dolga. • Ha az ,,ICMP Administratively Prohibited” üzenetet kapjuk, akkor vagy egy tűzfalba, vagy egy hibásan konfigurált forgalomirányítóba (router) ütköztünk. Ebben az esetben a hálózat biztonságáért felelős személlyel kell felvennünk a kapcsolatot 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 275 • Ha az ,,ICMP Host redirect” üzenetet kapjuk, és a ping parancs a csomagok kiküldését jelentette, akkor nincs nagy baj: mindössze annyi történt, hogy a kérésünk a hálózat valamely másik részére átirányításra került. • Ha a kérésünk átirányításra került, és a ping parancs nem jelez választ, akkor a hálózat egyik helye sem válaszol a kérésünkre. Tekintsük úgy ezt az üzenetet, mintha elérhetetlen lenne a

hálózat, és vizsgáljuk meg a címeket és az alhálózatokat • Ha az ,,ICMP Host Unreachable from gateway átjáró neve” üzenetet kapjuk, akkor a ping parancs csomagjai másik hálózatra kerültek átirányításra, de a másik gép nem válaszol, és a forgalomirányító a maga részéről hibát jelez. Tekintsük ezt az üzenetet is úgy, mintha elérhetetlen lenne a hálózat, és vizsgáljuk meg a címeket és az alhálózatokat. • Ha a ,,ping: unknown host gazdanév” üzenetet kapjuk, akkor ismeretlen a gépünk neve. Ebből névszolgáltatási problémára következtethetünk, ami nem befolyásolja a localhost vizsgálatot. Vessünk egy pillantást a fejezet későbbi, ,,Hibakeresés a névszolgáltatásban” című részébe • Ha a ping parancs esetenként sikeresen, máskor hibásan fut le, akkor vagy valamilyen időszakos hiba van a gépek között, vagy túlterhelt a hálózat. Futtassuk többször a parancsot, hogy lássuk, meghaladja-e a 3 százalékot a

hibás csomagok száma. Amenynyiben igen, akkor vegyük fel a kapcsolatot a hálózati rendszergazdával Ha viszont csak néhány csomag hibás, vagy tudjuk, hogy valamilyen nagyméretű program futása terheli le a hálózatot, akkor legyünk türelemmel: a ping programot úgy tervezték meg, hogy esetenként elveszíthet csomagokat. • Ha a ping parancsot történetesen egy client.examplecom gépre adtuk ki, és válaszul az ,,smtsvr.antaresnet is alive” vagy ehhez hasonló üzenetet kapunk, akkor vagy valaki másnak a címét használjuk, vagy a géphez több név és cím tartozik. Ha rossz a cím, akkor ebben a névszolgáltató a hibás; javítsuk ki a névszolgáltató adatbázisában a címet, hogy az a megfelelő gépre mutasson. Erről bővebben a fejezet későbbi, ,,Hibakeresés a névszolgáltatásban” című részében olvashatunk A kiszolgálók gyakran többlakiak: egynél több hálózathoz is kapcsolódhatnak, és mindegyik hálózatban más-más nevet

használnak. Ha egy ilyen többlaki kiszolgálótól váratlan néven kapunk választ, akkor vizsgáljuk meg, hogy a címe szerepel-e a hálózatunkban (lásd a fejezet ,,Hálózati maszkok” című későbbi részét). Amennyiben szerepel, akkor – mind a teljesítmény, mind a megbízhatóság érdekében – ezt a címet, és ne a másik hálózatban lévő címét használjuk. A kiszolgálóknak egyetlen Ethernet címhez is több nevük lehet, főleg akkor, ha webkiszolgálók. Bármennyire furcsa is, ez nem okoz problémát Célszerű azonban a hivatalos (és állandó) nevét használnunk; az álnevek változhatnak • Ha minden rendben működik, de a jelentett IP cím a 127.001, akkor névszolgáltatási hibával van dolgunk. Ez általában akkor fordul elő, ha egy operációs rendszer telepítő programja olyan /etc/hosts sort hoz létre, mint amilyen például a 127.001 localhost gazdanév-tartománynév A localhost sornak 127001 localhost vagy 127.001 localhost loghost

alakúnak kell lennie Javítsuk ki, nehogy hibát okozzon abban a folyamatban, amelyben a gépek egyeztetik, melyikük legyen a főtallózólista vezetője és melyikük a főtallózó Az ilyen problémák más (kétértelmű) hibákat is okozhatnak a későbbi tesztek során. Ha a kiszolgálón lefutott a teszt, akkor ismételjük meg az ügyfélnél is. 276 | SAMBA Hibakeresés a TCP-ben Miután a ping parancs segítségével teszteltük az IP-t, az UDP-t és a névszolgáltatást, itt az ideje, hogy a TCP-t is teszteljük. Amíg a ping és a tallózás az ICMP (Internet Control Message Protocol) és az UDP (User Datagram Protocol) protokollokat használja, addig a fájlés nyomtatószolgáltatások a kapcsolódásokat a TCP (Transmission Control Protocol) protokoll szerint hozzák létre Mindegyik protokoll alapja az alsóbb szintű IP protokoll, és ezek mindegyike a névszolgáltatástól függ. A TCP-t legkényelmesebben egy FTP (fájlátviteli protokoll) program

segítségével tesztelhetjük (természetesen csak akkor, ha fut FTP kiszolgáló az adott számítógépen - a lektor megjegyzése). A TCP tesztelése FTP-vel Hozzunk létre FTP-s kapcsolatot először a kiszolgálóról magához a kiszolgálóhoz, majd az ügyféltől a kiszolgálóhoz: server% ftp server Connected to server.examplecom 220 server.examplecom FTP server (Version 62/OpenBSD/Linux-010) ready. Name (server:davecb): 331 Password required for davecb. Password: 230 User davecb logged in. ftp> quit 221 Goodbye. Ha ez sikerült, akkor ugorjunk át a fejezet ,,Hibakeresés a kiszolgáló démonjaiban” című részére. Ellenkező esetben: • Ha a ,,server: unknown host” üzenetet kapjuk, akkor nem sikerült a névfeloldás. Menjünk vissza a ,,Helyi névszolgáltatás tesztelése a ping paranccsal” című fejezetrészre, és futtassuk újra az ott bemutatott teszteket, hogy lássuk, miért hibás a helyi névfeloldás. • Ha az ,,ftp: connect: Connection refused”

üzenetet kapjuk, akkor a gép nem futtat egy FTP démont. Ez meglehetősen szokatlan lenne Unix kiszolgálókon Megpróbálkozhatunk még azzal, hogy FTP helyett telnettel kapcsolódunk a géphez; ennek hasonlóak az üzenetei, és a telnet is TCP protokollt használ. • Ha hosszú szünet következett, majd az ,,ftp: connect: Connection timed out” üzenetet kapjuk, akkor a gép nem érhető el. Térjünk vissza a fejezet ,,Kapcsolódások tesztelése a ping paranccsal” című fejezetrészre. • Ha az ,,530 Logon Incorrect” üzenetet kapjuk, akkor a kapcsolódás sikeres volt, csak éppen más probléma merült fel. Feltehetően hibás felhasználónevet vagy jelszót adtunk meg. Próbáljuk újra, és győződjünk meg arról, hogy a Unix kiszolgálóról a felhasználónevünket használtuk, és helyesen írtuk be a jelszavunkat 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 277 Hibakeresés a kiszolgáló démonjaiban Miután meggyőződtünk arról, hogy helyesen működik a

TCP hálózat, következő lépésként azt vizsgáljuk, hogy futnak-e a démonok a kiszolgálón. Ehhez három különálló tesztet kell futtatnunk, mert önmagában egyik sem garantálja ezek helyes működését Akkor lehetünk biztosak a démonok futásában, ha tudjuk, hogy: 1. A démonok elindultak 2. A démonokat az operációs rendszer regisztrálja vagy hozzáköti egy TCP/IP-hez 3. A démonok figyelő állapotban vannak Mielőtt elkezdenénk Először vizsgáljuk meg a naplókat. Ha elindítottuk a démonokat, tartalmazniuk kell az ,,smbd version valamilyen szám started” üzenetet. Amennyiben nem így lenne, újra kell indítanunk a Samba démonjait. Ha a démon azt jelenti magáról, hogy elindult, akkor keressünk egy ,,bind failed on port 139 socket addr=0 (Address already in use)” bejegyzést. Ez azt jelenti, hogy egy másik démon már el lett indítva a 139-es porton (smbd). Az nmbd is hasonló hibát jelezne, ha nem tudna kötődni a 137-es porthoz. Ekkor vagy az

történt, hogy kétszer indítottuk el a démonokat, vagy az intetd próbált meg elindítani egy démont. Ez utóbbira azonnal kitérünk Démon processzeinek keresése a ps paranccsal Következő lépésként meg kell néznünk, hogy elindultak-e a démonok. Adjuk ki a kiszolgálón a ps parancsot a géptípusra vonatkozó long paraméterrel (ez általában a ps ax vagy a ps -ef), hogy lássuk, fut-e az smbd vagy az nmbd valamelyike. Ekkor az alábbihoz hasonló jelenhet meg: server% ps ax PID TTY STAT TIME COMMAND 1 ? S 0:03 init [2] 2 ? SW 0:00 (kflushd) (.processzek sorai) 234 ? S 0:14 nmbd -D3 237 ? S 0:11 smbd -D3 (.további sorok, köztük további smbd sorok) A fenti példából látható, hogy mind az smbd, mind az nmbd démon önálló démonként elindult (a -D utal erre) 3-as naplózási szinttel. Portokhoz kötött démonok keresése Következő lépésként a démonoknak regisztráltatniuk kell magukat az operációs rendszerrel, hogy hozzáférhessenek a TCP/IP

portokhoz. A netstat parancs ad tájékoztatást ennek a megtörténtéről. Futtassuk a kiszolgálón a netstat -a parancsot, és keressük meg a netbios, a 137 vagy a 139 tartalmú sorokat: 278 | SAMBA server% netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address udp 0 0 *.netbios*.* tcp 0 0 *.netbios*.* LISTEN tcp 8370 8760 server.netbiosclient1439 ESTABLISHED (state) vagy: server% netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address udp 0 0 *.137 *.* tcp 0 0 *.139 *.* LISTEN tcp 8370 8760 server.139 client.1439 ESTABLISHED (state) Sok hasonló sor között kell lennie legalább egy olyan UDP sornak, amely tartalmazza a *.netbios- vagy a *.137 szövegelemet Ez jelzi azt, hogy az nmbd démon regisztrálva van, és (remélhetőleg) várja, hogy válaszolhasson a kérésekre. Emellett kell lennie legalább egy olyan TCP sornak, amelyben megtalálható a *.netbios-

vagy a *.139 szövegelem, és ez is figyelő (LISTEN) állapotú Ez azt jelenti, hogy az smbd démon is fut, és figyeli a kapcsolódásokat. Más TCP sorok is lehetnek a kimenetben, amelyek az smbd más ügyfelekkel fennálló kapcsolatait jelzik (mindegyik ügyfélhez egy-egy sor). Ezek a sorok általában ESTABLISHED (= létrejött) állapotot jeleznek Ha vannak ilyen állapotú smbd sorok, akkor biztosak lehetünk abban, hogy fut az smbd démon. Ha csak egyetlen sornak LISTEN az állapota, akkor még nem lehetünk biztosak ebben. Ha mindkét sor hiányzik, akkor az egyik démonnak nem sikerült elindulnia – ekkor ellenőrizzük a naplófájlokat, és lapozzunk vissza a 2. fejezethez Ha minden egyes ügyfélhez tartozik egy sor, akkor az vagy a Samba démonjától, vagy az inetd szuperdémonból származhat. Könnyen elképzelhető, hogy az inetd indító fájl olyan sorokat tartalmaz, amelyek elindítják a Samba démonjait anélkül, hogy tudnánk erről. Ilyen sorok például

akkor kerülhetnek be a fájlba, ha a Sambát egy Linux disztribúció részeként telepítettük Ha a démonokat az inetd indítja el, akkor magunk nem indíthatjuk már ezeket Ha megtennénk, akkor általában olyan üzenetek kerülnének a naplófájlokba, mint a ,,bind failed on port 139 socket addr=0 (Address already in use)” Ellenőrizzük az /etc/inetd.conf fájl tartalmát; hacsak nem kifejezetten az a szándékunk, hogy innen induljanak a démonok, akkor a fájl semmiféle netbios-ns (udp port 137) vagy netbios-ssn (tcp port 139) szövegelemet nem tartalmazhat. Az inetd különböző szolgáltatásokat nyújtó démon, amelynek a viselkedését az /etc/inetd.conf fájl bejegyzései határozzák meg. Ha a rendszerünkben az inetd szolgáltatja a Samba valamelyik démonját, akkor a fájlban az alábbiakhoz hasonló sorok lehetnek: 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 279 netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns dgram udp wait root

/usr/local/samba/bin/nmbd nmbd Az smbd ellenőrzése telnettel Kissé humoros, de legegyszerűbben mégis úgy tesztelhetjük az smbd démon működését, hogy egy jelentés nélküli üzenetet küldünk ki rá, és megfigyeljük, visszautasítja-e. Próbálkozzunk a következővel: echo hello | telnet localhost 139 Ez a parancs egy hibás, de nem káros üzenetet küld az smbd démonra. Az üzenetben fontos a hello szó. Ne próbálkozzunk más üzeneteket küldeni a telnettel a portra; előfordulhat, hogy ,,kiakasztjuk” a processzt A hello üzenet általában nem okoz problémát server% echo "hello" | telnet localhost 139 Trying Trying 192.168220100 Connected to localhost. Escape character is ’^]’ Connection closed by foreign host. Ha egy ,,Connected” majd ezt követően egy ,,Connection closed” üzenetet kapunk, akkor a teszt sikeresen lefutott. A porton létezik egy figyelő állapotú smbd démon, amely visszautasítja a hibás kapcsolódási kérelmeket

Ha viszont a ,,telnet: connect: Connection refused” üzenetet kapjuk vissza, akkor feltehetően nem kapcsolódik démon a porthoz Ellenőrizzük a naplófájlokat, és lapozzunk vissza a 2 fejezethez Az nmbd démont sajnos nem tesztelhetjük ilyen könnyen. Ha mind a telnet, mind a netstat teszt azt mutatja, hogy fut egy smbd démon, akkor jó esélyünk van arra is, hogy a netstat az nmbd futását is helyesen jelentette. A démonok tesztelése a testparm programmal Ha már tudjuk, hogy futnak a démonok, mindig futtassuk le a testparm programot, remélve, hogy a következő bejegyzéseket kapjuk: server% testparm Load smb config files from /opt/samba/lib/smb.conf Processing section "[homes]" Processing section "[printers]" . Processing section "[tmp]" Loaded services file OK. A testparm program normál esetben sorra jelenti, hogy feldolgozza a különböző szakaszokat, majd miután végzett velük, a ,,Loaded services file OK” üzenettel jelenti,

hogy mindent rendben talált. Ha nem ez lenne a helyzet, akkor az alábbi üzenetek valamelyikét küldi – amelyet egyébként a naplófájlba is feljegyez: 280 | SAMBA ,,Allow/Deny connection from account (n) to service” A testparm parancs akkor küldi ezt az üzenetet, ha érvényes/érvénytelen felhasználói beállításokat vettünk fel az smb.conf fájlba Meg kell bizonyosodnunk arról, hogy rajta vagyunk az érvényes felhasználók listáján, a root, a bin stb. pedig az érvénytelen felhasználók listájában szerepelnek. Ha nem így lenne, akkor magunk nem tudnánk kapcsolódni, míg mások, akiknek nem volna szabad kapcsolódniuk, képesek lennének erre. ,,Warning: You have some share names that are longer than eight chars" Ez az üzenet Windows for Workgroups vagy régebbi rendszereket használó ügyfeleknek szól. Az ilyen ügyfelek nem tudnak kapcsolódni olyan megosztásokhoz, amelyeknek nyolcnál több karakterből áll a nevük. Az ilyen

megosztásra irányuló kapcsolódáskor a program túlcsordulási hibát jelez, ami kissé megtévesztő – úgy hangzik, mintha memóriatúlcsordulás következett volna be. ,,Warning: [name] service MUST be printable!” Egy nyomtatómegosztásból kimaradt a printable = yes beállítás. ,,No path in service name using [name]” Egy fájlmegosztás nem tudja, hogy melyik könyvtárat kell szolgáltatnia a felhasználó számára, vagy egy nyomtatómegosztás nem tudja, hogy melyik könyvtárat kell használnia a várakozó nyomtatási feladatok tárolásához. Ha nem adtunk meg elérési utat, akkor a szolgáltatás a /tmp elérési úttal próbálkozik, ami viszont nem biztos, hogy megegyezik a szándékunkkal. ,,Note: Servicename is flagged unavailable” Csak egy figyelmeztetés arra vonatkozóan, hogy egy megosztásba az available = no (nem elérhető) beállítást vettük fel. ,,Can’t find include file [name]” Egy include beállításhoz nem létező konfigurációs

fájlt rendeltünk. Ha a fájlt feltétel nélkül akartuk beilleszteni, akkor emögött valószínűleg súlyos hiba húzódik meg: a megosztásnak nem a szándékaink szerinti a konfigurációja. Ha a beillesztést valamilyen változótól, például a %a (architektúra) változótól tettük függővé, akkor meg kell állapítanunk, hogy például egy hiányzó Windows for Workgroups konfigurációs fájl okozza-e a problémát. Gyakran nem ez a hiba oka ,,Can’t copy service name, unable to copy to itself” Az smb.conf fájl egyik szakaszát önmagára akartuk másolni ,,Unable to copy service-source not found: [name]” Arra figyelmeztet, hogy a copy = beállításhoz nem rendeltünk szakaszt, vagy hibásan írtuk be a szakasz nevét. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 281 ,,Ignoring unknown parameter name” Általában egy elavult, hibásan beírt vagy nem támogatott beállításra hívja fel a figyelmet. ,,Global parameter name found in service section” Arra

figyelmeztet, hogy csak globális hatókörrel rendelkező paramétert adtunk meg egy egyedi megosztásban. A Samba az ilyen paramétert figyelmen kívül hagyja Miután lefuttattuk a testparm tesztet, ismételjük meg (pontosan) három paraméterrel: az smb.conf fájl nevével, az ügyfelünk nevével és az IP címével: testparm samba könyvtár/lib/smb.conf client 192168220105 Ez még egy tesztet futtat le, amely megvizsgálja a gazdanevet és -címet a host allow és a host deny beállításokra vonatkozóan, és az ,,Allow/Deny connection from account fióknév to service” üzenetet küldheti az illető ügyfélgéppel kapcsolatban. Az üzenet azt jelzi, hogy érvényes/érvénytelen gazdabeállítások vannak az smb.conf fájlban, amelyek nem engedélyezik az ügyfélgépnek a szolgáltatás elérését. A testparm /usr/local/lib/ kísérleti.conf teszt lefuttatása is hasznos módja egy kísérleti smbconf fájl tesztelésének, mielőtt még a valós szerepében

használnánk a konfigurációs fájlt Hibakeresés az SMB kapcsolatokban Miután már tudjuk, hogy elindultak a démonok, meg kell győződnünk arról, hogy helyesen is futnak. A vizsgálatot a samba directory/lib könyvtárban lévő smbconf fájllal kezdjük el. A minimális smb.conf fájl A most következő tesztek során feltételezzük, hogy van egy tesztelésre alkalmas [temp] megosztásunk, továbbá legalább egy fiókunk. Ezek az alábbi smbconf fájllal valósíthatók meg: [global] workgroup = EXAMPLE security = user browsable = yes local master = yes [homes] guest ok = no browseble = no [temp] path = /tmp public = yes 282 | SAMBA Figyelmeztetés: A [temp] megosztásban szereplő public = yes beállítás csak tesztelési célokat szolgál. Feltehetően nem az a szándékunk, hogy bármilyen, fiókkal nem rendelkező személy tárolhassa a dolgait a Samba kiszolgálónkon; miután elvégeztük a tesztet, töröljük a beállítást, vagy megjegyzéssé

minősítsük át. Tesztelés helyileg az smbclient programmal Elsőként vizsgáljuk azt, hogy képes-e a kiszolgáló a saját szolgáltatásainak (megosztásainak) felsorolására. Futtassuk az smbclient parancsot az -L localhost kapcsolóval, hogy önmagához kapcsolódjon, és az -U% kapcsolóval, ami a vendégfelhasználót jelenti. Ekkor a következőt kell látnunk: server% smbclient -L localhost -U% Server time is Wed May 27 17:57:40 1998 Timezone is UTC-4.0 Server=[localhost] User=[davecb] Workgroup=[EXAMPLE] Domain=[EXAMPLE] Sharename Type Comment -------------------------------------temp Disk IPC$ IPC IPC Service (Samba 1.918) homes Disk Home directories This machine does not have a browse list Ha ezt a kimenetet kaptuk, akkor térjünk rá a ,,Kapcsolódások tesztelése az smbclient programmal” című következő fejezetrészre. Ellenkező esetben, ha valamilyen hiba történt, vizsgáljuk a következőket: • Ha a ,,Get hostbyname: unknown host localhost” üzenetet

kapjuk, akkor vagy hibásan írtuk be a nevet, vagy valamilyen más probléma fordult elő (aminek a ,,Helyi névszolgáltatás tesztelése a ping paranccsal” című fejezetrészben nézhetünk utána). Az utóbbi esetben lapozzuk fel a ,,Hibakeresés a névszolgáltatásban” című fejezetrészt. • Ha a ,,Connect error: Connection refused” üzenetet kapjuk, akkor a kiszolgálót ugyan sikerült megtalálni, de nem fut rajta az nmbd démon. Lapozzunk vissza a ,,Hibakeresés a kiszolgáló démonjaiban” című fejezetrészre, és teszteljük újra a démonokat. • Ha a ,,Your server software is being unfriendly” üzenetet kapjuk, akkor a kapcsolatfelvételt kérő első csomagra érthetetlen válasz érkezett a kiszolgálóról. Lehetséges, hogy összeomlott a kiszolgáló, vagy hibásan lett elindítva. A hiba okának kiderítéséhez nézzük át a naplófájlokat, és keressük a következőket: – Hibás parancssori paraméterek lettek megadva az smbd parancshoz;

lásd az smbd kézikönyvét. – Az smb.conf fájlban olyan hiba van, amely megakadályozza az smbd indulását Mindig vizsgáljuk át a változtatásokat, ahogyan ezt a ,,A démonok tesztelése a testparm programmal” fejezetrészben tettük. – Hiányoznak azok a könyvtárak, melyek a Samba a napló- és a zárolási fájljait tárolják. – Már van egy kiszolgáló a porton (a 139-es port az smbd, a 137-es port az nmbd démoné), ami megakadályozza az indulását. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 283 • Ha a démonokat nem önállóan, hanem az inetd szuperdémonból indítottuk, akkor a kézikönyvekben nézzünk utána, hogy nincsenek-e hibák az /etc/inetd.conf és az /etc/services bejegyzéseiben. • Ha felszólítást kapunk a jelszó megadására, akkor hibásan van beállítva a vendégfiók. A %U változó azt közli az smbclient programmal, hogy ,,null bejelentkezést” végezzen, ami megköveteli, hogy létezzen vendégfiók, de nem igényli, hogy

bármilyen privilégium tartozzon hozzá. • Ha az ,,SMBtconX failed. ERRSRV-ERRaccess” üzenetet kapjuk, akkor nincs engedélyünk a kiszolgáló eléréséhez. Ez általában azt jelenti, hogy vagy olyan valid hosts beállítást használtunk, amely nem foglalja magában a kiszolgálót, vagy olyan invalid hosts beállítást használtunk, amely viszont magában foglalja a kiszolgálót. Adjuk ki újra a testparm smb.conf saját gazdanév saját ip cím parancsot (lásd ,,A démonok tesztelése a testparm paranccsal” című fejezetrészt), és javítsuk ki a nem szándékos tiltásokat. Kapcsolódások tesztelése az smbclient programmal Adjuk ki az smbclient \server emp parancsot, amely kapcsolatot hoz létre a kiszolgálónk /temp megosztásával, hogy lássuk, tudunk-e kapcsolódni egy fájlmegosztáshoz. A következő választ kell kapnunk: server% smbclient ’\server emp’ Server time is Tue May 5 09:49:32 1998 Timezone is UTC-4.0 Password: smb: > quit • Ha

válaszként a ,,Get Hostbyname: Unknown host name”, ,,Connect error: Connection refused” vagy a ,,Your server software is being unfriendly” üzenetek valamelyikét kapjuk, akkor a diagnózis felállításához lapozzunk vissza a ,,Tesztelés helyileg az smbclient programmal” című fejezetrészre. • Ha a ,,servertemp: Not enough ‘’ characters in service” üzenetet kapjuk, akkor valószínűleg nem tettük idézőjelek közé a címet, ezért a Unix átugrotta a fordított törtvonal () karaktereket. A parancs az alábbi alakban is beírható: smbclient \\server\temp vagy smbclient //server/temp Ezt követően a Password promptra adjuk meg a unixos fiókunk jelszavát. Ha ez után egy smb> promptot kapunk, akkor a parancs sikeresen lefutott. Lépjünk ki a quit beírásával, majd térjünk rá a ,,Kapcsolódások tesztelése a NET USE paranccsal” című fejezetrészre. Ha viszont az ,,SMBtconX failed. ERRSRV-ERRinvnetname” üzenetet kapjuk, akkor a probléma

az alábbiak valamelyike lehet: • Hibás megosztásnév: lehet, hogy elírtuk a megosztás nevét vagy túl hosszú a név, lehet, hogy vegyesen használtunk nagy- és kisbetűket, de az is lehet, hogy nem áll rendelkezésre a megosztás. Futtassuk le újra a testparm programot (lásd ,,A démonok tesztelése a testparm programmal” című fejezetrészt). 284 | SAMBA • security = share beállítás, amelybe esetleg fel kellett volna venni az smbclient parancshoz az -U saját fiók paramétert, vagy tudni kellett volna egy temp nevű unixos fiók jelszavát. • Hibás felhasználónév. • Hibás jelszó. • Olyan invalid users vagy valid users beállítás az smb.conf fájlban, amely nem engedi, hogy kapcsolódjunk a fiókunkhoz. Teszteljük újra a testparm smbconf saját gazdanév saját ip cím parancs futtatásával (lásd ,,A démonok tesztelése a testparm paranccsal” című fejezetrészt). • Olyan valid hosts beállítás, amely nem foglalja magában a

kiszolgálót, vagy olyan invalid hosts beállítás, amely tartalmazza a kiszolgálót. Ebben az esetben is futtassuk újra a testparm programot • Hitelesítési probléma, ha például shadow jelszavakat vagy PAM (Password Authentication Module) modulokat használ a kiszolgáló, viszont a Samba úgy lett lefordítva, hogy ne használja ezeket a jellemzőket. Ez ugyan ritka eset, de előfordulhat, ha egy SunOS 4 Samba bináris (nem használ shadow jelszavakat) újrafordítás nélkül fut egy Solaris rendszeren (ez használ shadow jelszavakat). • Szerepel az encrypted passwords = yes beállítás a konfigurációs fájlban, de az smbpasswd fájl nem tartalmaz jelszót a fiókunkhoz. • Szerepel egy null jelszóbejegyzés akár a Unix /etc/passwd fájljában, akár az smbpasswd fájlban. • A [temp] megosztáshoz kapcsolódunk, de nem szerepel a guest ok = yes beállítás az smb.conf fájl [temp] szakaszában • A [temp] megosztáshoz kapcsolódunk, mielőtt még a home

könyvtárunkhoz kapcsolódtunk volna, és a vendégfiók hibásan van konfigurálva. Ha képesek vagyunk kapcsolódni a home könyvtárhoz, majd a [temp] megosztáshoz, akkor ez a hiba A 2 fejezetben részletesen olvashattunk arról, miként készíthetünk el egy egyszerű Samba konfigurációs fájlt A hibásan megadott vendégfiók azt követően is megakadályozhat bennünket a nyomtatásban és a tallózásban, hogy bejelentkeztünk a home könyvtárunkba. Ennek a hibának még egy másik oka is lehet, amelynek viszont semmi köze a jelszavakhoz: az smb.conf fájlban a path = line beállítás valamilyen nem létező helyre mutat Ezt a hibát nem jelzi ki a testparm program, és a Samba ügyfelek többsége is hibás felhasználói fióknak tekinti. A hibát kézzel kell kijavítani Miután sikerült kapcsolódnunk a [temp] megosztáshoz, ismételjük meg a tesztet, ezúttal a home könyvtárba való bejelentkezéssel (vagyis képezzük le a serverdavecb hálózati meghajtót),

és nézzük, előfordul-e hiba. Ha a futásához bármit meg kellett változtatnunk, akkor újra futtassuk le a tesztet a [temp] megosztásra Kapcsolódások tesztelése a NET USE paranccsal DOS vagy Windows ügyfélnél futtassuk a net use * \server emp parancsot, hogy lássuk, tud-e kapcsolódni a kiszolgálóhoz. Felszólítást kell kapnunk a jelszó beírására, majd a ,,The command was completed successfully” üzenetet kell kapnunk, ha sikerült a kapcsolatfelvétel (lásd a 9.2 ábrát) 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 285 9.2 ábra A NET USE parancs kimenete Ha sikeresen lefutott ez a parancs, akkor hajtsuk végre a ,,Kapcsolódások tesztelése a Windows Intézőjében” című fejezetrészben leírt lépéseket. Ellenkező esetben: • Ha a ,,The specified shared directory cannot be found” vagy a ,,Cannot locate specified share name” üzenetet kapjuk, akkor vagy hibásan írtuk be a könyvtár nevét, vagy nem létezik az smb.conf fájlban Az üzenet arra

is figyelmeztethet, hogy vegyesen használtunk kis- és nagybetűket a névben, szóközöket tartalmaz vagy nyolc karakternél hoszszabb a név • Ha a ,,The computer name specified in the network path cannot be located” vagy a ,,Cannot locate specified computer” üzenetet kapjuk, akkor lehetséges, hogy rosszul írtuk be a könyvtár nevét, nem működik a névszolgáltató, valamilyen hálózati probléma lépett fel, vagy a hosts deny = beállításban szerepel a gazdanév. – Ha a hiba oka nem a hibás írásmód, akkor vissza kell lapoznunk legalább a ,,Kapcsolódások tesztelése az smbclient programmal” című fejezetrészhez, hogy kiderítsük, miért nem jött létre a kapcsolat. 286 | SAMBA – Ha az smbclient program működik, akkor a névszolgáltatással lehet probléma, és előre kell ugranunk a ,,Kiszolgáló tesztelése az nmblookup programmal” című fejezetrészre, hogy megvizsgáljuk, megtalálható-e a program segítségével mind az ügyfél,

mind a kiszolgáló. • Ha a ,,The password is invalid for serverusername” üzenetet kapjuk, akkor az ügyfélnél helyileg tárolt másolat nem egyezik meg a kiszolgálón lévővel. Felszólítást kapunk a cseréjére. A Windows 95 és 98 ügyfelek fenntartanak egy helyi jelszófájlt, ami azonban nem más, mint annak a jelszónak a tárolt másolata, amit a Samba vagy egy NT kiszolgálónak elküld hitelesítés céljából. Az üzenet felszólítása erre vonatkozik Windows gépre továbbra is bejelentkezhetünk jelszó nélkül (NT-re viszont nem). Ha a jelszó megadása ellenére nem fut le a teszt, akkor a megadott jelszó nem felel meg a kiszolgálón tárolt jelszóval, létezik egy valid users vagy invalid users lista, amelyik megtagadja az engedélyt, közbeavatkozik a NetBEUI protokoll, vagy a titkosított jelszóval van valamilyen probléma (lásd a következő bekezdést). • Ha az ügyfélgépen az NT 4.0, az NT 35 a 3-as szervizcsomaggal, a Windows 95 a 3-as

szervizcsomaggal vagy a Windows 98 valamelyike fut, és az Internet Explorer 4.0 tallózót tartalmazza a rendszer, akkor a jelszavak alapértelmezés szerint Microsoft-titkosításúak (lásd a 6 fejezet ,,Jelszavak” című részét) Ha újabban telepítettünk egy nagyobb Microsoft alkalmazást, vagy frissítettünk egy régebbit, akkor bekapcsolhatjuk a titkosított jelszavak használatát. Mivel az Internet Explorer késznek mutatkozott arra, hogy SMB kapcsolatokon keresztül elérhetővé tegyen olyan URL címeket, mint a fájl://valamilyen gazda/valamilyen fájl, az ügyfelek egészen a Windows 95 2-es szervizcsomagjáig bezárólag nyugodtan elküldhették normál szövegként a jelszavaikat az SMB kiszolgálóra bárhol az interneten. Ez azonban nem bizonyult helyesnek, ezért a Microsoft gyorsan áttért arra, hogy csak titkosított jelszavakat engedett meg az SMB protokollban. Az azóta kibocsátott valamennyi terméke tartalmazza ezt a javítást A titkosított

jelszavakra egyébként nincs szükség, hacsak nem egy tűzfal nélküli hálózaton Internet Explorer 4.0-t használunk Titkosítás nélküli jelszavak használatát csak a saját hálózatunkon belül engedjük meg. • Ha a Unixban vegyesen fordulnak elő a kis- és nagybetűk a jelszóban, akkor az ügyfél feltehetően vagy csak kisbetűket, vagy csak nagybetűket használva küldte el a jelszavát. Ha ilyenre változtatjuk a jelszavunkat, akkor ez volt a probléma. Sajnos az ügyfelek a legrégebbiek kivételével a nagybetűs jelszavakat támogatják, ezért a Samba először a csupa nagybetűsre, majd a csupa kisbetűsre alakított jelszavakkal próbálkozik. Ha vegyesen szeretnénk használni a nagy- és a kisbetűket a jelszavakban, akkor a probléma megkerüléséhez használjuk a 6. fejezetben ismertetett password level beállítást 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 287 • Probléma lehet a valid users beállítással, amint ezt az smbclient programmal is

teszteltük (lásd a ,,Kapcsolódások tesztelése az smbclient programmal” című fejezetrészt). • Lehetséges, hogy a NetBEUI protokoll telepítve van az ügyfél gépére. Ebből gyakran időtúllépések és más hibák származhatnak, és a múltban problémát okoztak a jelszavak elfogadásában. A Microsoft technológiában a ,,kötés” azt jelenti, hogy egy szoftver hozzá van kapcsolva egy másik szoftverhez. A Microsoft SMB ügyfél hozzá van kötve a TCP/IP protokollhoz, amint ezt a Hálózat TCP/IP tulajdonságai párbeszédablak Kötések lapján is láthatjuk. Ezzel szemben a TCP/IP itt egy Ethernet kártyához van hozzákötve Ez nem ugyanazt jelenti, mint egy SMB démonnak egy TCP/IP porthoz való kötése. Kapcsolódások tesztelése a Windows Intézőjében Indítsuk el a Windows vagy az NT Intézőjét, az Eszközök menüből adjuk ki a Hálózati meghajtó csatlakoztatása parancsot, és jelöljük ki a \server emp tételt, hogy lássuk, létrehozható-e

az Intézőből a kapcsolat a /tmp könyvtárhoz. Ekkor a 93 ábrán láthatóhoz hasonló párbeszédablaknak kell megnyílnia. Ha így történt, akkor létrejött a kapcsolat, és átugorhatunk a ,,Hibakeresés a tallózásban” című fejezetrészre. 9.3 ábra Kapcsolódás a /tmp könyvtárhoz a Windows Intézőjéből 288 | SAMBA Rövid figyelmeztetés: A Windows és az NT Intézője elsősorban nem diagnosztikai eszköz: figyelmeztet ugyan a hibára, de az okát nem árulja el. Ha problémába ütközünk, akkor inkább a NET USE parancsot használjuk, ami ennél sokkal bővebb tájékoztatást nyújt. • Ha a ,,The password for this connection that is in your password file is no longer correct” üzenetet kapjuk, akkor a hibának a következő okai lehetnek: – A helyileg tárolt másolat nem egyezik meg a kiszolgálón lévővel. – Nem adtunk meg felhasználónevet és jelszót, amikor bejelentkeztünk az ügyfélre. Az Intéző általában a null

felhasználónevet és jelszót küldi el még akkor is, ha megadtunk egy jelszót. – Hibásan írtuk be a jelszót. – Létezik egy valid users vagy invalid users lista, amelyik megtagadja az engedélyt. – Az ügyfélgépen az NT 4.0, az NT 35 a 3-as szervizcsomaggal, a Windows 95 a 3-as szervizcsomaggal vagy a Windows 98 valamelyike fut, és az Internet Explorer 4.0 tallózót tartalmazza a rendszer. Ezek mindegyike titkosított jelszót igényel – A jelszóban vegyesen fordulnak elő a kis- és a nagybetűk, az ügyfél viszont vagy csupa kisbetűs, vagy csupa nagybetűs jelszót küldött. • Ha a ,,The network name is either incorrect, or a network to which you do not have full access” vagy a ,,Cannot locate specified computer” üzenetet kapjuk, akkor az alábbi hibák lehetségesek: – hibásan beírt név; – hibásan működő szolgáltatás; – hibás megosztás; – rosszul megadott path sor; – magunkat kizáró hosts deny sor. • Ha a ,,You must supply a

password to make this connection” üzenetet kapjuk, akkor az ügyfélnél lévő jelszó nincs szinkronizálva a kiszolgálón lévő jelszóval, vagy ez az első alkalom, hogy az ügyféltől ezzel a jelszóval jelentkezünk be, és az ügyfél helyileg még nem tárolta el a jelszót. • Ha a ,,Cannot locate specified share name” üzenetet kapjuk, akkor vagy rosszul írtuk be a megosztás nevét, vagy szintaktikai hibát követtünk el a megosztás specifikálásakor, de az is lehet, hogy a megosztás neve nyolc karakternél hosszabb, vagy szóközöket tartalmaz, vagy vegyesen fordulnak elő benne kis- és nagybetűk. Ha sikerült megbízhatóan kapcsolódni a [temp] könyvtárhoz, akkor próbáljuk meg újra, ezúttal a home könyvtárt használva. Ha bármit változtatnunk kellett ahhoz, hogy létrehozhassuk a kapcsolatot a home könyvtárhoz, akkor újra futtassuk le a tesztet a [temp] könyvtárra, majd fordítva, amint ezt a ,,Kapcsolódások tesztelése a NET USE

paranccsal” című fejezetrészben tettük. Ha az Intézőben nem sikerül valami, akkor – mint mindig – térjünk vissza ehhez a fejezetrészhez, és ott folytassuk a hibakeresést. Hibakeresés a tallózásban Végre eljutottunk a tallózáshoz. Ezt a témakört nem azért hagytuk a végére, mert ez a legnehezebb, hanem azért, mert ez a szolgáltatás egyrészt nem kötelező, másrészt pedig részben olyan protokolltól függ, ami nem garantálja a csomagok továbbítását. A tallózás- 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 289 nál nehéz diagnózist készíteni, ha nem tudnánk előre, hogy a többi szolgáltatás már hibátlanul fut. A tallózás egyáltalán nem kötelező: ez mindössze csak az egyik módja annak, hogy megkeressük a hálózaton a kiszolgálókat és a rajtuk keresztül elérhető megosztásokat. A Unix például egészen jól boldogul tallózás nélkül is. A tallózás még azt is feltételezi, hogy az összes gép egyetlen helyi

hálózatban van, ahol engedélyezett az üzenetszórás (broadcast). A tallózás a gépeket először a nem megbízható UDP protokollon keresztül azonosítja, majd egy megbízható TCP/IP protokollon keresztül hozza létre azt a kapcsolatot, amely felsorolja az illető gépen elérhető megosztásokat. A tallózás tesztelése az smbclient programmal Kezdjük a megbízható kapcsolat tesztelésével. A kiszolgálóról próbáljuk meg felsorolni a saját megosztásait úgy, hogy az smbclient programot az -L kiszolgálónév kapcsolóval hívjuk meg. Eredményül ehhez hasonlót kell kapnunk: server% smbclient -L server Added interface ip=192.168220100 bcast=192168236255 nmask=255.2552550 Server time is Tue Apr 28 09:57:28 1998 Timezone is UTC-4.0 Password: Domain=[EXAMPLE] OS=[Unix] Server=[Samba 1.918] Server=[server] User=[davecb] Workgroup=[EXAMPLE] Domain=[EXAMPLE] Sharename Type Comment -----------------cdrom Disk CD-ROM cl Printer Color Printer 1 davecb Disk Home Directories

This machine has a browse list: Server Comment ---------------SERVER Samba 1.918 This machine has a workgroup list: Workgroup Master --------------EXAMPLE SERVER • Ha a parancs kimenete nem tartalmazza a Sharename listát, akkor a kiszolgáló nem engedélyezi a megosztásai tallózását. Ez azonban nem fordulhat elő, ha a Windows Intézőjében vagy a NET USE paranccsal már teszteltük akármelyik megosztást. Ha még 290 • • • • • | SAMBA nem futtattuk volna le az smbclient -L localhost -U% parancsot (lásd a ,,A minimális smb.conf fájl” című alfejezetet), akkor tegyük meg most Elég egy hibásan megadott vendégfiók, és már nem lesznek láthatók a megosztások. Ellenőrizzük az smbconf fájlt is, hogy lássuk, nem tartalmaz-e egy valahol egy browsable = no beállítást. Induláshoz javasolható egy minimális smb.conf fájl használata (lásd a 4 fejezet elejét) A tallózást a browsable = yes beállítással engedélyeznünk kell ahhoz, hogy

legalább a [temp] megosztást láthassuk. Ha nem látjuk a tallózólistát, akkor a kiszolgáló semmiféle adatot sem árul el a hálózatban lévő gépekről. Legalább egy gépnek képesnek kell lennie a tallózólisták támogatására Ha azt szeretnénk, hogy a Samba legyen a helyi főtallózó, akkor vegyük fel a local master = yes beállítást az smb.conf fájlba Ha megjelenik a tallózólista, de a listában nem szerepel a /tmp bejegyzés, akkor feltehetően az smb.conf fájlban van valamilyen hiba Lapozzunk vissza ,,A démonok tesztelése a testparm programmal” című fejezetrészhez. Ha a munkacsoportok listájában nem szerepel a saját munkacsoportunk neve, akkor feltehetően hibásan van beállítva a munkacsoportunk az smb.conf fájlban Ha egyáltalán nem jelenik meg a munkacsoportok listája, akkor ellenőrizzük, nem hiányzik-e az smb.conf fájlból a workgroup = EXAMPLE beállítás Ha semmi sem jelenik meg, akkor újra próbálkozzunk az -I ip cím -n netbios

név -W munkacsoport -d3 paramétersorral úgy, hogy nagybetűkkel írjuk be a NetBIOS és a munkacsoport nevét (a d3 a 3-as naplózási szintet állítja be). Ha még most sem kapnánk semmit, akkor a korábbi tesztelések során valamit elrontottunk. Lépjünk vissza legalább ,,A TCP tesztelése FTP-vel” vagy a ,,Kapcsolódások tesztelése a ping paranccsal” című fejezetrészig. Más esetekben: • Ha az ,,SMBtconX failed. ERRSRV-ERRaccess” üzenetet kapjuk, akkor nincs engedélyünk a kiszolgálóhoz való hozzáféréshez Ez általában azt jelenti, hogy vagy olyan valid hosts beállítást használtunk, amely nem foglalja magában a kiszolgálót, vagy olyan invalid hosts beállítást használtunk, amely viszont magában foglalja a kiszolgálót. • Ha a ,,Bad password” üzenetet kapjuk, akkor feltehetően az alábbiak valamelyike áll fenn: – hibásan megadott hosts allow vagy hosts deny beállítás; – hibásan megadott invalid users vagy valid users

beállítás; – kisbetűs jelszó és OS/2 vagy Windows for Workgroups ügyfelek; – hiányzó vagy érvénytelen vendégfiók. Ellenőrizzük a vendégfiók beállítását (lásd a ,,Tesztelés helyileg az smbclient programmal” című fejezetrészt), teszteljük az smb.conf fájlt a testparm smbconf saját gazdanév saját ip cím parancs kiadásával, és változtassuk meg vagy alakítsuk megjegyzésekké a hosts allow, a hosts deny, a valid users és az invalid users beállításokat. • Ha a ,,Connection refused” üzenetet kapjuk, akkor az smbd démon nem fut, vagy öszszeomlott. Ellenőrizzük a netstat paranccsal a démon állapotát (lásd ,,A portokhoz kötött démonok keresése” című fejezetrészt). • Ha a ,,Get Hostbyname: Unknown host name” üzenetet kapjuk, akkor gépelési hibát követtünk el, vagy nem egyezik a Unix és a NetBIOS gazdanév, vagy a névszolgáltatás- 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 291 sal van baj. Keressük a hibát a

névszolgáltatásban a ,,Kapcsolódások tesztelése a NET USE paranccsal” című fejezetrészben leírtak szerint. Ha a teszt nem talált hibát, akkor névmegadási hibára gyanakodhatunk, és ugorjunk a ,,Hibakeresés a NetBIOS nevekben” című fejezetrészre. • Ha a ,,Session request failed” üzenetet kapjuk, akkor a kiszolgáló visszautasította a kapcsolatfelvételi kérelmet. Ez általában valamilyen belső hibát jelent, például azt, hogy kevés memória a művelet végrehajtásához. • Ha a ,,Your server software is being unfriendly” üzenetet kapjuk, akkor a kapcsolatfelvételt kérő első csomagra érthetetlen válasz érkezett a kiszolgálóról. Lehetséges, hogy összeomlott a kiszolgáló, vagy hibásan lett elindítva. Lapozzunk vissza a ,,Tesztelés helyileg az smbclient programmal” című fejezetrészhez, ahol először elemeztük ezt a problémát. • Ha az a gyanúnk, hogy nem fut a kiszolgáló, akkor lapozzunk vissza a ,,Démon proceszszeinek

keresése a ps paranccsal” című fejezetrészre, hogy lássuk, miért nem válaszolnak a kiszolgáló démonjai. Kiszolgáló tesztelése az nmblookup programmal Ez a teszt azt a ,,hirdetési” rendszert vizsgálja, amelyet a Windows névszolgáltatása és tallózása használ egy gép jelenlétének megállapításához. Egy gép egy ilyen üzenetszórásos (broadcasting) eljárással ,,hirdeti” ki, hogy jelen van a hálózatban, és kész a szolgáltatásai nyújtására. Ez a fajta hirdetés a tallózás része, amely a nem megbízható UDP protokollt használja, és csak az Ethernethez hasonló, üzenetszórást engedélyező hálózatokban valósítható meg. Az nmblookup program névlekérdezéseket szór szét az általunk megadott gazdanévre vonatkozóan, és a gép IP címével és a szolgáltatás nevével tér vissza, hasonlóan a DNS nslookup programjához. Az alábbi példában a -B kapcsoló (broadcast) egy adott gépre irányítja a lekérdezést. Először

vizsgáljuk meg a kiszolgálóról önmagát a kiszolgálót. Futtassuk úgy az nmblookup programot, hogy a -B kapcsoló és a kiszolgáló nevének megadásával a lekérdezést a kiszolgálóra irányítjuk, és keresendő névként adjuk meg a SAMBA szimbolikus nevet. Válaszként a következőket kell kapnunk: server% nmblookup -B server SAMBA Added interface ip=192.168220100 bcast=192168236255 nmask=255.2552550 Sending queries to 192.168220100 192168220100 SAMBA Vissza kell kapnunk a kiszolgáló IP címét, amely után a SAMBA név áll, ami azt jelenti, hogy a kiszolgáló sikeresen hirdette ki magáról, hogy jelen van, és nyújtja a SAMBA nevű szolgáltatását – következésképp a NetBIOS névszolgáltatásnak legalább egy része működik. • Ha a ,,Name query failed to find name SAMBA ” üzenetet kapjuk, akkor lehet, hogy rossz nevet adtunk meg a -B kapcsolóhoz, vagy nem fut az nmbd. A -B kapcsoló egyébként broadcast címet

vesz fel: mi a példában a gép nevét adtuk meg, hogy unicast címet kapjunk vissza, és megkérdeztük, hogy létezik-e rajta SAMBA nevű szolgáltatás. 292 | SAMBA • Próbálkozzunk újra a -B ip cím megadásával, és ha ez sem sikerül, akkor az nmbd valamilyen oknál fogva nem jelenti be a nevet. Térjünk vissza ,,Hibakeresés a kiszolgáló démonjaiban” című fejezetrészhez, hogy lássuk, fut-e az nmbd. Ha azt látjuk, hogy fut, akkor győződjünk meg arról, hogy az smb.conf fájl nem tartalmazza a browsing = no beállítást. Ügyfél tesztelése az nmblookup programmal Következő lépésként vizsgáljuk meg az ügyfél IP címét a kiszolgálóról úgy, hogy az nmblooup parancs paramétereiként a -B kapcsolóhoz az ügyfél nevét, a szolgáltatás neveként pedig a ’*’ helyettesítő karaktert adjuk meg, aminek itt ,,bármi” a jelentése: server% nmblookup -B client ’*’ Sending queries to 192.168220105 192168220105 * Got a positive name

query response from 192.168220105 (192.168220105) • Ha a ,,Name-query failed to find name *” üzenetet kapjuk, akkor vagy elírtunk valamit a parancsban, vagy az ügyfél gépén nincs telepítve az ügyfélszoftver, nem indult el, vagy nincs hozzákötve a TCP/IP-hez. Lapozzunk vissza a 2 vagy a 3 fejezethez, és bizonyosodjunk meg arról, hogy telepítettük az ügyfélszoftvert, és a szoftver figyeli a hálózatot Ha bármilyen hiba történt, ismételjük meg a parancsot a következő paraméterekkel: • Ha az nmblookup -B client IP cím parancs sikeresen lefut, de a -B client név nem, akkor névszolgáltatási problémával van dolgunk az ügyfél nevét illetően. Ugorjunk át a ,,Hibakeresés a névszolgáltatásban” című fejezetrészre • Ha az nmblookup -B 127.001’*’ parancs sikeresen lefut, de a -B client-IP cím nem, akkor hardverhibára gyanakodhatunk, és a ping parancs sem működhet. Lépjünk kapcsolatba a hálózat rendszerfelügyelőjével. A

hálózat tesztelése az nmblookup paranccsal Futtassuk újra az nmblookup parancsot ezúttal a -d2 (2-es hibakeresési, naplózási szint) kapcsolóval és a ’*’ paraméterrel. Ezúttal a programok (például az nmbd) azt a képességét vizsgáljuk, hogy képesek-e az üzenetszórásra. Ez lényegében egy kapcsolódási teszt, amely az alapbeállítás szerinti broadcast címre vonatkozik. A hálózatban lévő NetBIOS/TCP-IP gazdagépek egész sorának kell visszajeleznie a ,,got a positive name query response” üzenettel. A Samba a rövid figyelési ideje alatt nem foghatja be az összes választ, ezért nem fogjuk mindig látni a hálózathoz kapcsolódó összes SMB ügyfelet. A legtöbbjük azonban megjelenik: server% nmblookup -d 2 ’*’ Added interface ip=192.168220100 bcast=192168236255 nmask=255.2552550 Sending queries to 192168236255 Got a positive name query response from 192.168236191 (192168236191) Got a positive name query response from 192.168236228

(192168236228) Got a positive name query response from 192.16823675 (19216823675) 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 293 Got a positive name query response from 192.16823679 (19216823679) Got a positive name query response from 192.168236206 (192168236206) Got a positive name query response from 192.168236207 (192168236207) Got a positive name query response from 192.168236217 (192168236217) Got a positive name query response from 192.16823672 (19216823672) 192.168220100 * • Ha viszont ezek között nem szerepel az előzőleg vizsgált ügyfél címe, akkor hibás az alapbeállítás szerinti broadcast cím. Próbálkozzunk az nmblookup -B 255.255255255 -d 2 ’*’ paranccsal, ami az utolsó ,,mentsvár” (a broadcast cím összes bitjének 1 az értéke). Ha erre kapunk válaszokat , akkor a korábban használt broadcast cím hibás volt. Az ilyen jellegű hibákról a fejezet későbbi, ,,Broadcast címek” című részében lesz szó. • Ha a 255.255255255 címmel

sem boldogulunk, akkor nézzünk utána, hogy a PC-nk és a kiszolgáló nem más alhálózatban van-e, amint ezt a ,,Kapcsolódások tesztelése a ping paranccsal” című fejezetrészben tettük. Ezt a tesztet ugyanolyan kiszolgálóra és ügyfélre kellene lefuttatnunk, amely ugyanannak az alhálózatnak a része, de ha ezt nem tudnánk megtenni, akkor megpróbálhatjuk a -B kapcsolóval megadni a távoli hálózat broadcast címét. Az ilyen cím megkereséséről ugyancsak a ,,Broadcast címek” című fejezetrészben olvashatunk. A -B kapcsoló akkor működik, ha az útvonalválasztó támogatja az átirányított broadcast üzeneteket. Ha nem így lenne, akkor a tesztet csak ugyanannak a hálózatnak az ügyfelével tudjuk lefolytatni. Ügyfél tallózásának tesztelése a net view paranccsal Az ügyfélnél egy DOS ablakban futtassuk a net view \server parancsot, hogy lássuk, tudunk-e kapcsolódni a kiszolgálóhoz, és milyen szolgáltatásokat érhetünk el rajta.

Válaszként a kiszolgálón elérhető megosztások nevét kell kapnunk, amint ezt a 94 ábrán láthatjuk 9.4 ábra A net view parancs futása Ha a parancs sikeresen lefutott, akkor az ,,Egyéb hibalehetőségek” című fejezetrészben leírtak szerint folytassuk a vizsgálódásainkat. 294 | SAMBA • Ha a ,,Network name not found” üzenetet kapjuk arra a névre, amelyet az előbb teszteltünk az ,,Ügyfél tesztelése az nmblookup programmal” című fejezetrészben, akkor magával az ügyfélszoftverrel lehet probléma. Ellenőrizzük ezt azzal, hogy az ügyfélre lefuttatjuk az nmblookup programot: ha ez működik, a NET VIEW viszont nem, akkor az ügyfélnél van a hiba. • Ha nem fut le az nmblookup program, akkor természetesen a NetBIOS névszolgáltatóval van probléma, amint erről a ,,Hibakeresés a NetBIOS nevekben” című fejezetrészben olvashatunk. • Ha a ,,You do not have the necessary access rights” vagy a ,,This server is not configured to list

shared resources” üzenetek valamelyikét kapjuk, akkor vagy rosszul van konfigurálva a vendégfiók (lásd ,,Tesztelés helyileg az smbclient programmal”), vagy olyan hosts allow vagy hosts deny beállításokat vettünk fel, amelyek megakadályozzák, hogy kapcsolódjunk a gépünkről. Az ilyen problémákat már kellett észlelnünk az smbclient tesztek során (lásd ,,A tallózás tesztelése az smbclient programmal”). • Ha a ,,The specified computer is not receiving requests” üzenetet kapjuk, akkor rosszul írtuk be a nevet, vagy a gép broadcast üzenetek számára nem érthető el (lásd ,,A hálózat tesztelése az nmblookup programmal”), vagy nem fut rajta az nmbd démon. • Ha a ,,Bad password error” üzenetet kapjuk, akkor feltehetően a Microsoft-titkosítású jelszavakkal lehet probléma (ezekről és a javításaikról a 6. fejezetben volt szó) A kiszolgáló tallózása az ügyfél oldaláról A Windows Intézőjében próbáljuk meg csatlakoztatni a

hálózati meghajtót (Eszközök menü), és tallózzuk a kiszolgálót. A Samba kiszolgálónak a helyi munkacsoport tallózólistájában kell megjelennie Kettőt kattintva a kiszolgáló nevére, meg kell kapnunk a rajta elérhető megosztások listáját, amint a 9.5 ábrán látható 9.5 ábra A kiszolgálón elérhető megosztások listája • Ha az ,,Invalid password” üzenetet kapjuk, és a gépen az NT 4.0, az NT 35 a 3-as szervizcsomaggal, a Windows 95 a 3-as szervizcsomaggal vagy a Windows 98 valamelyike fut, továbbá az Internet Explorer 4.0 tallózót tartalmazza a rendszer, akkor nagy valószínűséggel ismét titkosítási problémával kell szembenéznünk Az összes ilyen ügyfél alapbeállítás szerint Microsoft titkosítású jelszavakat használ (lásd a 6. fejezetet) 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 295 • Ha az ,,Unable to browse the network” üzenetet kapjuk, akkor az alábbi hibák valamelyik léphetett fel: – Túlságosan hamar

befejeztük a keresést, mielőtt még lezárultak volna az üzenetküldések és a frissítések; várjunk 30 másodpercig, majd próbálkozzunk újra. – Eddig még nem diagnosztizált hálózati probléma merült föl. – Nincs főtallózó. Vegyük fel az smbconf fájlba a local master = yes beállítást – Az smb.conf fájlban egyik megosztás sincs tallózhatóként specifikálva • Ha a ,,\server is not accessible” üzenetet kapjuk, akkor az alábbiak lehetségesek: – Problémák vannak a jelszó titkosításával. – A gép valóban nem érhető el. – A gép nem támogatja a tallózást. Egyéb hibalehetőségek Ha már eddig eljutottunk, akkor vagy sikerült megoldani a problémát, vagy olyan hibával kerültünk szembe, amellyel eddig még nem találkoztunk. A most következő fejezetrészekben olyan hibakeresési eljárásokról lesz szó, amelyek nem magát a Sambát, hanem a Samba futtatásához szükséges infrastruktúrát igénylik. Elmaradt

bejelentkezések Esetenként problémát okozhat, ha elfelejtünk bejelentkezni az ügyfélgépre, vagy nem a megfelelő személyként jelentkezünk be (fiók nélkül). Az előzőt egyáltalán nem lehet diagnosztizálni: a Windows nagyon barátságos, és mindenkit beenged Helyileg! Az utóbbi esetben is csak annyi történik, hogy a Windows a köszöntője után bekér egy új fiókot. Akár az egyik, akár a másik oda vezethet, hogy ismétlődően elutasításra kerül a kapcsolatfelvétel, és vég nélkül ismétlődik a jelszó bekérése. Ha semmi más nem segít, akkor indítsuk újra a rendszert, és próbáljunk meg újra bejelentkezni Hibakeresés a névszolgáltatásban Ebben a fejezetrészben rendre megvizsgáljuk azokat a névszolgáltatásokat, amelyekkel a munkánk során találkozhatunk, de csak a Sambával kapcsolatos hibákra térünk ki. Számos jó könyv foglalkozik a különböző névszolgáltatásokkal kapcsolatos hibakereséssel: Paul Albitz és Cricket

Liu szerzők DNS and Bind című könyve a DNS (Domain Name Service) szolgáltatást, Hal Stern NFS and NIS című könyve a NIS (Yellow Pages) szolgáltatást ismerteti (mindkettőnek az O’Reilly a kiadója), míg a WINS (Windows Internet Name Service) szolgáltatást, a hosts/LMHOSTS fájlokat és a NIS+ szolgáltatást elsősorban a szerzők kézikönyvében lehet tanulmányozni. 296 | SAMBA A fejezetnek ebben a részében az alábbi problémákat vizsgáljuk: • a névszolgáltatás azonosítása; • nem kereshető egy gazdanév; • a gazdanév hosszú alakja (FDQN) működik, míg a rövid alakja nem; • a név rövid alakja működik, a hosszú alakja viszont nem; • hosszú a késleltetés a várt eredményt megelőzően. A használt szolgáltatás azonosítása Lássuk először, hogy mind a kiszolgáló, mind az ügyfél DNS, WINS, NIS vagy hosts fájlokat használ-e a megadott névhez tartozó IP cím kereséséhez. A különböző operációs rendszereknek

eltérő a preferenciájuk: • A Windows 95 és 98 rendszerű gépek először a WINS szolgáltatást, majd az LMHOSTS fájlokat, utána a broadcast, majd végül a DNS szolgáltatást és a hosts fájlokat használják. • Az NT gépek a következő sorrendben próbálkoznak a különböző névszolgáltatásokkal: WINS, broadcast, LMHOSTS fájlok, hosts fájlok és DNS. • A WINSOCK szabványt (mint például PC-NFS) használó Windows programok kedvezményezettségi sorrendje: hosts fájlok, DNS, WINS, majd broadcast. Ne tételezzük fel, hogy ha valamelyik program névkiszolgálója működik, akkor az SMB ügyfélprogram névkiszolgálója is működni fog! • A Samba démonjai a következő sorrendben keresik a névkiszolgálókat: LMHOSTS, WINS, a Unixban beállított preferencia, majd broadcast. • A Unix gazdagépei a DNS, hosts fájlok, NIS és NIS+ bármilyen kombinációjához, és általában bármilyen sorrendjéhez konfigurálhatók. Ajánlható, hogy az

ügyfélgépek és a Samba démonjai a WINS és a DNS szolgáltatást használják, míg a Unix kiszolgáló a DNS-t vegye igénybe. A jegyzeteinkben vagy a gépeinken megnézhetjük, hogy az illető gép éppen melyik szolgáltatáshoz van beállítva. Az ügyfélgépeken a névszolgáltatókat a Hálózat párbeszédablakból kiindulva, a TCP/IP tulajdonságai párbeszédlapon állíthatjuk be, amint ezt a 3. fejezetben láttuk Ellenőrizzük ezen a párbeszédlapon, hogy éppen melyik névszolgáltatás van bekapcsolva A kiszolgálónál nézzük meg, hogy létezik-e az /etc/resolv.conf fájl Ha létezik, akkor az a DNS névszolgáltatást használja. Természetesen más névszolgáltatásokat is igénybe vehetünk Szükség lehet a NIS és más szolgáltatások kombinációjának a vizsgálatára is. Solaris és más System V Unix operációs rendszerekben keressünk egy /etc/nsswitch.conf fájlt Ha találunk ilyet, akkor keressünk benne olyan sort, amely a host: szóval

kezdődik, és utána egy vagy több files, bind, nis vagy nis+ bejegyzés áll. Ezek jelentik ebben a sorrendben a használatban lévő névszolgáltatásokat: a files a hosts fájlokat, míg a bind (a Berkeley Internet Name Daemon) a DNS-t jelenti. Ha más az ügyfél és más a kiszolgáló, akkor első teendő ezek szinkronizálása. Az ügyfelek névkiszolgálóként csak a DNS-t, a WINS-t, a hosts és az lmhosts fájlokat használhatják, a NIS és a NIS+ szolgáltatást nem. Ezzel szemben a kiszolgálók a hosts fájlokat, a DNS, a NIS és a NIS+ szolgáltatásokat vehetik igénybe, a WINS-t viszont nem, még ha a Samba kiszolgáló fel is kínálja ezt. Ha nem tudjuk elérni, hogy az összes rendszer ugyanazokat a névszolgáltatásokat használja, akkor gondosan ellenőriznünk kell, hogy mind a kiszolgáló, mind az ügyfelek azonos adatokat használjanak. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 297 A Samba 2.0 verziója (és a késői 19-es verziók) lehetővé teszi az

-R kapcsoló (névfeloldási sorrend) használatát az smbclient program paramétereként Ha hibát akarunk keresni a WINS névkiszolgálóban, akkor például az alábbi alakú parancsot adhatjuk ki: smbclient -L server -R wins A kapcsolóhoz a következő paramétereket adhatjuk meg: hosts (ami mindazokat a szolgáltatásokat jelenti, amelyeket a Unix gép használ, és nem csak az /etc/hosts fájlokban felsoroltakat), lmhosts wins és bcast (broadcast). A most következő fejezetrészekben a hosszú név a teljes tartománynevet (FQDN, fully qualified domain name), mint például server.examplecom, míg a rövid név a teljes tartománynévnek csak a gazda részét jelenti, mint például server. Nem kereshetők a gazdanevek Próbáljuk a következőket: • DNS névkiszolgálóban: Futtassuk az nslookup név parancsot. Ha ez nem sikerül, akkor keressünk egy resolv.conf hibát, egy leállított DNS kiszolgálót vagy valamilyen, a rövid/hosszú nevekkel kapcsolatos problémát

(lásd a következő szakaszt) Próbáljuk a következőt: – Az /etc/resolv.conf fájlnak tartalmaznia kell egy vagy több névkiszolgáló sort, amelyek mindegyikében egy IP címnek kell lennie Ezek a DNS kiszolgálók címei – A megtalált kiszolgálócímekre adjuk ki a ping parancsot. Ha valamelyik címre nem működne, akkor az a gyanúsított gép. Ha egyik címre sem működnek, akkor a hálózatra gyanakodhatunk – Ismételjük meg a keresést teljes tartománynévvel (vagyis például server.examplecom), ha előzőleg a rövid névvel kerestünk, illetve fordítva, a rövid névvel, ha előzőleg a hosszú névvel kerestünk Ha a két keresés eredménye eltér egymástól, akkor térjünk rá a következő fejezetrészre. • Broadcast/WINS névkiszolgálóban: A broadcast/WINS névkiszolgáló csak rövid neveket használ, mint például server (például a hosszú server.examplecom helyett) Futtassuk az nmblookup -S server parancsot. A parancs mindazt jelenti, amit a

broadcast regisztrál az illető névhez A példánkban a parancs a következőket jelenti vissza: Looking up status of 192.168220100 received 10 names SERVER <00> SERVER <03> SERVER <1f> SERVER <20> . MSBROWSE <01> - <GROUP> MYGROUP <00> - <GROUP> MYGROUP <1b> MYGROUP <1c> - <GROUP> MYGROUP <1d> MYGROUP <1e> - <GROUP> M M M M M M M M M M <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> <ACTIVE> 298 | SAMBA Az igényelt bejegyzés a SERVER <00>, ami a server-t úgy azonosítja, mint a gép NetBIOS nevét. A munkacsoport nevének is elő kell fordulnia egyszer vagy többször a kimenetben Ha hiányoznának ezek a sorok, a broadcast/WINS nem tudná megkeresni a neveket, és a probléma további vizsgálatokat igényel. Az előbbi listában a csúcsos zárójelek között álló számok a NetBIOS

neveket munkacsoportokként, munkaállomásokként, az üzenetszolgáltató fájlhasználóiként, főtallózókként, tartomány-főtallózókként, tartományvezérlőkként és még számos egyéb szereplőként azonosítják. Közülük a <00> elsősorban ügyfélgép- és munkacsoport-neveket, a <20> pedig kiszolgálóneveket azonosít A teljes lista a http://support.microsoftcom/support/kb/articles/q163/4/09asp internetes címen érhető el. • NIS rendszerben: Próbálkozzunk az ypmatch gazdanév hosts paranccsal. Ha nem fut le rendben, akkor nem működik a NIS. Az ypwich parancsot futtatva keressük meg a NIS kiszolgáló nevét, és a ping paranccsal vizsgáljuk meg, hogy elérhető-e. • NIS+ rendszerben: Próbálkozzunk az nismatch gazdanév hosts paranccsal. Ha nem fut le rendben, akkor nem működik a NIS. A niswich parancsot futtatva keressük meg a NIS kiszolgáló nevét, és a ping paranccsal vizsgáljuk meg, hogy elérhető-e. • hosts fájlokban:

Vizsgáljuk meg az /etc/hosts fájlokat az ügyfélnél (C:WINDOWSHOSTS). Mindegyik sorban egy IP-számnak és egy vagy több névnek kell állnia, melyek közül az első a valódi, a többi az álnév. Például: 127.001 192.1682361 192.168200105 192.16823611 192.168220100 192.168236254 localhost dns.svcexamplecom client.examplecom client backup.examplecom loghost server.examplecom server router.svcexamplecom Unixban a localhost névhez mindig a 127.001 címnek kell tartoznia, bár egy PC-n ez a név egy gazdagép álneve is lehet. Az ügyfélnél ellenőrizzük, hogy ne legyenek #XXX direktívák a sorok végén; ezek LAN Manager/NetBIOS direktívák, és csak az LMHOSTS fájlokban állhatnak (C:WINDOWSLMHOSTS). • LMHOSTS fájlokban: Ez a fájl a LAN Manager (NetBIOS) nevek helyi forrása. A bejegyzéseinek hasonló a formátuma, mint az /etc/hosts fájlok bejegyzéseié, de nem használhatók benne hosszú tartománynevek (mint például server.examplecom), és a nevek után

#XXX direktívák állhatnak Jegyezzük meg, hogy (mintaként) van egy lmhostssam fájl a C:WINDOWS könyvtárban, de ez mindaddig nem kerül feldolgozásra, amíg nem másoljuk át a C:WINDOWSLMHOSTS fájlba. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 299 Hosszú és rövid gazdanevek Ha egy gazdanév hosszú alakja használható, viszont a rövid alakja nem (például a client.examplecom működik, míg a client nem), gondoljuk át a következőket • DNS: Ez általában azt jelenti, hogy nincs olyan alapértelmezett tartomány, amelyben kereshetők a rövid nevek. Keressünk a Samba kiszolgálón az /etc/resolvconf fájlban olyan default sort, amelyben szerepel a tartományunk, vagy keressünk olyan search sort, amelyben egy vagy több tartomány szerepel. Valamelyikben kell lennie olyannak, amelyik lehetővé teszi a rövid nevek használatát – az, hogy melyikben, a DNS feloldó készítőjétől és verziójától függ. Vegyünk fel egy domain saját tartomány sort a

resolv.conf fájlba, és kérdezzük meg a hálózati vagy a DNS rendszergazdát, hogy mit kell tartalmaznia a fájlnak. • Broadcast/WINS: A boradcast/WINS nem támogatja a hosszú neveket, ezért itt ilyen probléma nem merülhet fel. • NIS: Próbálkozzunk az ypmatch gazdanév hosts paranccsal. Ha nem találunk egyezőséget, akkor a táblázatok nem tartalmaznak rövid neveket Kérdezzük meg a hálózat rendszergazdájától, hogy csak véletlenül hiányoznak a rövid nevek, vagy a kialakított házirend miatt maradtak ki. Egyes helyeken sohasem használnak (félreérthető) rövid neveket. • NIS+: Próbálkozzunk a nismatch gazdanév hosts paranccsal, és hiba esetén járjunk el úgy, mint a NIS-nél. • hosts fájlok: Ha a rövid név nem szerepel az /etc/hosts fájlokban, akkor próbálkozzunk azzal, hogy álnévként vesszük fel. Lehetőség szerint ne használjuk elsődleges névként (a sorban elsőként) rövid neveket. Ha a rendszer engedi, csak álnévként

használjuk ezeket • LMHOSTS: A LAN Manager nem támogatja a hosszú neveket, úgyhogy itt ilyen problémák nem merülhetnek fel. Ha viszont a rövid nevek működnek, a hosszúak pedig nem, akkor vizsgáljuk a következőket: • DNS: Ez nagyon furcsa eset – kérdezzük meg a hálózat vagy a DNS rendszergazdáját. Valószínűleg a DNS telepítésével van probléma • Broadcast/WINS: Ebben nincs semmi különös; a broadcast/WINS nem képes a hosszú nevek használatára. Próbálkozzunk a DNS névkiszolgálóval A Microsoft azt állítja, hogy át lehet kapcsolni erre, bár a DNS nem szolgáltat olyan névtípusokat, mint a <00> • NIS: Ha az ypmatch paranccsal a rövid alak megtalálható, viszont a hosszú nem, akkor vegyük fel a hosszú alakot a táblázatba, legalább álnévként. • NIS+: Ugyanaz, mint a NIS-nél azzal a különbséggel, hogy az ypmatch parancs helyett a nismatch paranccsal keressük a neveket. 300 | SAMBA • hosts fájlok: Vegyük fel

a hosszú nevet legalább álnévként, és lehetőség szerint az elsődleges alakban. Ne zárjuk ki a DNS használatát sem • LMHOSTS: Ez érthető hiba. A LAN Manager nem képes a hosszú nevek használatára Vegyük fontolóra a DNS-re vagy a hosts fájlokra való átkapcsolást Szokatlan késések Ha túlságosan hosszú idő telik el a várt eredmények megérkezéséig: • DNS: Teszteljük ugyanazt a nevet az nslookup paranccsal a lassú gépen (ügyfél vagy kiszolgáló). Ha ez a parancs is lassú lenne, akkor a DNS-sel van probléma Ha az ügyfélnél lassú, akkor túl sok protokoll van hozzákötve az Ethernet kártyához. Szakítsuk meg a NetBEUI kötését, ami híresen lassú és a Novell kötését is, abból kiindulva, hogy nincs szükség rá. Ez különösen fontos a Windows 95-ben, amelyet nagyon lelassítanak a fölösleges protokollok • Broadcast/WINS: Teszteljük az ügyfelet az nmblookup paranccsal, és ha gyorsabb, akkor valószínűleg az előbb leírt

protokollproblémákkal van dolgunk. • NIS: Próbálkozzunk az ypmatch paranccsal, és jelezzük a problémát a hálózat rendszergazdájának. • NIS+: Ugyanaz, mint fent, csak a nismatch paranccsal próbálkozzunk. • hosts fájlok: A hosts fájlok, ha ésszerű határokon belül marad a méretük, mindig gyorsak. Lehetséges, hogy a DNS-nél leírt protokollproblémák okozzák a késedelmet • LMHOSTS: A késedelemnek nem lehet névkeresési probléma az oka, az LMSOSTS fájlok ugyanolyan gyorsak, mint a hosts fájlok. Localhost problémák Ha a localhost gazdának nem 127.001 a címe, akkor próbáljuk a következőket: • DNS: Lehetséges, hogy nem létezik a localhost. A 127001 bejegyzés Vegyük fel ezt és a fordítottját is: 1.00127IN-ADDRARPA PTR 127001 • Broadcast/WINS: Nem értelmezhető. • NIS: Ha localhost nem szerepel a táblázatban, akkor vegyük fel bele. • NIS+: Ha localhost nem szerepel a táblázatban, akkor vegyük fel bele. • * host fájlok:

Vegyük fel a 127.001 localhost bejegyzést • LMHOSTS: Nem értelmezhető. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 301 Hibakeresés hálózati címekben Számos problémát okoznak a hibásan továbbküldött internet címek vagy a címek hibás kiosztása. Ebben a fejezetrészben az ilyen problémákról lesz szó Hálózati maszkok A hálózati maszkok (más néven alhálózati maszkok) azt mondják meg az egyes gépeknek, hogy melyek azok a címek, amelyek közvetlenül érhetők el róla (vagy a hozzá kapcsolódó helyi hálózatból), és melyek azok, amelyek csak közvetve, forgalomirányítókon (router) keresztül érhetők el. Ha rosszul van megadva a hálózati maszk, akkor kétféle hiba fordulhat elő Az egyik az, hogy a helyi csomagok is rákerülnek a forgalomirányítóra, ami meglehetősen drága módja az időpocsékolásnak – a csomag ugyan lehet, hogy gyorsan célba ér, de az is lehet, hogy csak nagyon lassan, netán el is veszik útközben. A másik hiba

az lehet, hogy egy távoli gépnek szánt csomag nem kerül rá a forgalomirányítóra, és ezért nem is jut el a célba. A hálózati maszknak hasonló a formátuma, mint egy IP címnek – a cím hálózati részében a bitek értéke 1, a gazda részében a bitek értéke 0. A hálózati maszknak szó szerint az a szerepe, hogy a TCP/IP kódon belül letakarja a cím egy részét. Ha a maszk címe 255.25500, akkor az első két bájt a cím hálózati része, a második két bájt pedig a gazda része. Leggyakoribbak a 2552552550 alakú hálózati maszkok, amelyben az első három bájt a hálózati rész, az utolsó bájt pedig a gazda rész. Tegyük fel például, hogy az IP címünk 192.168010, a Samba kiszolgálóé pedig 192.168220100 Ha a hálózati maszkunk címe történetesen 2552552550, akkor a cím első három bájtja a hálózati rész, és a negyedik bájt a gazda rész. Ebben az esetben a hálózati részek különbözőek, vagyis a két gép különböző

hálózathoz tartozik: Hálózati rész Gazda rész 192 168 000 192 168 235 10 86 Ha viszont az alhálózat címe 255.25500, akkor a hálózati rész csak az első két bájt Ebben az esetben a két gép hálózati része azonos, vagyis a két gép azonos hálózathoz tartozik: Hálózati rész Gazda rész 192 168 192 168 000 10 236 86 Természetesen ha a hálózati maszk címét nem úgy adjuk meg, ahogyan azt a rendszergazda beállította, akkor hibás a hálózati maszkunk. Broadcast címek A broadcast (üzenetszórási) cím ugyanolyan cím, mint a többi, csak a cím gazda részének összes bitje 1-re van állítva. Ez szavakkal elmondva azt jelenti, hogy ,,az adott hálózaton belül az összes gép”. Az IP cím és a hálózati maszk címe alapján egyszerűen meghatároz- 302 | SAMBA hatjuk a broadcast címet: az IP cím azon részében, amely a hálózati maszk gazda része (vagyis ahol a 0-k állnak), állítsuk az összes bitet 1-re. A műveletet az alábbi

táblázat szemlélteti: IP cím Hálózati maszk Broadcast cím Hálózati rész Gazda rész 192 168 236 255 255 255 192 168 236 86 000 255 A fenti példában a 192.168236 hálózaton a broadcast cím 192168236255 Létezik még egy ,,univerzális” broadcast cím is, a 255.255255255 A forgalomirányítók számára tiltott az ilyen címekre való továbbítás, de a helyi hálózatok gépei általában válaszolnak az ilyen címre szétküldött üzenetekre. Hálózati címtartományok Számos címtartomány le van foglalva tesztelési és nem kapcsolódó hálózatok számára – a könyvben a szerzők is ilyeneket használtak. Ha az Olvasónak még nem lenne hálózati címe, akkor nyugodtan válasszon magának ilyen címtartományba eső címet. Szabadon használhatók az A osztályú 10.*.*.* címek és a C osztályú, 192.1681* és 192.168254* közötti címtartományba eső címek. A könyvbeli példák az utóbbi tartományba eső 192.168236* címeket használták. Az

examplecom tartomány ugyancsak foglalt a nem kapcsolódó hálózatok, magyarázó példák és könyvek számára. Természetesen ha kapcsolódni akarunk az internetre, akkor valós hálózati címre és tartománynévre van szükségünk, amit feltehetően az internetszolgáltatást nyújtó cégtől kaphatunk meg. Hálózati cím keresése Ha még nem jegyeztük volna fel az IP címünket, akkor Unix rendszerben az ifconfig, Windows 95 és NT rendszerben az IPCONFIG parancs kiadásával jeleníthetjük meg. (Az operációs rendszer kézikönyvében nézzünk utána, milyen kapcsolót kell esetleg megadnunk a parancssorban (a Sun például az ifconfig -a alakú parancsot várja). A parancs az alábbihoz hasonló kimenetet állíthatja elő: server% ifconfig -a le0: flags=63<UP,BROADCAST,NOTRAILERS,RUNNING > inet 192.16823611 netmask ffffff00 broadcast 192168236255 lo0: flags=49<&lt>UP,LOOPBACK,RUNNING<&gt> inet 127.001 netmask ff000000 Az interfészek

egyike a visszacsatolt interfész (a példában ez az Io0), a másik pedig a normál IP-interfész. A flags= bejegyzések azt jelzik, hogy fut az interfész, és az Ethernet támogatja a broadcast eljárást (a PPP nem támogatja). IP címeket még a következő helyeken is kereshetünk: /etc/hosts fájlok, Windows HOSTS fájlok, Windows LMHOSTS fájlok, NIS, NIS+ és DNS. 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 303 Hibakeresés a NetBIOS nevekben Történelmileg az SMB protokolloknak a NetBIOS névrendszer, más néven a LAN Manager névrendszer az alapja. Ez egy egyszerű séma volt, amely szerint minden egyes gépnek egyedi, 20 karakteres neve van, amelyet broadcast eljárással szétszór a hálózatban, hogy minden résztvevő tudomást szerezzen róla. A TCP/IP protokoll létrejöttével azonban már olyan neveket használnunk, mint például a client.examplecom, amelyeket DNS vagy WINS névkiszolgálókon keresztül /etc/hosts fájlok tárolnak. A tartománynevekre, mint

például a server.examplecom névre történő szokásos leképezés a névnek csak a server részét használja NetBIOS névként, és ezt alakítja át nagybetűssé Ez azonban nem mindig használható, főként akkor nem, ha a gépnek 21 karakterből áll a neve, továbbá nem mindenki használja ugyanazt a nevet NetBIOS és DNS névként Nem szokatlan például a corpvm1 és a vm1corpcom nevek együttes használata Hibakeresésnél zavaró lehet, ha egy gépnek más a NetBIOS, és más a tartományneve, ezért javasolható, hogy ahol lehet, kerüljük ezt a névmegadást. A NetBIOS nevek az smbclient programmal nem deríthetők fel • Ha a Samba kiszolgálón az smbclient paranccsal és az -L kapcsolóval ki tudjuk listázni a rövid név kiszolgáló megosztásait, akkor a rövid név a NetBIOS név. • Ha a ,,Get Hostbyname: Unknown host name” üzenetet kapjuk, akkor valamilyen névilleszkedési probléma van. Nézzük meg az smbconf fájlban, hogy be van-e külön állítva

a NetBIOS név. • Próbálkozzunk újra a paranccsal úgy, hogy paraméterként az -I kapcsolót és a Samba kiszolgáló IP címét adjuk meg (vagyis smbclient -L server -I 192.168220100) Ezzel megkerüljük a név keresését, és kikényszerítjük, hogy a csomagok közvetlenül a IP címre kerüljenek. Ha ez működik, akkor biztosan névillesztéssel kapcsolatos a probléma • Próbálkozzunk az -I kapcsolóval és a kiszolgáló teljes tartománynevével (vagyis smbclient -L server -I server.examplecom) Ez teszteli a tartománynevet, akármilyen sémát is használ a Samba kiszolgáló (például a DNS-t). Ha nem fut le rendben a parancs, akkor névszolgáltatási problémával lehet dolgunk Miután elvégeztük a NetBIOS nevekkel kapcsolatos hibakeresést, térjünk vissza a ,,Hibakeresés a névszolgáltatásban” című fejezetrészhez. • Próbálkozzunk az -n kapcsolóval (NetBIOS név) és azzal a névvel, amelyről feltételezzük, hogy létezik (például smbclient

-n server -L server-12), de az -I kapcsolóval ezúttal ne lépjük át az IP címet. Ha a parancs rendben lefut, akkor az -n kapcsoló után megadott név a kiszolgáló aktuális NetBIOS neve. Ha a ,,Get-Hostbyname: Unknown host MARY” üzenetet kapjuk, akkor még nem találtuk meg a megfelelő kiszolgálót • Ha az eddigi próbálkozásaink egyike sem sikerült, akkor ismételjük meg a teszteket úgy, hogy a U felhasználónév és a -W munkacsoport paramétereket használjuk, ahol a felhasználónév és a munkacsoport csupa nagybetűből áll. Ezzel biztosíthatjuk, hogy ne zavarják meg a tesztet a kis- és nagybetűket vegyesen használó felhasználói vagy munkacsoport-nevek. • Ha eddig még semmi sem sikerült, és biztosak vagyunk abban, hogy névszolgáltatással kapcsolatos a probléma, akkor keressük a hibát a ,,Hibakeresés a névszolgáltatásban” című fejezetrészben leírtak szerint, majd térjünk vissza a NetBIOS nevekhez. 304 | SAMBA Különleges

erőforrások A Sambával végzett munkánk során előfordulhat, hogy ki akarunk tekinteni a nagyvilágba, keresni akarjuk az újdonságokat és a frissítéseket, vagy egyéb segítség után szeretnénk nézni. Dokumentációk és a gyakori kérdések Tekintsük természetesnek a dokumentáció elolvasását – ez annyira fontos, hogy aligha kell hangsúlyozni. A Samba hatalmas méretű dokumentációs fájlokat tartalmaz, és legalább annyit tegyünk meg, hogy tallózgatunk benne – akár a /docs fájlokban tallózva, akár a Samba http://samba.anueduau/samba/ weboldalán navigálva Ezen a webhelyen megnézhetjük a gyakran ismételt kérdések (FAQ) legfrissebb listáját, a programban megtalált hibákat vagy a disztribúciós helyeket, továbbá hivatkozásokat találunk a Samba kézikönyveire és a speciális tudnivalókra (HOW-TOs). Samba hírcsoportok A Usenet hírcsoportok mindig is kiváló helynek bizonyultak, ahol bármely témában találhatunk jó tanácsokat. Az

elmúlt években az itt felgyülemlett ismeretanyag felbecsülhetetlen erőforrássá vált. A különböző archiváló és kereső webhelyeknek – mint amilyen például a DejaNews (http://www.dejanewscom) – köszönhetően mindössze néhány egérkattintásra van szükség ahhoz, hogy értékes megoldásokat kapjunk egy-egy témával kapcsolatban A Samba elsődleges hírcsoportjának comp.protocolssmb a címe Ha bármilyen problémánk van, ez legyen az elsőként felkeresendő hely Akár hiszi valaki, akár nem, néha öt perc is elegendő, hogy megoldást kapjunk itt egy olyan problémára, amivel magunk esetleg órákon keresztül sem boldogulnánk. A hírcsoportokban való kereséskor amennyire csak lehet, határoljuk be a problémát, de ne legyünk túlságosan szűkszavúak. A legjobb, ha a kapott hibaüzenet szerint végezzük a keresést Ha a hírcsoportokban nem találunk azonnal választ a kérdésünkre, ne kérjünk azonnal segítséget, hanem gondolkozzunk el egy

kicsit a problémán Lehet, hogy a gyakran ismételt kérdések (FAQ) között vagy a Samba hatalmas méretű dokumentációs fájljaiban megtaláljuk a választ, netán a Samba valamelyik diagnosztikai eszközét használva magunk is rájövünk a megoldásra. Ha sehogyan sem boldogulunk, küldjünk egy kérést a comp.protocolssmb címre, és amennyire csak tudjuk, írjuk le pontosan, mikkel próbálkoztunk, és milyen eredményre jutottunk Mellékeljük a kapott hibaüzeneteket is Lehet, hogy napokba is beletelik, mire választ kapunk, de legyünk türelemmel, és időközben is próbálkozzunk más megoldásokkal. Megismételjük: a segítségkérést követően is keressük magunk a megoldást. A könyv szerzői és az ismerősei folyamatosan tapasztalják, hogy miután elküldött valaki egy mindenféle rejtélyes részletekre kiterjedő, több száz sorból álló Usenet cikket, amely a föld számos kontinensét bejárta, a cikk küldője rövid egy órán belül maga is

rájött a megoldásra. Erősen leegyszerűsítve kimondható: minél több emberhez jut el egy kérdés, annál egyszerűbb a megoldás Kissé eltúlozva: ha a Unix közösség minden egyes tagját szerencséltettük már a kérdésünkkel, akkor a tanács talán következő lehet: ,,Kedves Barátunk, ugyan légy oly szíves, és dugd be a számítógéped villásdugóját a fali konnektorba!” 9. FEJEZET HIBAKERESÉS A SAMBÁBAN | 305 A Samba levelezőlistái Az alábbiakban felsorolt levelezőlisták kapcsolatosak a Sambával. További információk, valamint a levelezőlistákra való be-, illetve kijelentkezéssel kapcsolatos tudnivalók a Samba http://www.sambaorg/ internetes címén találhatók samba-binaries@samba.org Ez a levelezőlista a Samba előre lefordított bináris fájljaival kapcsolatos tudnivalókat tartalmazza. samba-bugs@samba.org Ez a levelezőlista a Sambában gyanított hibákat sorolja fel. samba-ntdom@samba.org Ez a levelezőlista a Sambában

használható tartományok (főként Windows NT) támogatásával kapcsolatos információkat tartalmazza. samba-technical@samba.org Ez a levelezőlista a Samba jövőjével kapcsolatos vitafórum. samba@samba.org Ez a Samba elsődleges levelezőlistája, amelyen általános kérdések és ún. HOW-TO (Mit tegyünk, hogy) útmutatások olvashatók a Sambával kapcsolatban. http://kt.linuxcarecom/KC/samba/ Ez a levelezőlista szerkesztett megjegyzéseket tartalmaz a Samba fejlődéséről, hasonlóképpen, mint a Linux ,,Kernel Traffic” webhelye. A webhelyet olvasva folyamatosan figyelemmel kísérhetjük a Sambán végzett aktuális változtatásokat http://lists.sambaorg/mailman/ A Samba hivatalos levelezőlistáira mutató hivatkozások gyűjtőhelye. Szakkönyvek Brian L. Wong: Configuration and Capacity Planning for Solaris Servers; Sun/PrenticeHall, Englewood Cliffs 1997 Raj Jain: The Art of Computer Systems Performance Analysis; John Wiley and Sons, New York 1991. A Samba

konfigurálása SSL protokollal Ebben a függelékben arról olvashatunk, miként telepíthetjük úgy a Sambát, hogy biztonságosak legyenek a kapcsolatok a Samba kiszolgáló és az ügyfelei között. A biztonságos kapcsolatról a Netscape által kifejlesztett SSL (Secure Sockets Layer) protokoll gondoskodik. A példánkban egy Samba kiszolgáló és egy Windows NT munkaállomás között hozzuk létre a biztonságos kapcsolatot A téma tárgyalása során feltétezzük, hogy az Olvasó tisztában van a nyilvános kulcsú titkosítás és az X.509 bizonyítványok alapjaival Ha nem így lenne, ajánljuk Bruce Schneier Applied Cryptography, 2nd Edition (Wiley) könyvének tanulmányozását, amelyben az alapismeretek mellett a kriptográfia számos más érdekes vonatkozásait is megtalálja. (Hasonló céllal az Olvasó figyelmébe ajánlható Othmar Kyas Számítógépes hálózatok biztonságtechnikája című munkája, amely 2000 májusában jelent meg a Kossuth Kiadónál - a

szerkesztő.) A Samba és az SSL kapcsolatáról a Samba disztribúció /docs/textdocs könyvtárában lévő SSLeay.txt dokumentum is számos tudnivalót tartalmaz – ez a függelék is ennek alapján készült. Röviden a hitelesítésekről Az alábbiakban néhány kérdést és választ idézünk a Samba dokumentáció SSLeay.txt fájljából az SSL és a hitelesítés előnyeiről A szöveg szerzője Christian Starkjohann Mi a bizonyítvány? A bizonyítványt egy erre illetékes szervezet, általában egy hitelesítő hatóság (Certification Authority, CA) bocsátja ki azzal a céllal, hogy igazoljon valamit. Az igazolás tárgyát a kibocsátó hatóság határozza meg Így például az a hatóság, amely az elektronikus áruházakat üzemeltető webkiszolgálók biztonságát igazolja, általában csak azt garantálja, hogy egy adott nyilvános kulcs egy adott tartománynévhez tartozik. Egy szervezet belső hitelesítő hatósága azt igazolja, hogy a megfelelő

bizonyítvánnyal rendelkező személy valóban a szervezet alkalmazottja, hozzáférhet adott kiszolgálóhoz stb. 308 | SAMBA Az X.509 bizonyítvány műszaki háttere Műszaki értelemben a bizonyítvány egy sor adatot tartalmaz, amelyek valódiságát a kibocsátója (CA) az aláírásával igazolja. A bizonyítvány a következő adatokat tartalmazza: • a bizonyítvány kiállítójának egyedi azonosítója (neve); • a bizonyítvány időbeli érvényessége; • a bizonyítvány tulajdonosának egyedi azonosítója (neve); • a bizonyítvány tulajdonosához tartozó nyilvános kulcs; • a bizonyítvány kibocsátójának aláírása. A bizonyítvány érvényességének ellenőrzéséhez az ellenőrzést végzőnek rendelkeznie kell a megbízható hitelesítő hatóságok nevét és nyilvános kulcsát tartalmazó táblával. Az egyszerűség kedvéért ezeknek a tábláknak az illető hatóságok által a saját maguk számára kiállított bizonyítványokat is

tartalmazniuk kell (saját maguknak aláírt bizonyítványok). Mi következik az ilyen bizonyítványok szerkezetéből? • Mivel a bizonyítvány tartalmazza a tulajdonosának nyilvános kulcsát, a bizonyítvány és egy privát kulcs együtt elegendő a titkosításhoz és a titkosított szöveg visszafejtéséhez. • A bizonyítványok ellenőrzéséhez szükségünk van az általunk megbízhatónak tartott hitelesítő hatóságok bizonyítványaira. • ,,Álbizonyítvány” legegyszerűbben úgy állítható ki, hogy maga a tulajdonos írja alá a bizonyítványt. • Szükség van hitelesítő hatóságra. Az ügyfél maga nem bocsáthat ki helyi bizonyítványokat az általa megbízhatónak tartott kiszolgálókhoz, mert a kiszolgáló határozza meg, milyen bizonyítványt fogad el. Követelmények SSL kapcsolatok telepítéséhez a Samba mellett még a következő két programot is le kell tölteni: SSLeay Ez a Unix programkönyvtárak részét alkotó SSL protokoll

Eric Young-féle megvalósítása. SSL Proxy Az Objective Development szabadon terjeszthető SSL alkalmazása, amelynek segítségével megbízható kapcsolat hozható létre Unix és NT platformokon. E két szoftvertermék lehetővé teszi, hogy titkosított SSL kapcsolatot építsünk fel mind a kiszolgálón, mind az ügyfeleinél. Az SSLeay függvénytárak közvetlenül a Unix rendszerben fordíthatók le és telepíthetők Ezzel szemben az SSL Proxy az ügyfél oldalon tölthető és fordítható le (bináris formátumban is letölthető). Ha az SSL kapcsolat túlsó végéhez Windows NT vagy Samba ügyfél csatlakozik, akkor nincs szükség különleges telepítésre. A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 309 Az SSL Proxy program Windows 95/98 gépeken viszont nem működik. Ezért ha egy Samba kiszolgáló és egy Windows 95/98 ügyfél között szeretnénk biztonságos kapcsolatot létrehozni, akkor ugyanabban az alhálózatban, amelyikben a Windows

9.x ügyfelek vannak vagy egy Unix kiszolgálót, vagy egy Windows NT gépet is el kell helyezni, és a teljes hálózati forgalmat az SSL Proxy programot futtató gépen keresztül kell lebonyolítani (lásd az A.1 ábrát) A.1 ábra Windows 95/98 ügyfelekhez való biztonságos kapcsolódás két lehetősége A vizsgálatainkhoz példaként egy egyszerű SSL kapcsolatot fogunk létrehozni egy Samba kiszolgáló és egy Windows NT ügyfél között. A bemutatásra kerülő lépések alapján ennél bonyolultabb hálózatok is kiépíthetők a rendszergazda céljától függően. Az SSLeay telepítése A Samba a kiszolgáló oldalán az Eric Young által megírt csomagot használja az SSL kapcsolat támogatásához. Az Egyesült Államok exporttörvénye értelmében azonban az SSLeay csomag az Egyesült Államokban készült Samba disztribúciók részeként nem szállítható. Ezért a Samba készítői úgy döntöttek, hogy a csomagot teljes egészében meghagyják különálló

szoftverterméknek. Az SSLeay csomag az alábbi FTP-helyekről tölthető le: • ftp://ftp.psyuqozau/pub/Crypto/SSL/ • ftp://ftp.uni-mainzde/pub/internet/security/ssl • ftp://ftp.certdfnde/pub/tools/crypt/sslapps • ftp://ftp.funetfi/pub/crypt/mirrors/ftppsyuqozau • ftp://ftp.sunetse/ftp/pub/security/tools/crypt/ssleay 310 | SAMBA Az amerikai kiadás nyomdába adásakor a 0.90b volt a program legfrissebb verziója A programot ugyanarra a kiszolgálóra töltsük le, ahová a Samba disztribúciót is letöltöttük, csomagoljuk ki és futtassuk le az untar parancsot. Eredményül egy SSLeay-090b könyvtárat kell kapnunk Lépjünk át ebbe a könyvtárba, és ugyanúgy konfiguráljuk és építsük fel az SSL titkosító csomagot, ahogyan ezt a Sambával is tettük. Az SSLeay Perl nyelvű konfiguráló szkriptet használ. Ez a szkript módosítja az SSLeay csomag segédprogramjait és függvénytárait létrehozó Make-fájlt. Az alapértelmezés szerinti szkript a Perl

értelmezőt a /usr/local/bin/perl útvonalon keresi Lehetséges, hogy úgy kell módosítani a konfiguráló szkriptet, hogy arra a helyre mutasson, ahol a Unix rendszerünkben a Perl végrehajtható fájl van. A Perl végrehajtható fájl megtalálásához például az alábbi parancsot írhatjuk be: # which perl /usr/bin/perl Ezt követően úgy módosítsuk a konfiguráló szkript első sorát, hogy a helyes Perl végrehajtható fájlt használja. Egy Red Hat Linux rendszerben például ez írható be: #!/usr/bin/perl # # see PROBLEMS for instructions on what sort of things to do # when tracking a bug -tjh . Ezt követően a disztribúció célplatformját megadva futtassuk a konfiguráló szkriptet. A célplatform az alábbiak valamelyik lehet: BC-16 NetBSD-sparc VC-NT VC-WIN32 alpha-gcc debug dgux-R4-gcc hpux-cc irix-gcc nextstep solaris-sparc-gcc sunos-cc BC-32 NetBSD-x86 VC-W31-16 aix-cc alpha400-cc debug-irix-cc dgux-R4-x86-gcc hpux-gcc linux-aout purify solaris-sparc-sc4

sunos-gcc FreeBSD SINIX-N VC-W31-32 aix-gcc cc debug-linux-elf dist hpux-kr-cc linux-elf sco5-cc solaris-usparc-sc4 unixware-2.0 NetBSD-m86 VC-MSDOS VC-WIN16 alpha-cc cray-t90-cc dgux-R3-gcc gcc irix-cc ncr-scde solaris-sparc-cc solaris-x86-gcc unixware Linux-elf platformhoz az alábbi parancsot kell kiadni: # ./Configure CC CFLAG EX LIBS linux-elf =gcc =-DL ENDIAN -DTERMIO -DBN ASM -O3 -fomit-frame-pointer = A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 311 BN MULW =asm/bn86-elf.o DES ENC =asm/dx86-elf.o asm/yx86-elfo BF ENC =asm/bx86-elf.o CAST ENC =asm/cx86-elf.o RC4 ENC =asm/rx86-elf.o RC5 ENC =asm/r586-elf.o MD5 OBJ ASM =asm/mx86-elf.o SHA1 OBJ ASM =asm/sx86-elf.o RMD160 OBJ ASM=asm/rm86-elf.o THIRTY TWO BIT mode DES PTR used DES RISC1 used DES UNROLL used BN LLONG mode RC4 INDEX mode Miután konfiguráltuk a csomagot, a make parancs kiadásával le kell fordítanunk. Ha ez nem sikerülne, akkor olvassuk el a disztribúcióhoz tartozó dokumentációt, vagy a

http://www.cryptsoftcom/ssleay/ webhelyen tájékozódjunk a lehetséges hibákról és tennivalókról Ha sikerült a csomag lefordítása, akkor a make install parancs kiadásával telepítsük a függvénytárakat a rendszerbe. Jegyezzük meg, hogy a make-fájl a csomagot alapértelmezés szerint a /usr/local/ssl könyvtárba telepíti. Ha a telepítést más könyvtárba akarjuk elvégezni, akkor jegyezzük fel a könyvtár helyét, mert szükségünk lesz rá, amikor a Sambát az SSL használatához konfiguráljuk. Az SSLeay konfigurálása a rendszerünkhöz Első lépésként úgy kell beállítanunk a PATH környezeti változót a rendszerünkben, hogy tartalmazza az SSL disztribúció /bin könyvtárát. Ezt az alábbi módon tehetjük meg: PATH=$PATH:/usr/local/ssl/bin Ez a feladat egyszerűbb része. Következő lépésként elő kell állítanunk egy véletlen karakterekből álló sorozatot, amelyet az SSLeay véletlenszám-generátora bemenetként használ A

véletlenszám-generátor hozza létre mind az ügyfelek, mind a kiszolgáló számára a kulcspárokat. A véletlen karakterekből álló sorozatot úgy készíthetjük el, hogy egy szövegszerkesztőben tetszés szerinti összevisszaságban leütjük a billentyűket Azt is megtehetjük, hogy kiadjuk az alábbi parancsot, és tetszés szerinti betűket írunk be a standard bemenetről: cat >/tmp/private.txt A Samba dokumentációja azt ajánlja, hogy legalább 1 percig írjunk be folyamatosan karaktereket, mielőtt a Control-D kombináció lenyomásával megszakítanánk a bevitelt. Arra is ügyeljünk, hogy ne csak az ,,ujjra eső” billentyűket nyomjuk le, hanem számokat és különböző szimbólumokat is vigyünk be. Miután elkészült a véletlen karaktereket tartalmazó fájl, az alábbi paranccsal indíthatjuk a véletlenszám-generátort: 312 | SAMBA # ssleay genrsa -rand /tmp/private.txt >/dev/null 2451 semi-random bytes loaded Generating RSA private key,

512 bit long modulus .+++++ .+++++ e is 65537 (0x10001) A parancs kimenetét nyugodtan figyelmen kívül hagyhatjuk. Miután lefutott a program, töröljük a kulcs létrehozásához használt karaktersorozatot, mert ez alapján újból létre lehetne hozni a véletlenszám-generátorral privát kulcsokat: rm -f /tmp/private.txt Az előző parancs eredményeként létrejön a home könyvtárunkban egy .rnd kiterjesztésű rejtett fájl. Az SSLeay ezt a fájlt fogja használni, amikor a jövőben elkészíti a kulcspárokat A Samba konfigurálása az SSL használatához Elérkeztünk ahhoz a ponthoz, amikor a Sambát a SSL használatához konfigurálhatjuk. Emlékezzünk vissza, hogy ,,A Samba telepítése Unix rendszerre” című 2. fejezetben azt mondtuk, hogy először a konfiguráló szkriptet kell futtatni, ami inicializálja a make-fájlt, mielőtt lefordíthatnánk a Sambát. Ahhoz, hogy a Sambát az SSL protokollal használhassuk, újra kell futtatnunk a konfiguráló

scriptet: /configure --with-ssl Ezt követően az alábbi parancsokkal fordíthatjuk le a Sambát: # make clean # make all Ha olyan hibaüzenetet kapnánk, amely közli, hogy az smbd végrehajtható fájl nem találja az ssl.h fájlt, akkor valószínűleg nem az alapértelmezés szerinti könyvtárba telepítettük az SSLeay csomagot. Vegyük fel a parancshoz a --with-sslinc kapcsolót úgy, hogy az SSL disztribúció alapkönyvtárára mutasson – ami ebben az esetben az include/ssl.h fájlt tartalmazó könyvtár Ha viszont rendben megtörtént a fordítás, akkor rátérhetünk a következő lépésre, a bizonyítványok elkészítésére. Hogyan válhatunk hitelesítő hatósággá? Az SSL protokoll a kapcsolatfelvétel egyeztetése során igényli az X.509-es bizonyítványokat, hogy biztos legyen abban, a kommunikációban részt vevő felek legalább egyike valóban az, akinek mondja magát. A valós életben az ilyen bizonyítványok – amelyeket a nyilvános webhelyek is

használnak az SSL kapcsolataikban – ára évi 300 USD körül van. A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 313 Ennek az az oka, hogy a bizonyítványnak egy hitelesítő hatóság digitális aláírását is tartalmaznia kell. A hitelesítő hatóság olyan szervezet, amely a saját privát kulcsát használva garantálja egy digitális bizonyítvány hitelességét. Így ha valaki meg akarja vizsgálni egy bizonyítvány hitelességét, akkor ezt a hitelesítő hatóság nyilvános kulcsával minden további nélkül megteheti. Az SSLeay segítségével bármely nyilvános hitelesítő hatóság szolgáltatását igénybe vehetjük, de ezt el is kerülhetjük. Az SSLeay azt is lehetővé teszi, hogy magunkat nevezzük ki megbízható hitelesítő hatóságnak, és eldöntsük, mely ügyfeleinket tekintjük megbízható, és melyeket megbízhatatlan feleknek. Ehhez különböző feladatokat kell elvégeznünk az SSLeay disztribúcióval. Elsőként meg kell

adnunk azt a biztonságos helyet, ahol a kiszolgáló és az ügyfelek bizonyítványait tároljuk. A példánkban alapbeállításként az etc/certificates könyvtárat választjuk. # cd /etc # mkdir certificates # chmod 700 certificates Figyeljük meg, hogy a gyökéren kívül senki másnak sem engedélyezzük a könyvtár elérését. Ez nagyon fontos Következő lépésként úgy készítsük el az SSLeay szkripteket és a konfigurációs fájlokat, hogy az ebben a könyvtárban tárolt bizonyítványokat használják. Ehhez először úgy módosítsuk a /usr/local/ssl/bin/CAsh elérési úton lévő CAsh szkriptet, hogy a most létrehozott könyvtárat specifikálja. Keressük meg a fájlban az alábbi bejegyzést tartalmazó sort: CATOP=./demoCA Írjuk át a sort az alábbi módon: CATOP=/etc/certificates Ezt követően a /usr/local/ssl/lib/ssleay.cnf fájlt is úgy kell módosítanunk, hogy ugyanerre a könyvtárra mutasson. Keressük meg a következő bejegyzést: [ CA

default ] dir = ./demoCA # Where everything is kept Írjuk át az alábbiak szerint: [ CA default ] dir = /etc/certificates # Where everything is kept Most futtassuk a hitelesítő hatóságot telepítő CA.sh szkriptet, hogy elkészüljenek a bizonyítványok Biztosítsuk, hogy ezt a műveletet ugyanazon személyként végezzük el, mint aki a véletlenszám-generátor bemenetét is készítette a korábbiakban: 314 | SAMBA /usr/local/ssl/bin/CA.sh -newca mkdir: cannot make directory ’/etc/certificates’: File exists CA certificate filename (or enter to create) Az Enter billentyű lenyomásával hozzuk létre a hitelesítő hatóság bizonyítványát. Ekkor a következőket látjuk: Making CA certificate . Using configuration from /usr/local/ssl/lib/ssleay.cnf Generating a 1024 bit RSA private key .+++++ .+++++ writing new private key to /etc/certificates/private/cakey.pem Enter PEM pass phrase: Adjunk meg új jelszót a bizonyítványhoz. A jelszót kétszer kell

beírnunk, mielőtt elfogadná az SSLeay: Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: Jól jegyezzük meg ezt a jelszót. Szükségünk lesz rá, amikor majd az ügyfelek bizonyítványát kell aláírnunk Miután az SSLeay elfogadta a jelszót, újabb kérdéseket tesz fel, és az ezekre adott válaszokkal kitölti az X.509 bizonyítvány megfelelő rovatait: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ’.’, the field will be left blank Töltsük ki a mezőket a szervezetünkre vonatkozó adatokkal. A könyv szerzői például az alábbi adatokkal készítették el a bizonyítványukat: Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:California Locality Name (eg, city)

[]:Sebastopol Organization Name (eg, company) []:O’Reilly Organizational Unit Name (eg, section) []:Books Common Name (eg, YOUR name) []:John Doe Email Address []:doe@ora.com Ezt követően az SSLeay hitelesítő hatóságként konfigurálja magát, és alkalmas lesz arra, hogy bizonyítványokat írhassunk alá a Samba kiszolgálóhoz csatlakozó ügyfelek számára. A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 315 Bizonyítványok készítése az ügyfelek számára Nagyon egyszerűen elkészíthetjük egy ügyfélgép bizonyítványát. Először generálnunk kell a számára egy nyilvános és privát kulcsból álló kulcspárt, majd el kell készítenünk a bizonyítványkérő fájlt, végül az SSLeay segítségével hitelesítő hatóságként alá kell írnunk a fájlt. A példabeli phoenix ügyfélgép bizonyítványának elkészítéséhez mindössze három SSLeay parancsot kell kiadnunk. Az első parancs generálja a kulcspárját, és elhelyezi a

phoenix.key fájlban A privát kulcsot titkosítja, esetünkben háromszoros DES eljárással Ezt követően meg kell adnunk egy jelszót, amire majd a következő lépésben lesz szükség: # ssleay genrsa -des3 1024 phoenix.key 1112 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus .+++++ .+++++ e is 65537 (0x10001) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: Miután lefutott ez a program, adjuk ki az alábbi parancsot: # ssleay req -new -key phoenix.key -out phoenix-csr Enter PEM pass phrase: Adjunk meg egy jelszót az ügyfél előbb elkészült bizonyítványához (ne a hitelesítő hatóság jelszavát). Most ismét válaszolnunk kell az előzőekből már ismert kérdésekre, ezúttal azonban az ügyfél nevében. Egy ún challenge jelszót és egy szervezet nevét is meg kell adnunk, de ezeknek itt nincs jelentőségük. Miután lefutott a program, készen áll a phoenix-csr nevű fájlban a bizonyítványkérés Ezt követően

megbízott hitelesítő hatóságként alá kell írnunk a bizonyítványkérést. Írjuk be a következő parancsot: # ssleay ca -days 1000 -inflies phoenix-csr phoenix.pem Ez a parancs bekéri a hitelesítő hatóság PEM jelszavát. Nagyon vigyázzunk, nehogy a most létrehozott ügyfélbizonyítványhoz tartozó PEM jelszót írjuk be! Miután megadtuk a helyes jelszót, a következőket kell látnunk: Check that the request matches the signature Signature ok The Subjects Distinguished Name is as follows: . A fenti sorok után az ügyfél előbb elkészített bizonyítványához megadott információk jelennek meg. A program értesítést küld, ha valamilyen hiba történt Ha minden rendben 316 | SAMBA ment, akkor az SSLeay megerősíti, hogy aláírja a bizonyítványt, és elhelyezi az adatbázisban. Ezzel létrehoz egy bejegyzést a /etc/certificates/newcerts könyvtárban Az eddigi műveletek végeredményeként az aktuális könyvtárban létrejött a phoenix.key és

a phoenixpem fájl Az ügyfél ezeket a fájlokat kapja meg, amikor az SSL-hez konfigurált Samba kiszolgálóhoz kapcsolódik, és az SSL Proxy is ezeket a fájlokat használja. A Samba kiszolgáló konfigurálása Következő lépésként az alábbi beállítások felvételével módosítanunk kell a Samba konfigurációs fájlját. A beállítások elkészítésénél abból indultunk ki, hogy a hitelesítő hatóság számára az /etc/certificates könyvtárban hoztuk létre a bizonyítványok fájljait: [global] ssl = yes ssl server cert = /etc/certificates/cacert.pem ssl server key = /etc/certificates/private/cakey.pem ssl CA certDir = /etc/certificates Most le kell állítanunk, majd kézzel újra kell indítanunk a Samba démonjait: # nmbd -D # smbd -D Enter PEM pass phrase: A Samba démonjainak elindításához be kell írnunk a hitelesítő hatóság jelszavát. Megjegyezzük, hogy ez problémát okozhat, ha a programot a szokásos módokon kell elindítani, de az olyan

fejlett szkript nyelvek, mint az Expect vagy a Python segítségével megkerülhető ez az akadály. Tesztelés az smbclient programmal A Samba helyes működését jól tesztelhetjük az smbclient programmal. A Samba kiszolgálón adjuk ki az alábbi parancsot (a megosztás és a felhasználó helyett a tényleges megosztás és a tényleges felhasználó nevét írjuk be): # smbclient //hydra/megosztás -U felhasználó Különböző hibavizsgáló sorok jelennek meg, majd egy olyan sor, amely jelzi a megállapodás szerinti titkosítást, mint például: SSL: negotiated cipher: DES-CBC3-SHA Ezt követően írjuk be a jelszavunkat, és a szokásos módon kapcsolódjunk a megosztáshoz. Ha ez sikerül, akkor biztosak lehetünk abban, hogy a Samba helyesen támogatja az SSL kapcsolatokat. Most még az ügyfélnél is el kell végezni a beállításokat A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 317 Az SSL Proxy telepítése Az SSL Proxy önálló programként

bináris és forráskód alakban is hozzáférhető. A program a http://obdevat/Products/sslproxyhtml webhelyről tölthető le Miután letöltöttük, ugyanúgy konfigurálhatjuk és fordíthatjuk le, mint a Sambát. A példánkban Windows NT rendszeren mutatjuk be a konfigurálását, de majdnem pontosan ugyanezeket a lépéseket kell elvégezni Unix rendszerben is. Ügyeljünk arra, hogy a most következő lépéseket adminisztrátorként (rendszergazdaként) hajtsuk végre. Ha a bináris fájlokat töltöttük le egy Windows NT rendszerre, akkor az alábbi fájloknak kell lenniük a választott könyvtárban: • cygwinb19.dll • README.TXT • sslproxy.exe • dummyCert.pem A fentiek közül csak az SSLProxy végrehajtható fájl az érdekes most. Másoljuk át a korábban az ügyfél részére létrehozott phoenixpem és phoenixkey fájlokat ugyanabba a könyvtárba, ahol az SSLProxy végrehajtható fájl van. Ügyeljünk arra, hogy a könyvtárt elrejtsük más felhasználók

kíváncsi szeme elől. Következő lépésként biztosítanunk kell, hogy a Windows NT gép képes legyen a Samba kiszolgáló NetBIOS nevének feloldására. Ez azt jelenti, hogy vagy lennie kell a hálózatban egy WINS kiszolgálónak (ezt a feladatot a Samba kiszolgáló is elláthatja, ha felvettük a wins support = yes beállítást), vagy a névnek szerepelnie kell a rendszer megfelelő hosts fájljában (a WINS kiszolgálóról a 7 fejezetben volt szó)* Végül indítsuk el az SSPL Proxy programot az alábbi paranccsal. Itt is feltételezzük, hogy hydra a Samba kiszolgáló neve. # C:SSLProxysslproxy -l 139 -R hydra -r 139 -n -c phoenix.pem -k phoenix.key A parancs paraméterei azt közlik a programmal, hogy figyeljen a 139-es portra érkező kapcsolatkérésekre, és irányítsa át ezeket a hydra nevű gép 139-es portjára. Emellett a programnak a phoenix.pem és phoenixkey fájlokat kell használnia az SSL kapcsolat kezdeményezéséhez szükséges bizonyítvány és

kulcsok generálásához A parancsra az SSL Proxy a következő választ küldi: Enter PEM pass phrase: Írjuk be az ügyfél kulcspárjához tartozó PEM jelszót. Erre a következő választ kapjuk: SSL: No verify locations, trying default proxy ready, listening for connections * Ha az SSL Proxy programot Unix kiszolgálón futtatjuk, akkor biztosítsuk, hogy feloldható legyen a Samba kiszolgáló DNS neve. 318 | SAMBA Ezzel a kiszolgáló kész a kérelmek fogadására. A parancsot akár a Unixon, akár a Windows NT-n elhelyezhetjük egy indító szekvenciába, ha minden bejelentkezéshez használni akarjuk. Gondoskodjunk arról, hogy az NT kiszolgálóhoz tartozó összes ügyfél (beleértve magát az NT kiszolgálót is) erre a kiszolgálóra, és ne a Samba kiszolgálóra mutasson. Miután végeztünk a fenti telepítéssel, próbáljunk kapcsolatot teremteni az NT proxy kiszolgálón keresztül. Tapasztalni fogjuk, hogy szinte észrevehetetlen a közbeiktatott

kiszolgáló jelenléte. Az SSL konfigurációs beállításai Az A.1 táblázatban összefoglaltuk az SSL konfigurációs beállításokat Megjegyezzük, hogy ezek mindegyike globális hatókörű, vagyis ezeket a beállításokat a konfigurációs fájl [global] szakaszába kell felvenni. A.1 táblázat Az SSL beállítási lehetőségei Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör ssl Boolean érték Jelzi, hogy engedélyezett-e a Sambában az SSL üzemmód. Megadja azon gazdagépek listáját, amelyeknek mindig az SSL használatával kell kapcsolódniuk. Megadja azon gazdagépek listáját, amelyek sohasem használják az SSL-t a kapcsolódáshoz. Megadja a bizonyítványokat tároló könyvtárat. no Globális Nincs Globális Nincs Globális Nincs Globális Megadja a Samba összes bizonyítványát tároló fájlt. Nincs Globális Megadja a kiszolgáló bizonyítványának helyét. Nincs Globális Megadja a kiszolgáló privát

kulcsának tárolási helyét. Nincs Globális Megadja az ügyfél bizonyítványának tárolási helyét. Nincs Globális Megadja az ügyfél privát kulcsának tárolási helyét. Nincs Globális ssl hosts Karakterlánc (címlista) ssl hosts Karakterlánc resign (címlista) ssl CA certDir ssl CA certFile ssl server cert ssl server key ssl client cert ssl client key Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) Karakterlánc (teljes elérési út) A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 319 A.1 táblázat folytatása Beállítás Paraméterek Funkció Alapértelmezett érték Hatókör ssl require clientcert ssl require servercert ssl ciphers Boolean érték Azt jelzi, hogy megköveteli-e a Samba, hogy minden ügyfelének legyen bizonyítványa. Azt jelzi, hogy magának a kiszolgálónak kell-e rendelkeznie

bizonyítvánnyal. no Globális no Globális Nincs Globális ssl2 vagy 3 Globális no Globális ssl version ssl compatibility Boolean érték Karakterlánc ssl2 vagy 3, ssl3 vagy tls1 Boolean érték Megadja a protokoll egyeztetése során használandó titkosító eljárást. Megadja az SSL használandó verzióját. Jelzi, hogy szükség van-e az SSL egyéb megvalósításaival való kompatibilitásra. ssl Ezzel a beállítással konfigurálható úgy a Samba, hogy az SSL protokollt használja a maga és az ügyfelei közötti kapcsolatokban. A beállításhoz alapértelmezés szerint a no érték tartozik, amit az alábbi módon változtathatunk meg: [global] ssl = yes Ne feledjük, hogy a beállítás használatához lennie kell egy proxy kiszolgálónak, amelyen keresztül a Windows 95/98 ügyfelek kapcsolódhatnak a Samba kiszolgálóhoz. ssl hosts Ebben a beállításban azokat a gazdagépeket sorolhatjuk fel, amelyeknek kötelező az SSL használata. A

beállítás szintaxisa ugyanaz, mint a hosts allow és a hosts deny konfigurációs beállításoké Például: [global] ssl = yes ssl hosts = 192.168220 A fenti beállítással azt írjuk elő, hogy mindazoknak a gazdagépeknek, amelyek a 192.168220 alhálózatba tartoznak, SSL kapcsolatokat kell használniuk az ügyfelekkel való kommunikáció során. Ez az eljárás akkor hasznos, ha tudjuk, hogy különböző kapcsolatok jönnek létre az alhálózat és más, nem megbízható hálózatok, mint például az internet között 320 | SAMBA Ha sem ezt, sem az ssl hosts resign beállítást nem adjuk meg, és az ssl beállításhoz a yes érték tartozik, akkor a Samba az összes ügyfele számára csak SSL kapcsolatokat engedélyez. ssl hosts resign Ebben a beállításban azokat a gazdagépeket sorolhatjuk fel, amelyek nincsenek kényszerítve SSL kapcsolatok használatára. A beállítás szintaxisa ugyanaz, mint a hosts allow és a hosts deny konfigurációs

beállításoké. Például: [global] ssl = yes ssl hosts resign = 160.2310 1602320 A fenti példában azt írjuk elő, hogy azoknak a gazdagépeknek, amelyek a 160.2310 vagy a 160.2320 alhálózatokba tartoznak, nem kell SSL kapcsolatokat használniuk az ügyfelekkel való kommunikáció során Ha sem ezt, sem az ssl hosts beállítást nem adjuk meg, és az ssl beállításhoz a yes érték tartozik, akkor a Samba az összes ügyfele számára csak SSL kapcsolatokat engedélyez. ssl CA certDir Ebben a beállításban azt a könyvtárat adhatjuk meg, amely a hitelesítő hatóság (CA) által kiállított bizonyítványokat tartalmazza. A Samba ezeket a bizonyítványokat használja az ügyfelei hitelesítéséhez A könyvtárban minden egyes hitelesítő hatósághoz külön fájlnak kell tartoznia. A könyvtárban lévő egyéb fájlok figyelmen kívül maradnak Például: [global] ssl = yes ssl hosts = 192.168220 ssl CA certDir = /usr/local/samba/cert A beállításhoz

alapértelmezés szerint nem tartozik érték. E beállítás helyett az ssl CA certFile beállítást is használhatjuk, ha a hitelesítő hatóságokkal kapcsolatos összes adatot ugyanabban a fájlban akarjuk tárolni. ssl CA certFile Ebben a beállításban azt a fájlt adhatjuk meg, amely a hitelesítő hatóság (CA) által kiállított bizonyítványokat tartalmazza. A Samba ezeket a bizonyítványokat használja az ügyfelei hitelesítéséhez. Ez a beállítás annyiben különbözik az ssl CA certDir beállítástól, hogy csak egyetlen fájlt hoz létre, amely az összes hitelesítő hatóság adatait tartalmazza. Példa a beállítás használatára: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 321 A beállításhoz alapértelmezés szerint nem tartozik érték. E beállítás helyett az ssl CA certDir beállítást is használhatjuk, ha a hitelesítő hatóságokkal

kapcsolatos adatokat külön fájlokban akarjuk tárolni. ssl server cert Ez a beállítás a kiszolgáló bizonyítványának a helyét adja meg. A beállítás használata kötelező, mert a kiszolgálóhoz kell tartoznia bizonyítványnak az SSL használatához Például: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile ssl server cert = /usr/local/samba/private/server.pem A beállításhoz alapértelmezés szerint nem tartozik érték. Figyeljük meg, hogy a bizonyítvány a kiszolgáló privát kulcsát is tartalmazhatja ssl server key Ez a beállítás a kiszolgáló privát kulcsának a helyét határozza meg. Gondoskodnunk kell arról, hogy a fájlt tároló helyhez a rootfelhasználón kívül senki más ne férhessen hozzá. Példa: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile ssl server key = /usr/local/samba/private/samba.pem A beállításhoz alapértelmezés szerint nem tartozik

érték. Figyeljük meg, hogy a bizonyítvány a kiszolgáló privát kulcsát is tartalmazhatja ssl client cert Ez a beállítás az ügyfél bizonyítványának a helyét határozza meg. A bizonyítványt a Samba kiszolgáló az ssl require clientcert beállítással kérheti, de az smbclient is használhatja azt. Például: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile ssl server cert = /usr/local/ssl/private/server.pem ssl client cert= /usr/local/ssl/private/clientcert.pem A beállításhoz alapértelmezés szerint nem tartozik érték. 322 | SAMBA ssl client key Ez a beállítás az ügyfél privát kulcsának a helyét határozza meg. Gondoskodnunk kell arról, hogy a fájlt tároló helyhez a rootfelhasználón kívül senki más ne férhessen hozzá. Példa: [global] ssl = yes ssl hosts = 192.168220 ssl CA certDir = /usr/local/samba/cert/ ssl server key = /usr/local/ssl/private/samba.pem ssl client key =

/usr/local/ssl/private/clients.pem A beállításhoz alapértelmezés szerint nem tartozik érték. A beállítást csak akkor kell felvennünk, ha van az ügyfélnek bizonyítványa ssl require clientcert Ezzel a beállítással azt jelezhetjük, hogy kell-e rendelkeznie egy ügyfélnek bizonyítvánnyal. Ha előírjuk a bizonyítvány kötelező meglétét, akkor a kiszolgáló végignézi az ssl CA certDir vagy az ssl CA certFile beállításokban megadott helyeket, hogy meggyőződjön arról, van-e érvényes bizonyítványa az ügyfélnek, majd ez alapján hitelesíti, és engedélyezi a kapcsolódását. Például: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile ssl require clientcert = yes Javasolható, hogy mindazoktól az ügyfelektől megköveteljük a bizonyítvány meglétét, akik kapcsolódhatnak a Samba kiszolgálóhoz. A beállításhoz alapértelmezés szerint a no érték tartozik. ssl require servercert Ezzel a

beállítással azt jelezhetjük, hogy kell-e rendelkeznie a kiszolgálónak bizonyítvánnyal. Ezt a bizonyítványt az smblient program is használja A beállításhoz egy egyszerű Boolean érték rendelhető, például: [global] ssl = yes ssl hosts = 192.168220 ssl CA certFile = /usr/local/samba/cert/certFile ssl require clientcert = yes ssl require servercert = yes Bár azt javasoltuk, hogy mindazoktól az ügyfelektől megköveteljük a bizonyítvány meglétét, akik kapcsolódhatnak a Samba kiszolgálóhoz, a kiszolgálónál ez nem kötelező, de ugyancsak ajánlott. A beállításhoz alapértelmezés szerint a no érték tartozik A FÜGGELÉK. A SAMBA KONFIGURÁLÁSA SSL PROTOKOLLAL | 323 ssl ciphers Ebben a beállításban azokat a titkosító eljárásokat adhatjuk meg, amelyeket a Samba az SSL kapcsolat létrehozásának egyeztetési fázisában kiválaszthat. A Samba az alábbi eljárások közül választhat: DEFAULT DES-CFB-M1 NULL-MD5 RC4-MD5 EXP-RC4-MD5

RC2-CBC-MD5 EXP-RC2-CBC-MD5 IDEA-CBC-MD5 DES-CBC-MD5 DES-CBC-SHA DES-CBC3-MD5 DES-CBC3-SHA RC4-64-MD5 NULL Ha nem ismerjük kellőképpen az SSL protokollt, és nem akarjuk, hogy a Samba kötelezően egy adott titkosító eljárást használjon, akkor inkább ne vegyük fel ezt a beállítást. ssl version Ebben a beállításban az SSL azon verzióját írhatjuk elő, amelyet a Sambának a titkosított kapcsolatok kezeléséhez használnia kell. A beállításhoz alapértelmezés szerint az ssl2or3 karakterlánc tartozik, ami az SSL protokollnak akár a 2-es, akár a 3-as verzióját jelenti attól függően, hogy a kiszolgáló és az ügyfél a kapcsolatfelvétel egyeztetése során melyikben állapodik meg. Ugyanakkor a protokoll valamely meghatározott verzióját is előírhatjuk az alábbi módon: [global] ssl version = ssl3 Ezzel kapcsolatban is az mondható, hogy ha nem ismerjük kellőképpen az SSL protokollt, és nem akarjuk, hogy a Samba kötelezően egy adott

verzióját használja, akkor inkább ne vegyük fel ezt a beállítást. ssl compatibility Ezzel a beállítással azt írhatjuk elő, hogy úgy legyen-e konfigurálva a Samba, hogy az SSL más verzióit is tudja használni. Mivel a könyv írásának idején az SSL-nek nem léteztek más verziói, a beállításnak nincs jelentősége, ezért legjobb, ha meghagyjuk az alapértelmezett no értékét. A Samba teljesítményének finomhangolása Ebben a függelékben olyan eljárásokkal ismerkedünk meg, amelyek segítségével elvégezhetjük a Samba teljesítményének behangolását és a rendszer igényeink szerinti méretezését. A teljesítmény hangolásán itt azt értjük, hogy megkeressük a rendszerben meglévő szűk keresztmetszeteket, és különböző lépésekkel megszüntetjük ezeket. A rendszer méretezése viszont olyan eljárásokat jelent, amelyek révén elejét vehetjük a szűk kapacitások kialakulásának. Normál körülmények között az ilyen

problémákkal nem kell törődnünk A Samba egy abszolút hangolatlan kiszolgálón is jól elboldogul a felhasználók kisebb csoportjával. Ha viszont helyesen van behangolva a kiszolgáló, akkor a Samba legkevesebb kétszer annyi ügyfél kiszolgálására is képes A fejezetben az ilyen teljesítménynövelő és helyes méretezési eljárásokról olvashatunk, amelyek segítségével a felső határáig növelhetjük a Samba képességeit Egy egyszerű teszt Honnan állapíthatjuk meg, hogy elfogadható a rendszerünk teljesítménye? Egyszerű öszszehasonlítást végezhetünk a Samba és az FTP között. A B1 táblázat kilobájt/s-ban mutatja két kiszolgálón az átbocsátási sebességeket: egy közepes méretű Sun SPARC Ultra és egy kis méretű Linux Pentium kiszolgálón. B.1 táblázat Egyszerű összehasonlítás Parancs FTP Hangolatlan Samba Behangolt Samba Sparc get Sparc put Pentium get Pentium put 1014.5 379.8 973.27 1014.5 645.3 386.1 N/A N/A 866.7

329.5 725 1100 Ha ugyanezeket a teszteket a saját kiszolgálónkon is lefuttatjuk, akkor valószínűleg más számokat kapunk. Ugyanakkor az is valószínű, hogy a Samba és az FTP átbocsátása közötti arány ezekhez hasonló lesz Nem célszerű, ha a Samba teljesítményét csak az FTP-vel hasonlítjuk össze. Aranyszabályként a következőt alkalmazhatjuk: ha a Samba lényegesen lassabb, mint az FTP, akkor ideje, hogy behangoljuk. B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 325 Azt gondolhatnánk, hogy ugyanezt a tesztet a Samba és az NFS összehasonlításához is használhatjuk. A valóságban azonban az ilyen összehasonlításoknak nincs sok értelme Attól függően, hogy az NFS melyik verzióját használjuk, és mennyire jól van behangolva, a Samba akár gyorsabb, akár lassabb is lehet az NFS-nél. A szerzők azt tapasztalták, hogy általában a Samba a gyorsabb, de ez félrevezető lehet; az NFS más algoritmust használ mint a Samba, így

azok a hangolások, amelyek optimálisak az NFS számára, hátrányosak lehetnek a Sambára nézve. Ugyanakkor viszont ha a Sambát egy jól behangolt NFS kiszolgálón futtatjuk, meglehetősen rossz eredményt kaphatunk Ennél népszerűbb teszt Ziff-Davis NetBench programja, amely számos olyan felhasználót szimulál az ügyfélgépeken, akik szövegszerkesztőt futtatnak, és Samba kiszolgálón tárolt adatokhoz férnek hozzá. Bár ez sem tökéletes eljárás, arra azért jó, hogy azonos kiszolgálókat össze lehessen hasonlítani. Jeremy Allison 1998 novemberében elvégzett tesztjeiben a Samba 2.0 egy SGI multiprocesszoros rendszeren nagyobb teljesítményt ért el, mind egy NT Server 4.0 (2-es javítócsomaggal) egy hasonlóan csúcsminőségű Compaq gépen. Ugyanezt az eredményt erősítette meg egy azonos hardvereken futó NT és Linux Sm@rt Reseller tesztje 1999 februárjában. 1999 áprilisában a Mindcraft tesztlaboratórium olyan tesztről adott ki jelentést,

amely szerint a Samba egy négyprocesszoros Linux gépen lényegesen lassabb volt, mint egy ugyanilyen gépen futó Windows NT natív fájlkiszolgálója. Az Open Source közösség ugyan nagyon élesen bírálta az eredeti jelentést, mondván, hogy a teszt a Microsoft megbízásából készült, és a rendszereket a Windows NT-re hegyezték ki, egy későbbi, ennél kiegyensúlyozottabb teszt valóban azt bizonyította, hogy a Linux egyes részein javítani kell a teljesítményt, különösen többprocesszoros környezetben. Kevés szó esett magáról a Sambáról. A Sambáról tudható, hogy jól méretezhető többprocesszoros rendszerekben, és az SGI 0200 négyprocesszoros gépén meghaladja a teljesítménye a 440 MB/s sebességet, jóval felülmúlva a Mindcraft által kimutatott 310 MB/s sebességet. Az NT és a PC hardverek gyorsabbá válásával természetesen változhatnak a teljesítményviszonyok, de ezzel együtt a Samba is javul. Így például a Samba 1918 csak

akkor bizonyult gyorsabbnak, ha az ügyfelei száma meghaladta a 35-öt Ezzel szemben a Samba 20-nál már nem számít az ügyfelek száma. Röviden összefoglalva a Samba az iparban található legjobb hálózati szoftverekkel összehasonlítva is nagyon versenyképes, és egyre jobb lesz A könyv nyomdába adásának idején Andrew Tridgell bejelentette egy Sambához és SMB hálózatokhoz használható tesztprogram alfateszt verzióját. A programról az ftp://samba.org/pub/tridge/dbench/README címen olvashatók további tudnivalók A Samba fejlesztőcsoportjától is várhatók további teljesítményvizsgáló tesztek. A Samba finomhangolása Ennyi bevezető után lássuk, miként tehetünk egy gyors hálózati programcsomagot még fürgébbé. Nyúzópróba A következőkben néhány egyszerűbb vizsgálatnak vetjük alá a Sambát. Mivel a Samba kiszolgálók elsődleges feladata fájlok átvitele, csak az átviteli sebességet fogjuk vizsgálni, a 326 | SAMBA

különböző eseményekre való válaszadási időkkel nem foglalkozunk. A fájlátviteli sebességeket eléggé egyszerűen mérhetjük, és a Samba válaszadási képességei nem olyan roszszak, hogy emiatt kifinomultabb vizsgálatokat kelljen végeznünk A vizsgálatok elvégzéséhez a következő stratégiát választjuk: • Keresünk egy ésszerű méretű fájlt, amit lemásolunk, és egy olyan programot, amely kijelzi a másolási sebességet (ilyen lehet például az smbclient program). • Keresünk egy nyugalmas (tipikus) időt a teszt elvégzéséhez. • Néhányszor előzetesen lefuttatjuk az egyes teszteket, hogy feltöltsük a puffereket. • Különböző időkben futtatjuk a teszteket, és figyeljük, nem fordulnak-e elő szokatlan események. • Részletesen rögzítjük a futások eredményét. • Összehasonlítjuk az eredmények átlagát a várt értékekkel. Miután a fenti lépéseket elvégezve megkaptuk a kiinduló adatokat, egyenként módosítunk

különböző paramétereket, és újra elvégezzük a fenti vizsgálatokat. A fejezet végén található üres táblázatok arra szolgálnak, hogy beírjuk a kapott eredményeket. Kipróbálható beállítások Szó szerint ezerszámra hozhatunk létre a Sambában olyan beállításkombinációkat, amelyek szerint kereshetjük a tökéletesen működő rendszert. Ha viszont nem kifejezetten rendszergazdai szempontból közelítjük meg a kérdést, akkor a vizsgálatokat az alábbiakban felsorolt beállításokra szűkíthetjük. Ezek azok a beállítások, amelyek a legnagyobb valószínűséggel befolyásolják a rendszer általános teljesítményét. A felsorolási sorrendjük nagyjából tükrözi a fontossági sorrendjüket. Naplózási szint Ennek a beállításnak nyilvánvaló a teljesítményt befolyásoló szerepe. A naplózási szint (log level vagy debug level beállítás) növelése jó módszer egy hiba megkereséséhez, de csak abban az esetben, ha nem éppen a

teljesítménnyel kapcsolatos valamilyen hibának akarunk utánajárni. Amint a 4 fejezetben említettük, a Samba a 3-as vagy az ennél nagyobb naplózási szintek mellett üzenetek ezreit generálja, és ezek lemezre írása lassú művelet. Az smbclient és ftp-s tesztjeinkben azzal, hogy 0-ról 3-ra növeltük a szintet, 645,3 KB/s-ról 622,2 KB/s-ra csökkent az átviteli sebesség, ami durván öt százalékos romlásnak felel meg. A nagyobb szintek még nagyobb teljesítménycsökkenést okoznának Socket beállítások Következő feladatként a socket options konfigurációs beállításokat kell vizsgálnunk. Bár ezek igazából a gazdarendszer hangolásával függnek össze, de kapcsolatonként állíthatók be, és a Samba módosíthatja ezeket azokon a socketokon, amelyeket az smb.conf fájl [global] szakaszába felvett socket options = socketlista beállítás specifikál. Nem minden szoftvergyártó támogatja ezeket a beállításokat – a szoftver

dokumentációjában tájékozódjunk a setsockopt vagy a socket részleteiről. B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 327 A fontosabb beállítási lehetőségek: TCP NODELAY Hagyjuk, hogy a kiszolgáló annyi csomagot küldjön, amennyi szükséges, hogy alacsony szinten tartsuk a késéseket. Ezt a telnet kapcsolatokban használják jó válaszidők elérése céljából, de akkor is jó eredménnyel jár, ha rövidebbek a kérések, vagy ha késleltetve vannak a visszaigazolások (úgy tűnik, hogy ez a helyzet a Microsoft TCP/IP-nél). Ezzel önmagában 30–50 százalékkal növelhető a teljesítmény A Samba 2.04 verzióban a socket options beállításhoz alapértelmezés szerint a TCP NODELAY érték tartozik. IPTOS LOWDELAY Ezzel a beállítással ugyancsak csökkenthető a késlekedési idő, de nem a kiszolgálón, hanem a forgalomirányítón és más rendszerekben. Az IPTOS beállítások újdonságok, amelyeket nem támogat minden

operációs rendszer és forgalomirányító Ha a rendszerünk támogatja ezt, akkor minden olyan helyen használjuk az IPTOS LOWDELAY beállítást, ahol a TCP NODELAY beállítást is használjuk. SO SNDBUF és SO RCVBUF A küldő és fogadó pufferek méretét gyakran nagyobbra választhatjuk annál, mint amit az operációs rendszer állított be. Ezzel némileg növelhető a sebesség (amíg el nem érjük azt a pontot, ahol eltűnnek a válaszok). SO KEEPALIVE Ez a beállítás időszakos (négy óránkénti) vizsgálatot indít abból a célból, hogy lássa, nem tűnt-e el az ügyfél. A lejárt kapcsolatok némileg jobban kezelhetők a Samba keepalive és dead time beállításaival. Mindhárom beállításnak az a feladata, hogy lezárja a megszakadt kapcsolatokat, és a használaton kívüli memóriaterületeket, valamint a processztábla-bejegyzéseket ismét az operációs rendszer rendelkezésére bocsássa. További socketbeállításokat is megvizsgálhatunk (például

SO SNDLOWAT), de ezek gyártóról gyártóra változhatnak. Aki a Samba hangolásával kapcsolatban többet szeretne tudni ezekről a beállításokról, a TCP/IP Illustrated folyóiratban tájékozódhat a részletekről. read raw és write raw Ezek a beállítások jelentős mértékben befolyásolják a teljesítményt. Lehetővé teszik ugyanis, hogy a Samba egyetlen SMB kérelem során akár 64 kilobájtos írási vagy olvasási műveletet hajtson végre a hálózaton. Ehhez az SMB SMBreadraw és SMBwriteraw csomagszerkezetét is a legnagyobb méretre kell állítani Jegyezzük meg, hogy ez nem azonos a Unix raw read műveletével. A Unixban ez a fogalom a lemezek fájlrendszer használata nélküli olvasását jelenti, ami meglehetősen eltér attól, amiről itt a Samba kapcsán szólunk. A múltban egyes ügyfélprogramok lefagytak, ha megpróbáltuk volna használni a read raw beállítást. A mai ismeretek szerint már nincsenek ilyen problémák Alapértelmezés szerint

mind a read raw, mind a write raw beállításhoz a yes érték tartozik, és célszerű meghagyni ezt, hacsak nincs egy hibás ügyfélprogramunk. 328 | SAMBA Opportunista zárolás Az opportunista zárolások (röviden: oplocks) lehetővé teszik, hogy az ügyfelek helyileg gyorsítsák a fájlokat, ami 30 százalékos teljesítményjavulást is eredményezhet. A beállításhoz alapértelmezés szerint a yes érték tartozik A csak olvasható fájlok vonatkozásában a fake oplocks beállításnak ugyanez a funkciója anélkül, hogy ténylegesen sor kerülne a gyorsításra. Ha olyan fájljaink lennének, amelyek nem gyorsíthatók, kikapcsolhatjuk az ilyen zárolásokat. Az adatbázis-fájlokat sohase gyorsítsuk, és az olyan fájlokat sem, amelyek mind a kiszolgálón, mind az ügyfélnél frissülhetnek, és amelyek módosulásait azonnal látni kell. A veto oplock files beállítás teszi lehetővé, hogy akár a fájlok felsorolásával, akár helyettesítő

karaktereket is tartalmazó minta megadásával elkerüljük az ilyen fájlok gyorsítását. Az opportunista zárolásokat megosztásokra ki is kapcsolhatjuk, ha sok olyan fájlunk van, amelyeknek nem akarjuk engedélyezni a gyorsítását. Az ilyen zárolásokról az 5 fejezetben volt részletesebben szó IP csomagméret (MTU) A hálózatokon általában korlátozva van az egyidejűleg átvihető csomagok mérete. Az ilyen méret angol neve Maximum Segment Size, illetve ha a méretbe a csomag fejlécét is beleértjük, akkor Maximum Transport Unit (MTU) a neve. A Samba nem adja meg ezt az MTU méretet, viszont szüksége van olyan max xmit beállításra, amelyhez az MTU-nál nagyobb érték tartozik, mert különben csökkenne a teljesítménye. Erről további részletek az alábbi megjegyzésben olvashatók. Az MTU egy Ethernet kártyán általában 1500 bájtra, míg egy FDDI hálózaton 4098 bájtra van beállítva. Általánosságban az mondható, hogy a túlságosan alacsony

érték lassítja a forgalmat, míg a túlságosan nagy érték hirtelen teljesítményromlást idézhet elő a csomagok széttöredezése és újbóli elküldése miatt. Ha a hálózati forgalmunk forgalomirányítón keresztül bonyolódik le, akkor egyes rendszerek soros kapcsolatnak (például T1-nek) tekinthetik ezt, és az MTU-t nagyjából 536 bájtra állítják be. A Windows 95 is elköveti ezt a hibát, aminek következtében a közeli ügyfelekkel való kommunikáció során ugyan megfelelő a teljesítmény, de a forgalomirányító túloldalán lévő ügyfeleknél már észrevehetően kisebb a sebesség. Ha az ügyfél az ellenkező hibát követi el, és nagy MTU értéket állít be az olyan kapcsolatokra, amelyek kisebb értéket igényelnek, akkor a csomagok szegmensekre szakadnak szét. Ezzel csökken az átviteli sebesség, és a hálózaton bekövetkező bármilyen hiba miatt újból el kell küldeni a szegmenseket, ami jelentősen rontja a Samba

teljesítményét. Szerencsére módosíthatjuk a Windows MTU értékét, és mindkét hibát elkerülhetjük. A TCP fogadási ablaka A TCP/IP úgy működik, hogy kisebb csomagokra bontja a küldendő adatokat, és az egyes csomagokat küldi el az egyik gépről a másikra. Miután mindegyik csomagot feladta, az utolsó csomaggal együtt egy ellenőrzőösszeget is kiküld, amely alapján a fogadó fél ellenőrizni tudja, hogy nem volt hiba az átvitelben. Elméletileg a fogadó félnek minden egyes B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 329 csomag beérkezését és ellenőrzését követően vissza kellene küldenie egy másik csomagot, amelyben közölné a feladóval, hogy ,,minden rendben megérkezett, jöhet a többi”. A forgalom gyorsítása érdekében azonban a TCP elfogad egy több csomagot is magában foglaló keretet, amivel lehetővé teszi, hogy a küldő fél megszakítás nélkül egyszerre több csomagot is elküldhessen, és ne kelljen

minden egyes csomag elküldése után a viszszaigazolásra várnia. (Így a visszaigazoló csomagok egy nagyobb csomagba foghatók össze, és egyszerre elküldhetők.) Ez a keret, amit fogadási ablaknak is neveznek, azoknak a bájtoknak a számát adja meg, amelyeket a küldő fél elküldhet, mielőtt megállna, és a visszaigazoló csomagok beérkezésére várna. Az MTU-hoz hasonlóan ez az ablak is automatikusan beállítódik a kapcsolat típusától függően Ha túl kicsi az ablak, akkor fölöslegesen kell várakozni a visszaigazoló üzenetekre A különböző operációs rendszerek közepes pufferméreteket állítanak be az egyes socketokhoz, hogy egyetlen program ne sajátíthassa ki magának az összes memóriát. A puffer méretét bájtokban kell megadni a socket options beállításban, mint például SO SNDBUF=8192. Egy példa a beállítás használatára: socket options = SO SNDBUF=8192 A különböző operációs rendszerek az alapértelmezett értéknél

nagyobbakkal próbálkoznak: a SunOS 4.13 és az SVR4 a 4098-as értéket, míg az AIX, a Solaris és a BSD a 8192-16384 közötti értékeket használja. A 16384-es értéket megfelelő kiindulópontnak tekinthetjük: Steven a könyvében megemlít egy nem a Sambával végzett tesztet, amelynek során 40 százalékos javulást ért el. Kísérletezzünk különböző értékekkel, mert az is előfordulhat, hogy egy bizonyos határ fölött újból csökken a teljesítmény. Ez látható a B1 ábrán, mely egy Linux rendszeren végzett teszt eredményét mutatja be. B.1 ábra Az SO SNDBUF puffer mérete és a teljesítmény 330 | SAMBA A socket options beállításban az O SNDBUF és az SO RCVBUF pufferekhez ne rendeljünk az alapértelmezett értéknél kisebb értéket. A nagyobb értékek javíthatják a teljesítményt, de csak egy, a hálózattól függő pontig Ha viszont ezt a határt túllépjük, akkor újból hirtelen csökkenhet a teljesítmény. max xmit A Sambában

ez a beállítás közvetlen kapcsolatban áll az MTU és a fogadási ablak méretével. A beállításban annak a legnagyobb adatblokknak a méretét adhatjuk meg, amelyet a Samba egyetlen művelettel írni tud. Esetenként ezt a beállítást úgy is emlegetik, mint write size (írásméret), bár a Sambában nem ez a neve. Mivel az egyes blokkokkal járó átlagos veszteség százalékaránya annál kisebb, minél nagyobbak a blokkok, a max xmit beállításhoz hagyományosan a lehető legnagyobb értéket rendelik. Ez a protokoll által megengedett legnagyobb érték, vagyis 64 kilobájt A legkisebb érték, ami még nem okoz jelentős lassulást, a 2048 bájt Ha megfelelően kis értéket állítunk be, akkor ez lesz a Samba által küldhető legnagyobb csomagméret felső határa. Ezzel szimulálhatunk kisebb MTU értékeket, ha egy megbízhatatlan hálózaton kell teszteket végeznünk. read size Ha a max xmit beállításnál azt mondtuk, hogy ezt írásméretnek is nevezik,

akkor azt gondolhatnánk, hogy a read size (olvasásméret) beállítással annak a legnagyobb adatblokknak a méretét adhatjuk meg, amelynek az olvasását a Samba a hálózaton keresztül az ügyfeleinek engedélyezi. Ez azonban nem így van: ez a beállítás az előreírás (write ahead) műveletét váltja ki. A Samba ugyanis nem várja meg, hogy befejeződjön egy lemezről való olvasás vagy egy hálózatra történő írás művelete, hanem már azt megelőzően új műveletet indít. Ez a beállítás adja meg azt, hogy meddig várakozzon a Samba, mielőtt egy új, az előző (írási vagy olvasási) műveletet időben átlapoló írási vagy olvasási műveletet elindít. A read size beállítás nem gyakorol különösebb befolyást a Unix rendszerre, hacsak nem adunk meg hozzá túlságosan kis értéket. Ebben az esetben észrevehető a rendszer lassulása. A beállításhoz alapértelmezés szerint a 2048-as érték tartozik, és 1024-nél nem lehet kisebb. read

prediction Ez a beállítás mára elavult. Azt tette lehetővé, hogy a Samba előre olvashassa azokat a fájlokat, amelyeket csak olvasásra nyitottak meg az ügyfelek A Samba 20 (és az 19 újabb kiadásai) már nem engedélyezik ezt a beállítást, mert ütközést okozhat az opportunista zárolásokkal. Egyéb beállítások Az alábbiakban felsorolunk néhány olyan beállítást, amelyek hibás megadása – a naplózási szintekhez hasonlóan – jelentősen befolyásolhatja a Samba teljesítményét. hide files A hide files beállításhoz mintát rendelhetünk azzal a céllal, hogy a Windows ügyfél rejtettként azonosítsa mindazokat a fájlokat, amelyek egyrészt megfelelnek az B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 331 adott mintának, másrészt be van kapcsolva a DOS rejtett attribútuma. A Sambának ekkor a könyvtárak kilistázásakor minden egyes fájlt össze kell vetnie a mintával, ami jelentősen lassítja a kiszolgáló

működését. lpq cache time Ha az lpq (a nyomtatás várakozási sorának tartalma) parancs végrehajtása sokáig tartana, akkor az lpq cache time beállításhoz nagyobb értéket rendeljünk, mint amennyi időt az lpq parancs a lefutásához igényel, hogy ne kelljen a Sambának új lekérdezést kezdeményeznie, amikor már fut egy másik. Az alapértelmezés szerinti 10 másodperc elfogadható érték. strict locking A strict locking beállítással azt írhatjuk elő, hogy a Samba minden egyes hozzáféréskor vizsgálja a zárolásokat, és ne csak akkor, amikor egy ügyfél ezt kéri. A beállítás eredeti rendeltetése egy programhiba kiküszöbölése volt, amivel meg lehetett akadályozni, hogy a hibásan megírt DOS és Windows alkalmazások tönkretehessenek megosztott fájlokat. Ugyanakkor ez a beállítás lassítja a működést, és normál körülmények között kerülendő az alkalmazása. strict sync A strict sync beállítás azt írja elő, hogy amikor a

Samba felír egy csomagot a lemezre, várja meg a művelet befejeződését, ha az ügyfél bekapcsolta a csomagban a szinkronizáló bitet. A Windows 98 Intézője ezt a bitet minden egyes átküldött csomagban bekapcsolja, ezért ha a Sambában is bekapcsoljuk, akkor a Windows 98 ügyfelek azt hihetik, hogy iszonyúan lassúak a Samba kiszolgálók. sync always Ez a beállítás arra utasítja a Sambát, hogy minden írást azonnal rögzítsen a lemezen. A beállításnak jó hasznát vehetjük, ha gyakran összeomlik a rendszerünk, de a teljesítményt illetően nagy árat kell fizetnünk ezért. Az SMB kiszolgálók általában az opportunista zárolásokat és az automatikus újrakapcsolódást használják az ilyen összeomlások káros mellékhatásainak elkerülése érdekében, ezért normál esetben nincs szükség erre a beállításra. wide links A wide links beállítás kikapcsolásával elejét vehetjük annak, hogy a Samba az egyik lemezmegosztásban lévő

szimbolikus hivatkozásokat olyan fájlokig kövesse, amelyek nincsenek az adott megosztásban. A beállítás alapértelmezés szerint be van kapcsolva, mert a hivatkozások követése a Unixban nem jelent biztonsági kockázatot. A kikapcsolása többletműveleteket jelent minden egyes nyitott fájlon Ha kikapcsoljuk a wide links beállítást, akkor ne feledkezzünk meg a getwd cache beállítás bekapcsolásáról, hogy gyorsítsuk a szükséges adatok egy részét Van még egy follow symlinks beállítás is, amelynek kikapcsolásával az összes szimbolikus hivatkozás követését megakadályozhatjuk. Ennek azonban a teljesítményt illetően nincs jelentősége 332 | SAMBA getwd cache Ez a beállítás gyorsítja az aktuális könyvtár elérését, mert elkerüli a fájlszerkezetben való keresgélést. Jó lehetőség egy nyomtatókiszolgáló teljesítményének növelésére, vagy arra az esetre, ha kikapcsoltuk a wide links beállítást. A szerzők ajánlásai Az

alábbiakban egy olyan smb.conf fájl következik, amely az eddig felsorolt teljesítménynövelő beállításokat tartalmazza A jobb oldali oszlopban a megjegyzések olvashatók [global] log level = 1 # 0 az alapbeállítás socket options = TCP NODELAY IPTOS LOWDELAY read raw = yes # alapbeállítás write raw = yes # alapbeállítás oplocks = yes # alapbeállítás max xmit = 65535 # alapbeállítás dead time = 15 # 0 az alapbeállítás getwd cache = yes lpq cache = 30 [okplace] veto oplock files = this/that/theotherfile [badplace] oplocks = no Samba kiszolgálók méretezése A méretezés itt azt az eljárást jelenti, amelynek segítségével még azt megelőzően elkerülhetjük a szűk keresztmetszeteket, mielőtt előfordulnának. Kiindulásként azt kell tudnunk, hogy másodpercenként hány kérés érkezhet, és hány kilobájt átvitelére van szüksége az ügyfeleknek. Ezek ismeretében kell biztosítanunk azt, hogy a kiszolgáló mindegyik összetevője legalább

ekkora teljesítményre legyen képes A szűk kapacitások Szűk kapacitásként elsősorban a CPU, a lemez I/O műveletei és a hálózat jöhet számításba. A gépek többségén általában nem a CPU fogja vissza a teljesítményt. Egyetlen Sun SPARC 10 CPU másodpercenként 700–800 I/O műveletet tud indítani (és befejezni), ami 5600– 6400 KB/s sebességet jelent átlag 8 KB-os adatcsomagok mellett (ez a puffer szokásos mérete). Egyetlen Intel Pentium 133 MHz-es CPU-nak ennél kisebb ugyan a teljesítménye, de ennek nem a CPU kisebb ereje, hanem a lassúbb gyorsító és buszinterfészek az okai. A célnak megfelelően megtervezett Pentium alapú kiszolgálók, mint például a Compaq kiszolgálók CPU-nként 700 művelet indítására is képesek, és akár négy CPU-val is dolgozhatnak. B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 333 Ezzel szemben a kevés memória könnyen szűk kapacitást okozhat; a Samba minden egyes processze 600–800

KB-ot igényel egy Intel Linux gépen, és még ennél is többet RISC processzorokon. Ha szűkös a memória, akkor megnövekszik a virtuális memória területe, és a lapozás csökkenti a teljesítményt. Solaris rendszerben, ahol ez mérésre került, az smbd programonként és megosztott könyvtárakként 2,6 MB-ot, továbbá kapcsolódó ügyfelenként plusz 768 KB-ot igényelt. Az nmdb 2,1 MB-ot, plusz az (egyetlen) segédprocessze további 496 KB-ot foglalt el. A merevlemezek mindig is szűk keresztmetszetet jelentenek a másodpercenkénti I/O műveleteket illetően: egy 7200 fordulat/perc fordulatszámú SCSI lemez másodpercenként 70 műveletet tud végrehajtani, ami 560 KB/s teljesítménynek felel meg; egy 4800 fordulat/perc fordulatszámú lemez már csak 50 műveletre képes, ami 360 KB/s teljesítményt jelent. Egy IDE lemez még ennél is lassúbb Ha a lemezek függetlenek, vagy RAID 0 elrendezés szerint vannak összefűzve, akkor egyenként 400–560 KB/s

teljesítményre képesek, és ez a teljesítmény egyenes arányban nő a számuk növelésével. Ez azonban csak a RAID 0 elrendezésre (összefűzés) igaz – a RAID többi szintjén egyéb lemezadminisztráció növeli a terheket. Az Ethernet (és más hálózatok) szintén szűk kapacitást jelentenek: egy 10 Mb/s (megabit/sec) teljesítményű Ethernet hálózat nagyjából 1100 KB/s (kilobájt/sec) sebességgel képes kezelni 1500 bájtos csomagokat. Egy 100 Mb/s teljesítményű Fast Ethernet hálózatban 6500 KB/s sebesség érhető el ugyanilyen csomagméret mellett Az FDDI a maga 155 Mb/s teljesítményével megközelítőleg 6250 KB/s sebességet is lehetővé tesz, és jóval nagyobb csomagokat (4 KB) is kiválóan kezel. Az ATM még ennél is jobb, de a könyv írásának idején még olyan újdonságnak számított, amelynek nem volt előre látható a tudása; várhatóan 7,125 Mb/s teljesítményre lesz képes 9 KB-os csomagokkal számolva. Természetesen egyéb

módon is előállhatnak szűk kapacitások: nem jó, ha ugyanarra a lemezvezérlőre egynél több IDE lemez kapcsolódik, mint ahogy az sem jó, ha háromnál több 3600-as SCSI-I lemezmeghajtó van egy lassú/szűk vezérlőre kötve, vagy háromnál több 7200-as SCSI-II lemez kapcsolódik egy gyors/széles vezérlőre. A RAID 5 ugyancsak lassú, és kétszer annyi írást igényel, mind a független lemezek vagy a RAID 1. Ha már túljutottunk a második Ethernet készleten és a második lemezvezérlőn, akkor foglalkozzunk a buszok sávszélességével, főként ha ISA/EISA buszok vannak a rendszerünkben. A szűk keresztmetszetek csökkentése A fenti adatok ismeretében már elkészíthető egy modell, amely alapján megállapíthatjuk egy adott gép maximális képességét. Az adatok többsége Brian Wong ,,Configuration and Capacity Planning for Solaris Servers” című könyvéből származik, ezért a példáinkban használt Sun géphez képest némi eltérések

mutatkoznak. A bemutatásra kerülő modell nem tökéletes. Ne gondoljuk azt, hogy ez a modell az összes szűk keresztmetszetre rámutat, de még azt sem, hogy a becsélések akár a 10%-os hibahatáron belül maradnak. Részletesebb és pontosabb adatok csak ennél jóval bonyolultabb modellektől várhatók (Valós modellekről Raj Jain ,,The Art of Computer Systems Performance Analysis” című könyvében olvashatunk. A fentebb és az itt említett könyv adatait a 9. fejezet végén, a Szakkönyvek alcim alatt olvashatják) Ezek előrebocsátásával lássuk a rendszerünket (B.2 ábra) 334 | SAMBA B.2 ábra Adatáramlás egy Samba kiszolgálón a lehetséges szűk keresztmetszetekkel Olvasási műveletnél az adatok a merevlemezről elindulva áthaladnak a buszon, majd a CPU-n keresztül vagy azt megkerülve a hálózati kártyára jutnak. A kártya csomagokat készít belőlük, és elküldi a csomagokat a hálózatra. A példánkban végigkövetjük az adatok

áramlását, és megnézzük, hol ütköznek szűk keresztmetszetekbe. Elég könnyen összeállíthatunk olyan táblázatokat, amelyekbe felvesszük a szokásos merevelemezek, CPU-k és hálózati kártyák maximális teljesítményét. A következőkben ezt tesszük Vegyünk egy konkrét példát! A rendszer alapja egy Linux Pentium 133 MHz-es gép, egyetlen 7200 fordulat/perc fordulatszámú adatlemezzel, PCI busszal és egy 10 Mb/s teljesítményű Ethernet kártyával. Egy ilyen paraméterekkel rendelkező gép már kiválóan használható kiszolgálóként. Elsőként a B2 táblázatot töltöttük ki, amelybe a rendszerünk első számú potenciális szűk keresztmetszetének, a merevlemeznek az adatait vettük fel. B.2 táblázat A merevlemez teljesítménye Merevlemez fordulatszám/perc I/O műveletek/s KB/s 7200 4800 3600 70 60 40 560 480 320 A merevlemez teljesítményét a másodpercenként átvitt adatok kilobájtban mért mennyisége jelenti. Az értékét abból

számítottuk ki, hogy hány 8 KB-os I/O műveletet képes a lemez másodpercenként elvégezni, ami viszont erősen függ a lemez fordulatszámától és a bitsűrűségtől. A kérdés lényegében a következő: mennyi adat haladhat át az olvasófejek alatt egy másodperc alatt? A példabeli rendszerünkben az egyetlen, 7200 fordulatszámú merevlemezen másodpercenként 70 I/O műveletet mértünk, ami nagyjából 560 KB/s teljesítménynek felel meg. A következő lehetséges szűk keresztmetszet a CPU lehet. A mai gépeken az adatoknak már nem kell áthaladniuk a CPU-n, ezért itt némileg közvetett módon számítottuk az adatátbocsátást. B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 335 A CPU feladata az I/O kérések kiadása és az erre érkező megszakítások kezelése, majd az adatok továbbítása a buszon a hálózati kártyához. A korábbi tapasztalataink alapján tudjuk, hogy a fájlrendszer kódjából adódóan eltekinthetünk attól, hogy

más szoftverek is futnak a gépen. Az adatátbocsátást egyszerűen úgy számítottuk ki, hogy a CPU által másodpercenként elvégezhető fájl I/O műveletek (mért) számát megszoroztuk ugyanazzal a 8 KB-os átlagos adatmennyiséggel. Az eredményt felvettük a B3 táblázatba B.3 táblázat A CPU teljesítménye CPU I/O műveletek/s KB/s Intel Pentium 133 Dual Pentium 133 Sun SPARC II Sun SPARC 10 Sun Ultra 200 700 1200 660 750 2650 5600 9600 5280 6000 21 200 Ezt követően összevetettük a lemez és a CPU teljesítményét. A Linux rendszerben egyetlen, 7200-as fordulatszámú merevlemez van, aminek 560 KB/s a teljesítménye, ugyanakkor a benne lévő CPU-ra a másodpercenkénti 700 I/O műveletet kaptuk, aminek viszont 5600 KB/s teljesítmény felel meg. Amint várható volt, ebben az összehasonlításban a merevlemez bizonyult a szűk keresztmetszetnek. Utolsó lehetséges szűk keresztmetszetként a hálózatot vizsgáltuk. Ha ennek a sebessége 100 Mb/s alatt

van, akkor ez lesz a fő akadály. Emellett természetesen a hálózati kártya is lassíthatja a forgalmat. A B4 táblázatban néhány hálózat átlagos sebességét tüntettük fel A hálózati sebességeket ugyan bit/s mértékegységben szokás megadni, mi itt KB/s egységet használtunk, hogy egyszerűbb legyen az előző táblázatok adataival való összehasonlítás. B.4 táblázat Hálózati sebességek Hálózat típusa KB/s ISDN T1 Ethernet 10m Token ring FDDI Ethernet 100m ATM 155 16 197 1113 1500 6250 6500 7125* Az előző példánkban a szűk keresztmetszetet a lemez okozta a maga 560 KB/s teljesítményével. A B4 táblázat azt mutatja, hogy egy normál 10 megabit/s teljesítményű Ethernet hálózat (1113 KB/s) messze gyorsabb, mint a lemez, vagyis továbbra is az utóbbi a fő akadály * Ez az érték nagyobb lesz. Az olyan rendszerek, mint a Cray, a Sun Ultra, és a DEC/Compaq Alpha már ennél jobb eredményeket is elérnek. 336 | SAMBA A bemutatott

táblázatok alapján kijelenthető, hogy a kisebb kiszolgálóknak nem lesznek problémáik a CPU-val, és a nagyobb, többprocesszoros rendszerek is inkább a lemezöszszefűzést és a többszörös Ethernetet fogják támogatni, mielőtt még a CPU teljesítményével lennének gondjaik. Gyakorlati példák Wong a ,,Configuration and Capacity Planning for Solaris Servers” című könyvében egy példában kimutatta, hogy egy kétprocesszoros SPARCstation 20/712 négy Ethernet kártyával és hat 2,1 GB-os merevlemezzel az ideje nagy részét azzal tölti, hogy a lemezektől visszaküldendő adatokra vár. Ha több merevlemez lenne a rendszerben (Brian Wang egyenesen 34 darabot javasol), akkor az Ethernet kártyák szorítanák 1200 KB/s alá a sebességet. Ha szeretnénk teljes mértékben kiaknázni egy ilyen gép teljesítményét, akkor további Ethernet kártyákat kellene felvenni, és 100 Mbps Fast Ethernet vagy 155 Mbps FDDI hálózatot kellene alkalmazni. Az ilyen

következtetések levonásához a B.5 táblázat nyújt segítséget B.5 táblázat Középkategóriás kiszolgáló hangolása Számítógép Lemez CPU Hálózat Eredő teljesítménye teljesítménye teljesítménye teljesítmény Dual SPARC 10, 1 lemez További 5 lemez További 3 Ethernet kártya Váltás 20 lemezes tömbre 100 Mbps dual Ethernet 560 6000 1113 560 3360 3360 6000 16 000 1113 4452 1113 3360 11 200 6000 4452 4452 11 200 6000 13 000 11 200 Kezdetben az egyetlen, mindössze 560 KB/s teljesítményű lemez okozta a szűk kapacitást. Ezen úgy javítottunk, hogy öt további lemezt vettünk fel a rendszerbe Ekkor a lemezek teljesítménye már meghaladta az Ethernet hálózatét, vagyis az utóbbi vált akadállyá Ezért aztán e két összetevő többféle kombinációját is kipróbáltuk. A lemezek, CPU-k és hálózati kártyák számának növelésekor különböző helyekre tevődött át a szűk kapacitás. A lényeg az, hogy újabb

hardverelemek felvételével mindaddig próbálkozzunk a szűk kapacitások megszüntetésével, amíg nem érjük el a kívánt teljesítményt, vagy amíg (sajnos) fizikailag lehetséges, vagy el nem fogy a pénzünk. E könyv szerzőinek tapasztalatai is megerősítik a fenti számításokat; egyikük egy nagy SPARC 10 fájlkiszolgálót üzemeltetett, amely egy Ethernet plus hálózaton két processzorral megközelítőleg elérte egy FDDI ring hálózat teljesítményének egyharmadát. Majdnem ugyanezt az eredményt kapta egyetlen processzorral is, bár ehhez gyorsabb és erősen túlpörgetett operációs rendszert használt. B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 337 Ugyanezek a megfontolások vonatkoznak a célirányosan megtervezett kiszolgálókra is. A szerzők azt tapasztalták, hogy azonos szabályok érvényesülnek a DECstation 2100, a legújabb Alpha vagy Compaq, a régi MIPS 3350 és az új SGI O2 gépekre. Általánosságban az mondható,

hogy egy többprocesszoros kiszolgálónak elegendően nagy a busz-sávszélessége és CPU teljesítménye ahhoz, hogy a fájlszolgáltatás során a lemez I/O műveleteire szűkítse le a forgalmi akadályokat. Hány ügyfél kiszolgálására képes a Samba? Nos, ez teljes mértékben attól függ, hogy mennyi adatra van szüksége az egyes felhasználóknak. Egy kisebb, három SCSI-I merevlemezzel felszerelt kiszolgáló, amely 960 KB/s sebességgel tudja küldeni az adatokat, 36–80 olyan ügyfelet tud kiszolgálni, akik egy normál irodai környezetben nagyjából azonos méretű táblázatokat vagy szövegszerkesztőbeli dokumentumokat nyitnak meg és mentenek (36 ügyfél 2,3 átvitel/s 12 KB fájl = 1 MB/s). Ugyanez a kiszolgáló egy fejlesztőintézetben, ahol programozók futtatnak nagy adatigényű szerkesztési és fordítási teszteket, már egyetlen felhasználó is igényelheti az 1 MB/s teljesítményt, ezért az ügyfelek száma esetleg a 25-öt sem érheti el.

Még egy lépéssel továbbmenve: egy nyomdai levilágító rendszer, amelynek egyik ügyfele sem éri be 10 MB/s-nál kisebb teljesítménnyel, a kiszolgáló méretétől függetlenül gyengén fog működni, ha az ügyfelek egy 10 Mbps-os Ethernet hálózathoz kapcsolódnak. Ha nem tudjuk, hogy egy átlagos felhasználónak mennyi adatra van szüksége, akkor a létező NFS, Netware vagy LAN Manager kiszolgálók mintájára méretezzük a Samba kiszolgálót. Ügyeljünk arra, hogy az új kiszolgálóban annyi merevlemez és lemezvezérlő legyen, mint amennyi a mintául szolgáló kiszolgálóban is van. Ha tudjuk, hogy egy létező kiszolgáló hány ügyfelet tud kiszolgálni, akkor kedvezőbb a helyzetünk. Ekkor ugyanis elemezhetjük a kiszolgáló működését, megvizsgálhatjuk, hogy mekkora a maximális kapacitása, és megbecsülhetjük, mennyi adatot kell szolgáltatnia. Ha például egy két IDE lemezes PC kiszolgáló lassúnak bizonyul, ha 30 PC-s ügyfél home

könyvtárát kell szolgáltatnia, de 25 ügyfél esetén már elfogadható a teljesítménye, akkor abból indulhatunk ki, hogy a szűk kapacitást az Ethernet I/O műveletei (megközelítőleg 375 KB/s), és nem a lemez I/O műveletei (640 KB/s) jelentik. Amennyiben így van, akkor arra következtethetünk, hogy az ügyfelek átlagos igénye 15 KB/s (375/25 = 15). Egy 75 ügyfélből álló új hálózat elkészítéséhez 1125 KB/s teljesítményre van szükség, amelyet több (célszerűen három) Ethernet kártyára kell szétosztani, a kiszolgálót pedig legkevesebb három 7200 fordulat/perc fordulatszámú merevlemezzel és ennek megfelelő teljesítményű CPU-val kell felszerelni. Ezeknek a követelményeknek egy Pentium 133 MHz-es vagy ennél gyorsabb processzor már megfelel, ha a busz is támogatja ezt a sebességet (PCI). Egy egyedileg megtervezett PC kiszolgáló vagy a többprocesszoros üzemmódra is képes olyan munkaállomások, mint a DEC/Compaq Alpha, egy SGI vagy

ehhez hasonlók könnyebben méretezhetők, akárcsak egy Fast Ethernet hálózaton működő gép, kiegészítve egy elosztóval (hub), amelyen keresztül egyedi 10 MB/s-os Ethernet kártyákon keresztül lehet meghajtani az ügyfélgépeket. 338 | SAMBA Tippelési tanácsok Ha semmilyen elképzelésünk nincs arról, hogy mire van szükségünk, akkor a legjobb, ha mások tapasztalatai alapján tippelünk. Az egyes ügyfélgépek átlagos igénye másodpercenként egy I/O műveletnél kevesebb is lehet (kereskedelemben, könyvelésben használt normál PC vagy Mac gépek), de a négyet is meghaladhatja a számuk (nagy alkalmazásokat futtató gyors munkaállomások). Egy fordítóprogramot futtató gyors munkaállomás átlagosan 3-4 MB/s adatátviteli sebességre tart igényt, de a grafikus alkalmazásoknak még ennél is többre van szükségük. Mit javasolhatunk? Nézzünk meg valakinél egy hasonló konfigurációt, és próbáljuk meg felmérni a szűk kapacitásait.

Javasoljuk továbbá Brian Wong ,,Configuration and Capacity Planning for Solaris Servers” című könyvének tanulmányozását. Bár a könyv példái többnyire Sun Solaris rendszerre vonatkoznak, amelyben a merevlemezek és a hálózati kártyák jelentik a szűk kapacitást, a legtöbb nagyobb szoftvergyártóra is érvényesek a megállapításai. Az FTP kiszolgálókra vonatkozó táblázatok adatai is közel állnak azokhoz az adatokhoz, amelyeket jelen könyv szerzői a Samba kiszolgálókon számítottak, és megfelelő kiindulási pontot jelentenek a becslésekhez. Mérési űrlapok A B.6 és a B7 táblázat űrlapokat tartalmaz, amelybe feljegyezhetjük az adatainkat A szűk kapacitásoknak az előző példában bemutatott kiszámítását táblázatkezelő programban, vagy kézzel a B.8 táblázat szerint végezhetjük el Ha a Samba legalább olyan jó vagy jobb, mint az FTP kiszolgáló, és nem futtatunk a szokásostól nagyon eltérő teszteket, akkor megfelelően

van konfigurálva a rendszerünk. Ha a loopback nem sokkal gyorsabb, mint bármi más, akkor a TCP/IP szoftverben lehet valamilyen hiba. Ha mind az FTP, mind a Samba lassú, akkor a hálózattal lehet probléma: hibás lehet az Ethernet kártya, de az is előfordulhat, hogy a kártya véletlenül félduplex üzemmódba van állítva, amikor nem ilyen elosztóhoz kapcsolódik. Ne feledjük, hogy míg a CPU-k és a merevlemezek sebességét bájtokban szokás megadni, addig a hálózat sebességét bitekben számítják A táblázatokban a bájtok és a bitek számára is van egy-egy oszlop. Az utolsó oszlopban a kapott eredményt a hagyományos Ethernet 10 MB/s sebességével hasonlítjuk össze százalékban kifejezve. B.6 táblázat Ethernet interfész ugyanahhoz a gazdához: FTP Futtatás száma 1 2 3 4 5 Átlag: Eltérés: Méret bájtban Idő (sec) Bájt/s Bit/s 10 Mb/s %-ában B FÜGGELÉK. A SAMBA TELJESÍTMÉNYÉNEK FINOMHANGOLÁSA | 339 B.7 táblázat Ethernet

interfész ugyanahhoz a gazdához: FTP Futtatás száma Méret bájtban Idő (sec) Bájt/s Bit/s 10 Mb/s %-ában 1 2 3 4 5 Átlag: Eltérés: B.8 táblázat Szűk kapacitásokat számító táblázat CPU CPU teljesítménye Lemezek száma Lemez tel- Hálózatok jesítménye száma Hálózat tel- Valós teljesítménye jesítmény A B.8 táblázatban: • CPU teljesítménye = (KB/s a B.3 táblázatból) x (CPU-k száma); • lemez teljesítménye = (KB/s a B.2 táblázatból) x (lemezek száma); • hálózat teljesítménye = (KB/s a B.4táblázatból) x (hálózatok száma); • valós teljesítmény = min (lemez, CPU és hálózat teljesítménye). Egy tipikus tesztre, ebben az esetben az FTP get parancsára a B.9 táblázatban látható értékeket írtuk volna be: B.9 táblázat Ethernet interfész ugyanahhoz a gazdához: FTP Futtatás száma Méret bájtban Idő (sec) Bájt/s Bit/s 10 Mb/s %-ában 1 2 3 4 5 Átlag: Eltérés: 1812898 2,3 2,3 2,4 2,3 2,3 2,32

0,04 761580 767820 747420 760020 772700 777310 6218480 62 340 | SAMBA A korábbi példában használt Sparc gépre a B.10 táblázatban látható értékeket kapnánk: B.10 táblázat Sparc 20-as példa, Redux CPU CPU teljesítménye Lemezek száma Lemez tel- Hálózatok jesítménye száma Hálózat tel- Valós teljesítménye jesítmény 2 2 2 2 2 6000 6000 6000 6000 6000 1 6 6 20 20 560 3360 3360 11 200 11 200 1113 1113 4452 4452 13 000 1 10base2 1 4 10base2 4 2 100base2 560 1113 3360 4452 11 200 A Samba konfigurációs beállításainak gyors áttekintése A következő oldalakon a Samba beállítási lehetőségeit soroljuk fel. A ,,[global]” szó áll azon beállítások neve előtt, amelyek a konfigurációs fájlnak csak a [global] szakaszában fordulhatnak elő. A beállításokhoz tartozó listák listaelemeit minden olyan esetben, amikor külön nem említjük, szóközök választják el egymástól A beállítások felsorolását a felsorolásban

használt fogalmak magyarázata követi admin users = felhasználólista használható értékek: felhasználók listája alapbeállítás: NULL Azon felhasználók listáját adja meg, akiknek rendszergazdai jogosultságot adott a Samba egy megosztás eléréséhez. allow hosts = gazdanevek listája használható értékek: bármi alapbeállítás: NULL A hosts allow szinonimája. Felsorolja azokat a gépeket, amelyek kapcsolódhatnak egy megosztáshoz. alternate permissions = Boolean érték használható értékek: YES, NO alapbeállítás: NO Elavult, a Samba 2 verzióban nincs szerepe. Azok a fájlok, amelyekbe a tulajdonos nem írhat, csak olvashatókként jelennek meg. A Samba 19-es és korábbi verzióiban ez a beállítás a DOS fájlrendszer csak olvasható attribútumát minden olyan fájlra bekapcsolta, amelyeket a felhasználó nem olvashatott A beállítás használatához a delete readonly beállítást is fel kellett venni [global] announce as = rendszer

típusa használható értékek: NT, Win95, WfW alapbeállítás: NT A Samba más rendszerként is bejelentheti magát, mint NT kiszolgáló. Nem ajánlott, mert ütközhet a kiszolgáló tallózólistájával. 342 | SAMBA [global] announce version = szám.szám használható értékek: bármi alapbeállítás: 4.2 Arra utasítja a Sambát, hogy régebbi verziójú SMB kiszolgálóként jelentse be magát. Nem ajánlott a használata. [global] auto services = megosztáslista használható értékek: bármely megosztás alapbeállítás: NULL Felsorolja azokat a megosztásokat, amelyek mindig megjelennek a tallózólistákban. A preload szinonimája. available = Boolean érték használható értékek: YES, NO alapbeállítás: YES Ha NO az értéke, letiltja a megosztáshoz való hozzáférést. Nem befolyásolja a tallózást [global] bind interfaces only = Boolean érték használható értékek: YES, NO alapbeállítás: NO Ha YES az értéke, a megosztások és

a tallózólisták csak az interfészek listájában felsorolt interfészeken jelennek meg (lásd interfaces). A Samba 1918 egyik újdonsága Ha a beállításhoz a YES értéket rendeljük, akkor arról se feledkezzünk meg, hogy az interfészek listájába felvegyük a 127.001 címet Ezzel engedélyezhetjük ugyanis, hogy az smbpasswd program a jelszavak változtatása céljából kapcsolódhasson a helyi géphez. A beállítás csak kényelmi célokat szolgál, a biztonságot nem növeli. browsable = Boolean érték használható értékek: YES, NO alapbeállítás: YES Engedélyezi, hogy egy megosztás bejelentse magát a tallózólistákba. blocking locks = Boolean érték használható értékek: YES, NO alapbeállítás: YES Ha YES az értéke, elfogadja az időhatárokat tartalmazó bájttartományú zárolási kérelmeket a kérelmek várakozási sorba állításához, és az ismételt próbálkozásokhoz az adott időtartamon belül. A Samba 20 egyik újdonsága

[global] browse list = Boolean érték használható értékek: YES, NO alapbeállítás: YES Be-, illetve kikapcsolja az adott kiszolgálón a tallózólistát. Kerüljük a módosítását C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 343 [global] case sensitive = Boolean érték használható értékek: YES, NO alapbeállítás: NO Ha YES az értéke, a fájlnév feloldásához ugyanúgy használja a kis- és nagybetűket, ahogyan azokat az ügyfél megadta. Ha NO az értéke, elvégzi a név csupa kisbetűs és csupa nagybetűs egyeztetését. Kerüljük a módosítását [global] case sig names = Boolean érték használható értékek: YES, NO alapbeállítás: NO A case sensitive szinonimája. [global] change notify timeout = szám használható értékek: pozitív szám alapbeállítás: 60 Megadja a vizsgálatok közötti időtartam hosszát másodpercekben, amikor egy ügyfél értesítést vár egy könyvtárban történt

változásokról. A Samba 20-ban vezették be a vizsgálatokkal együtt járó teljesítményveszteség korlátozása érdekében Kerüljük az érték csökkentését character set = név használható értékek: ISO8859-1, ISO8859-2, ISO8859-5, KOI8-R alapbeállítás: NULL A DOS kódlapokat nyugat-európai (ISO8859-1), kelet-európai (ISO8859-2), orosz cirill (ISO8859-5) vagy alternatív cirill (KOI8-R) karakterkészletre fordítja le. Az ügyfélnél a 850es kódlapot kell használni client code page = név használható értékek: Lásd a 8.4 táblázatot alapbeállítás: 437 (US MS-DOS) Explicit módon beállítja a DOS kódlapot, felülbírálva bármilyen korábbi karakterkészlet beállítását. Példák az értékekre: Európa 850, USA 437, japán Shift-JIS 932 A Samba 1919 verziójában vezették be. coding system = kód használható értékek: euc, cap, hex, hexN, sjis, j8bb, j8bj, jis8, j8bh, j8@b, j8@j, j8@h, j7bb, j7bj, jis7, j7bh, j7@b, j7@j, j7@h, jubb, jubj,

junet, jubh, ju@b, ju@j, ju@h alapbeállítás: NULL Megadja a használandó kódrendszert, főként a Kanjihoz. A fájlnevekhez használható, és meg kell felelnie a használatban lévő kódlapnak. Az ügyfélnél a code page beállításhoz a 932-es értéket kell rendelni (japán Shift-JIS). A Samba 20 verzióban vezették be 344 | SAMBA comment = szöveg használható értékek: karakterlánc vagy NULL alapbeállítás: NULL Megadja azt a megjegyzést, amely a NET VIEW parancs kiadásakor a megosztás neve mellett megjelenik, vagy a Microsoft valamelyik részleteket megjelenítő könyvtárablakában látható. Lásd még a server string konfigurációs beállítást is [global] config file = elérési út használható értékek: Unix elérési út alapbeállítás: NULL Kijelöl egy másik Samba konfigurációs fájlt, amelyet az aktuális helyett kell beolvasni. Konfigurációs fájl áthelyezéséhez vagy a % változókkal adott felhasználók vagy gépek egyedi

konfigurációs fájljának kiválasztásához használható. copy = szakasznév használható értékek: létező szakasznév alapbeállítás: NULL Egy előzőleg már előfordult megosztás konfigurációját átmásolja abba a megosztásba, ahol a beállítás található. A % változókkal használva adott gépek, architektúrák és felhasználók egyedi konfigurációja választható ki Az átmásolandó szakasznak korábban már léteznie kell a konfigurációs fájlban. A másolt beállításoknak kisebb a prioritása, mint a szakaszban explicit módon megadott beállításoké. create mask = oktális érték használható értékek: oktális engedélyező bitek, 0-0777 alapbeállítás: 0744 A másik neve create mode. Meghatározza, hogy mik lehetnek az új fájlokhoz maximálisan megadható engedélyek (például 0755) Lásd még a directory mask beállítást is Bizonyos engedélyek megadásának kikényszerítéséhez lásd a force create mask/ force directory mask

beállításokat. Ezzel a beállítással megszűnt a Samba 1917 könyvtárainak befolyásolása, és a Samba 2.0 verzióban megváltozott a beállításhoz rendelt alapértelmezés szerinti érték create mode = oktális érték használható értékek: oktális engedélyező bitek, 0-0777 A create mask szinonimája. alapbeállítás: 0744 C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 345 [global] deadtime = percek használható értékek: percek alapbeállítás: 0 Percekben megadott időtartam, amelynek eltelte után bezárul a nem használt kapcsolat. A 0 a kapcsolat örökös fennállását jelenti. Ha felvesszük ezt a beállítást, akkor az ügyfeleknek az itt megadott inaktív idő eltelte után automatikusan újra kell kapcsolódniuk Lásd még a keepalive beállítást is. [global] debug level = szám használható értékek: szám alapbeállítás: 0 Megadja a használandó naplózási szintet. A 3-as vagy az e fölötti szintek

lényegesen lassítják a Samba futását A log level szinonimája Ajánlott érték: 1 [global] debug timestamp = Boolean érték használható értékek: YES, NO alapbeállítás: YES Időbélyeget helyez el minden naplóbejegyzéshez. Kikapcsolható, ha fölösleges (például hibakeresésnél). A Samba 20 új beállítása [global] default = név használható értékek: megosztásnév alapbeállítás: NULL Másik neve default service. A Samba az itt megadott nevű szolgáltatást (megosztást) kínálja fel azoknak, akik olyan megosztáshoz akarnak hozzáférni, amelyhez nincs engedélyük, vagy amely megosztás nem létezik. A Samba 1914 verziójában az elérési utat az ügyfél által megadott név határozta meg, amelyben az aláhúzás karakterek ( ) törtvonal karakterekre (/) változtak, lehetővé téve a Samba kiszolgáló bármelyik könyvtárának elérését. Semmiképpen sem javasolt a használata default case = kis- vagy nagybetűs használható értékek:

LOWER, UPPER alapbeállítás: LOWER Megadja, hogy kis- vagy nagybetűs formában kell-e tárolni az új fájlneveket. A LOWER érték megadásával megmaradnak a kis- és a nagybetűk, az UPPER érték megadásával csupa nagybetűkkel tárolódnak a nevek. [global] default service = megosztásnév használható értékek: megosztásnév A default szinonimája. alapbeállítás: NULL 346 | SAMBA delete readonly = Boolean érték használható értékek: NO, YES alapbeállítás: NO Lehetővé teszi a csak olvasható fájlokra vonatkozó törlési kérelmeket. Ez DOS és Windows rendszerben nem engedélyezett, de Unix rendszerben normál kérés, mert ez a rendszer más könyvtárengedélyeket használ. Az RCS-hez programokkal vagy a régebbi alternate permissions beállítással együtt használható. delete veto files = Boolean érték használható értékek: NO, YES alapbeállítás: NO Engedélyezi a törlési kérelmeket olyan könyvtárakra, amelyek a veto files

beállítás miatt a felhasználó számára nem látható fájlokat vagy alkönyvtárakat tartalmaznak. Ha a beállításhoz a NO érték tartozik, a könyvtár nem törlődik, és továbbra is tartalmazni fogja a láthatatlan fájlokat. deny hosts = gazdagépek listája használható értékek: gazdagépek listája alapbeállítás: NULL A hosts deny szinonimája. Felsorolja azokat a gépeket, amelyek számára tiltva vannak a kapcsolódások vagy a megosztások elérése. [global] dfree command = parancs használható értékek: shell parancs alapbeállítás: különböző Az a parancs, amely a kiszolgálón futva visszaadja a szabad lemezterület méretét. Csak abban az esetben van szüksége erre, ha az operációs rendszer parancsa nem működik helyesen. directory = elérési út használható értékek: elérési út alapbeállítás: NULL A path szinonimája. Fájlmegosztásban megadott könyvtár, vagy egy nyomtatómegosztás által használt könyvtár. A [homes]

megosztásban automatikusan beállítódik a felhasználó home könyvtárára, ellenkező esetben /tmp az alapbeállítása. directory mask = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0755 Másik neve directory mode. Meghatározza, hogy mik lehetnek az új könyvtárakhoz maximálisan megadható engedélyek. Bizonyos engedélyek megadásának kikényszerítéséhez lásd a force create mask/force directory mask beállításokat C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 347 directory mode = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0755 A directory mask szinonimája. [global] dns proxy = Boolean érték használható értékek: YES, NO alapbeállítás: YES Ha YES az értéke, és a wins server = YES beállítást is használjuk, akkor a DNS-ben keresi a gazdanéveket, ha a WINS-ben nem találja.

[global] domain logons = Boolean érték használható értékek: YES, NO alapbeállítás: NO Engedélyezi, hogy Windows 95/98 és NT ügyfelek bejelentkezhessenek NT-szerű tartományokba. [global] domain master = Boolean érték használható értékek: YES, NO alapbeállítás: NO Amennyiben lehetséges, a gép tartomány-főtallózóvá válik a teljes munkacsoportban vagy tartományban. dont descend = vesszőkkel elválasztott lista használható értékek: elérési utak vesszőkkel elválasztott listája alapbeállítás: NULL Nem engedélyezi a megadott könyvtárakban az alkönyvtárak közötti váltást vagy a keresést. Csak a tallózási módot befolyásolja, a biztonsággal nincs kapcsolatban dos filetimes = Boolean érték használható értékek: YES, NO alapbeállítás: NO Azoknak is engedélyezi a fájlidők módosítását, akik nem tulajdonosai a fájlnak, ha van hozzá írási joguk. Lásd még a dos filetime resolution beállítást is dos filetime

resolution = Boolean érték használható értékek: YES, NO alapbeállítás: NO Úgy állítja be Unix rendszerben az időt, hogy illeszkedjen a DOS szabványához (felkerekítés a legközelebbi páros másodpercre). Visual C++ és PC-s make programok használata esetén ajánlott, hogy el lehessen kerülni a fájlok fölösleges újbóli lefordítását. A dos filetimes beállítással együtt használjuk. 348 | SAMBA [global] encrypt passwords = Boolean érték használható értékek: YES, NO alapbeállítás: NO A jelszavak Windows NT-ben használatos titkosítását állítja be. A Samba kiszolgálón léteznie kell egy smbpasswd fájlnak exec = parancs használható értékek: shell parancs alapbeállítás: NULL A preexec szinonimája. A megadott parancs közvetlenül azt megelőzően fut le, hogy a felhasználó kapcsolódott egy megosztáshoz. fake directory create times = Boolean érték használható értékek: YES, NO alapbeállítás: NO Hibajavító

beállítás, amelyet a Microsoft nmake programjának futtatói használhatnak. Ha be van kapcsolva, a Samba úgy állítja be egy könyvtár létrehozásának idejét, hogy az nmake ne készítse el minden alkalommal újra a fájlokat. fake oplocks = Boolean érték használható értékek: YES, NO alapbeállítás: NO A YES értéke adja vissza minden olyan alkalommal, amikor az ügyfél megkérdezi, hogy zárolhat-e és gyorsíthat-e helyben egy fájlt anélkül, hogy kikényszerítené a fájlnak a kiszolgálón való zárolását. Csak a nem írható lemezekre használjuk, mert a Sambában már a real oplocks beállítás is használható, és a zárolás fájlonként is felülbírálható. Lásd még az oplocks és a veto oplock files beállításokat is. follow symlinks = Boolean érték használható értékek: YES, NO alapbeállítás: YES Ha YES az értéke, a Samba követi a szimbolikus hivatkozásokat egy megosztott fájlban vagy megosztásban. Lásd a wide links

beállítást, ha csak az adott megosztásra akarjuk korlátozni a hivatkozások követését. force create mask = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0 A megadott bitek és az újonnan létrehozott fájlok engedélyező bitjei között OR műveletet hajt végre. A create mode beállítással együtt használjuk C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 349 force create mode = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0 A force create mask szinonimája. force directory mask = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0 A megadott bitek és az újonnan létrehozott könyvtárak engedélyező bitjei között OR műveletet hajt végre, így kényszerítve ki, hogy ezeknek a biteknek 1-es legyen az értékük. A directory mode

beállítással együtt használjuk. force directory mode = oktális engedélyező bitek használható értékek: oktális érték 0 és 0777 között alapbeállítás: 0 A force directory mask szinonimája. force group = Unix csoport használható értékek: csoport alapbeállítás: NULL A megosztáshoz hozzáférő összes felhasználóhoz hozzárendelt csoportnevet adja meg. A felhasználó normál csoportjainak felülbírálására használható. force user = név használható értékek: felhasználónév alapbeállítás: NULL A megosztáshoz hozzáférő összes felhasználóhoz hozzárendelt felhasználónevet adja meg. Nem ajánlott a használata fstype = karakterlánc használható értékek: NTFS, FAT, Samba alapbeállítás: NTFS Az ügyfélnek jelentett fájlrendszert állítja be. [global] getwd cache = Boolean érték használható értékek: YES, NO alapbeállítás: NO Gyorsítja az aktuális könyvtárt a teljesítmény javítása céljából.

Ajánlott a használata a wide links beállítással együtt. 350 | SAMBA group = csoport használható értékek: Unix csoport alapbeállítás: NULL A force group beállítás elavult alakja. guest account = felhasználó használható értékek: felhasználónév alapbeállítás: NULL Nevet rendel egy privilegizálatlan Unix fiókhoz, hogy végrehajthatók legyenek olyan feladatok, mint a nyomtatás, vagy hozzá lehessen férni a guest ok beállítással jelölt megosztásokhoz. guest ok = Boolean érték használható értékek: YES, NO alapbeállítás: NO Ha YES az értéke, nincs szükség jelszó megadására az ilyen megosztás eléréséhez. A public szinonimája guest only = Boolean érték használható értékek: YES, NO alapbeállítás: NO Kikényszeríti, hogy egy megosztás használója úgy viselkedjen, mint a vendégfiók tulajdonosa. Fel kell venni hozzá a guest ok vagy a public = yes beállítást hide dot files = Boolean érték használható

értékek: YES, NO alapbeállítás: YES Egy megosztásban a ponttal kezdődő fájlokat úgy tekinti, mintha be lenne kapcsolva a DOS/Windows rejtett attribútumuk. hide files = törtjelekkel elválasztott lista használható értékek: minták listája / jellel elválasztva alapbeállítás: NULL Azon fájl- vagy könyvtárnevek listája, amelyekre be kell kapcsolni a DOS rejtett attribútumát. A nevek ? vagy * helyettesítő karaktereket és % változókat is tartalmazhatnak. Lásd még a hide dot files és a veto files beállításokat. [global] homedir map = NIS leképezés neve használható értékek: NIS leképezés neve alapbeállítás: auto.home A nis homedir beállítással együtt kikereshető egy felhasználó unixos home könyvtára a Sun NIS névszolgáltatásából (NIS+ szolgáltatásra nem igaz). C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 351 hosts allow = gazdagépek listája használható értékek: gazdagépek

listája alapbeállítás: NULL Az allow hosts szinonimája. Felsorolja a megosztáshoz hozzáférhető gépeket Ha NULL az értéke, mindazok a gépek hozzáférhetnek a megosztáshoz, amelyek nincsenek felsorolva a hosts deny beállításban. hosts deny = gazdagépek listája használható értékek: gazdagépek listája alapbeállítás: NULL A deny hosts szinonimája. Felsorolja azokat a gépeket, amelyek nem kapcsolódhatnak egy megosztáshoz vagy megosztásokhoz. [global] hosts equiv = elérési út használható értékek: elérési út alapbeállítás: NULL A megadott elérési úton lévő fájl azokat a megbízható gépeket sorolja fel, amelyekről jelszó nélkül lehet bejelentkezni. Szigorúan ellenjavallt a használata, mert a Windows/NT felhasználók bármikor felülírhatják a felhasználónevet, ami az egyedüli biztonságot jelenti ebben az elrendezésben. include = elérési út használható értékek: elérési út alapbeállítás: NULL Felveszi a

megnevezett fájlt az smb.conf fájlba a beállítás előfordulási helyén A beállításban nem használható az %u (felhasználó), a %P (aktuális megosztás rootkönyvtára) és az %S (aktuális megosztás neve) változó, mert a fájl beolvasási idején még nem kaptak értéket. inherit permissions = Boolean érték használható értékek: YES, NO alapbeállítás: NO Ha be van kapcsolva, akkor a fájlok és az alkönyvtárak a szülő könyvtáraikkal azonos engedélyekkel jönnek létre. Lehetővé teszi, hogy a Unix könyvtárengedélyek automatikusan átadódjanak az új fájloknak és alkönyvtáraknak, különösen a [homes] megosztásban Ez a beállítása a create mask, directory mask, force create mode és force directory mode beállításokat felülbírálja, a map archive, map hidden és map system beállításokat viszont nem. A Samba sohasem kapcsolja be a setuid bitet, amikor létrehoz egy fájlt vagy könyvtárt. A beállítás a 207 verziótól kezdve

használható 352 | SAMBA [global] interfaces = interfészlista használható értékek: szóközökkel elválasztott IP címek alapbeállítás: NULL Megadja azokat az interfészeket, amelyekre a Samba válaszol. Az alapbeállítás a gép elsődleges interfésze A beállítás többlaki gépekhez, illetve a hibás címek vagy hálózati maszkok felülbírálásához ajánlott. invalid users = felhasználólista használható értékek: felhasználók listája alapbeállítás: NULL Felsorolja azokat a felhasználókat, akik számára nem engedélyezett a megosztás vagy a megosztások elérése. [global] keepalive = szám használható értékek: másodpercek száma alapbeállítás: 0 Lefagyott ügyfél vizsgálatai között eltelt időtartam másodpercekben. A 0 alapértelmezés szerinti érték azt jelenti, hogy nincs vizsgálat. Akkor ajánlott a használata, ha négy órás időközöknél gyakrabban akarunk vizsgálatokat végezni. Ésszerű érték a 3600

másodperc (10 perc). Lásd még a socket options beállítást a vizsgálat más megközelítéséhez [global] kernel oplocks = Boolean érték használható értékek: YES, NO alapbeállítás: automatikus Megszakítja az opportunista zárolást, amikor egy Unix processz ilyen módon zárolt fájlhoz akar hozzáférni, hogy elejét vegye a fájl meghibásodásának. Az ilyen zárolásokat támogató operációs rendszereken a YES értéket, ellenkező esetben a NO értéket rendeljük a beállításhoz. Újdonság a Samba 20 verzióban Támogatja az SGI, és remélhetőleg a Linux és a BSD is hamarosan támogatni fogja. Kerüljük a módosítását [global] ldap filter = különböző használható értékek: különböző alapbeállítás: különböző Az ldap rövidítéssel kezdődő beállítások a felhasználók, nevek és gazdaadatok általános címtárának/elosztott adatbázisának (LDAP) kísérleti része. A beállítás a jövőbeli fejlesztésekhez van

fenntartva [global] ldap port = különböző használható értékek: különböző alapbeállítás: különböző Az ldap rövidítéssel kezdődő beállítások a felhasználók, nevek és gazdaadatok általános címtárának/elosztott adatbázisának (LDAP) kísérleti része. A beállítás a jövőbeli fejlesztésekhez van fenntartva C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 353 [global] ldap root = különböző használható értékek: különböző alapbeállítás: különböző Az ldap rövidítéssel kezdődő beállítások a felhasználók, nevek és gazdaadatok általános címtárának/elosztott adatbázisának (LDAP) kísérleti része. A beállítás a jövőbeli fejlesztésekhez van fenntartva [global] ldap server = különböző használható értékek: különböző alapbeállítás: különböző Az ldap rövidítéssel kezdődő beállítások a felhasználók, nevek és gazdaadatok általános

címtárának/elosztott adatbázisának (LDAP) kísérleti része. A beállítás a jövőbeli fejlesztésekhez van fenntartva [global] ldap suffix = különböző használható értékek: különböző alapbeállítás: különböző Az ldap rövidítéssel kezdődő beállítások a felhasználók, nevek és gazdaadatok általános címtárának/elosztott adatbázisának (LDAP) kísérleti része. A beállítás a jövőbeli fejlesztésekhez van fenntartva [global] load printers = Boolean érték használható értékek: YES, NO alapbeállítás: YES Betölti a rendszer nyomtató-konfigurációs fájljából a nyomtatóneveket a tallózólistába. A [printers] szakasz konfigurációs beállításait használja. [global] local master = Boolean érték használható értékek: YES, NO alapbeállítás: YES Helyi főtallózóként jelöli a gépet a választási versenyben. Lásd még a domain master és az os level beállításokat. [global] lm announce = érték

használható értékek: AUTO, YES, NO alapbeállítás: AUTO OS/2 SMB üzeneteket küld (broadcast) az lm interval beállításban megadott időközönként. A YES és a NO érték feltétel nélkül be-, illetve kikapcsolja Az AUTO érték megadásakor a Samba kiszolgáló másik ügyfél LAN Manager bejelentkezésére vár, mielőtt kiküldené az üzenetet OS/2 ügyfelek tallózásához szükséges 354 | SAMBA [global] lm interval = másodpercek használható értékek: szám alapbeállítás: 60 Megadja másodpercekben az OS/2 SMB broadcast bejelentkezések közötti időközt. [global] lock directory = elérési út használható értékek: elérési út alapbeállítás: /usr/local/samba/var/locks Megadja a zárolt fájlokat tartalmazó könyvtárt. A könyvtárnak a Samba számára írhatónak, bárki más számára olvashatónak kell lennie. locking = Boolean érték használható értékek: YES, NO alapbeállítás: YES Zárolja a fájlt. Ha NO az értéke, a

Samba elfogadja a zárolási kérelmet, de ténylegesen nem zárolja az erőforrásokat. Kizárólag a csak olvasható fájlrendszerekben ajánlott a használata [global] log file = elérési út használható értékek: elérési út alapbeállítás: különböző Megadja a naplófájl nevét és helyét. Az összes %-os változó használható [global] log level = szám használható értékek: szám alapbeállítás: 0 A debug level szinonimája; a használandó naplózási szintet állítja be. A 3-as vagy az ennél nagyobb értékek jelentősen lassítják a rendszert. [global] logon drive = meghajtó használható értékek: DOS lemezmeghajtó neve alapbeállítás: nincs Windows NT rendszerben (csak itt) megadja a logon path beállításhoz a lemezmeghajtót. [global] logon home = elérési út használható értékek: Unix elérési út alapbeállítás: \%N \%U Megadja egy Windows 95/98 vagy Windows NT Workstation felhasználó home könyvtárát. Lehetővé teszi

a NET USE H:/HOME beírását a parancssorba C FÜGGELÉK. A SAMBA KONFIGURÁCIÓS BEÁLLÍTÁSAINAK GYORS ÁTTEKINTÉSE | 355 [global] logon path = elérési út használható értékek: Windows elérési út alapbeállítás: \%N \%U profile Megadja a Windows profilkönyvtárának elérési útját. A profil a USERMAN és/vagy a USER.DAT profilfájlokat, a Windows 95 Asztalát, Start menüjét, hálózat könyvtárát és programmappáit tartalmazza [global] logon script = elérési út használható értékek: elérési út alapbeállítás: NULL Megadja annak a DOS/NT szkriptnek a – [netlogin] megosztáshoz relatív – elérési útját, amelynek az ügyfél bejelentkezésekor le kell futnia. Az összes %-os változó használható lppause command = /abszolút elérési út/parancs használható értékek: Unix shell parancs a teljes elérési úttal alapbeállítás: különböző Megadja a nyomtatási feladatot szüneteltető parancsot. Elfogadja a %p (nyomtató

neve) és a %j (feladat száma) változókat. lpresume command = /abszolút elérési út/parancs használható