Nevýhodou prvních dvou uvedených protokolů je nutnost používat klientský software, který není integrován přímo na úrovni VFS - což je případ prvních dvou, ačkoli existují projekty, které se snaží tyto souborové systémy zpřístupnit na této úrovni pomocí jaderných modulů. O dalších dvou drtivá většina uživatelů nikdy neslyšela a přes jejich zajímavé vlastnosti je jejich instalace poměrně složitá. V unixovém světě existuje léty prověřený, odzkoušený a hojně používaný systém NFS (více o něm v článku Daniela Závodského, pozn. red.). Ovšem ne všechny počítače mají unixový operační systém a v heterogenní síti je tak administrátor postaven před problém, jak soubory na unixovém serveru zpřístupnit uživatelům na pracovních stanicích s Windows. Jedním z řešení je nainstalovat NFS klienta, který ale nemusí všechny vlastnosti NFS podporovat. Řešením je tedy použít Sambu.
VFS nebo-li virtuální souborový systém umožňuje připojovat různé zdroje informací jako soubory nebo adresáře v hlavním souborovém systému. V Linuxu je příkladem VFS např. adresář /proc.
Balík programů Samba umožňuje rychlé a snadné propojení Linuxu a dalších unixových operačních systémů s MS Windows. Umožňuje využít všech výhod unixového serveru, a přesto ponechat na uživatelských stanicích Windows. Nezanedbatelná je také možnost využít Sambu pro propojení několika linuxových počítačů navzájem, ačkoliv se domnívám, že v tomto směru je NFS stále ještě nezastupitelné.
Latinskoamerická kráska
Samba je projekt, který se od roku 1992 snaží propojit unixové počítače s počítači, na nichž běží Windows. Jméno je odvozeno od zkratky SMB neboli Server Message Block. Zde by bylo vhodné zmínit, že původní nápad vzešel od firmy IBM a Microsoft jej upravil a integroval do Windows a svého tehdejšího produktu LAN Manager. Začátek Samby byl dosti dobrodružný - Andrew Tridgell, autor Samby, se snažil dekódovat protokol pro výměnu souborů DEC Pathworks a později zjistil, že je téměř identický s protokolem LAN Manager.
SMB protokol původně vyžadoval vrstvu NetBIOS, které ovšem již nadále není nutná a je používán přímo protokol TCP/IP.
Nyní, po čtrnácti letech existence, je Samba vyspělý produkt, který umožňuje sdílení souborů, tiskáren a autentizaci uživatelů. Správce sítě tak může využít výhod unixové správy uživatelů, a přitom nemusí běžné uživatele nutit do Linuxu.
Jak ji získat?
Samba je obsažena ve všech používaných distribucích, stačí tedy nainstalovat balík tak, jak je ve vaší distribuci obvyklé. Pokud Sambu z nějakého důvodu nemůžete nebo nechcete instalovat z balíku, můžete jej nainstalovat ze zdrojového kódu podle návodu v dokumentaci. Nezapomeneme nainstalovat i balík SWAT, který by mohl být zabalen zvlášť. Další možností, jak nakonfigurovat Sambu, je pomocí balíku Webmin, který má tu výhodu, že není specificky orientován jen na Sambu, ale z jednoho prostředí je možné nastavovat celý systém.
Získejte srdce dámy
Ke konfiguraci můžete použít více způsobů, např. je možné celou konfiguraci napsat v textovém editoru do souboru smb.conf, dále existují konfigurační nástroje jako SWAT (jemuž se budeme věnovat jako prvnímu) nebo Webmin (druhá část textu) přístupné pomocí internetového prohlížeče. Domnívám se, že konfigurace přímo v smb.conf má opodstatnění jen v případě velmi jednoduché konfigurace a doporučuji využít grafický nástroj, který umožňuje přímou spolupráci s nápovědou, kterou budeme (aspoň ze začátku) hojně využívat.
Základní konfigurace
Do prohlížeče zadáme adresu http://localhost:901 a pokud jsou všechny potřebné balíky nainstalovány, zobrazí se výzva k zadání jména a hesla (uživatele root) a poté hlavní konfigurační obrazovka.
Nejprve vyplníme informace v sekci Globals. Většina položek má jasný význam jako obdobná nastavení v OS Windows. Do položky unix charset je nutné zadat kódování, které používá právě konfigurovaný počítač, jinak by diakritika v názvech souborů byla zkomolená. Realm je nutné vyplnit, pokud chceme použít autentifikaci Kerberos. Díky poli netbios aliases můžeme jednomu počítači přiřadit několik jmen. Interfaces umožňuje omezit přístup pouze pro vybrané síťové karty.
Zabezpečení
- Pole security musíme vybrat podle účelu serveru. Hodnoty vybereme podle následujícího klíče:
- SHARE - Tento režim vybereme, pokud na serveru budou sdílené prostředky přístupně všem.
- USER - Každý uživatel se musí přihlásit jménem a heslem.
- SERVER - Samba server přeposílá žádost o autentifikaci jinému serveru, ať již Sambě, nebo Windows.
- DOMAIN - Podobné jako server, ale jméno dalšího serveru posílá hlavnímu serveru v doméně.
- ADS - Podobné režimu DOMAIN, ale využívající autentikaci Kerberos.
- Pro normální server doporučuji režim SHARE, který nám dovolí definovat sdílené prostředky přístupně všem. Pokud však od všech uživatelů budeme vyžadovat přihlášení jménem a heslem, doporučuji režim USER.
Dále zde můžeme vyplnit seznamy uživatelů, kterým bude přístup povolen nebo naopak zakázán, nebo těch, kteří budou mít administrátorská práva. Současně můžeme definovat seznam uživatelů s právem zápisu a čtení. Můžeme nastavit jména nebo adresy počítačů, kterým chceme povolit nebo zakázat připojení. Pokud je server hlavním doménovým serverem, pak je třeba nastavit domain master na Yes.
Sdílení souborů
Přes ikonu Shares se dostaneme na stránku, na které můžeme vybrat již existující sdílené adresáře pro modifikaci a smazání, případně přidání nových. Pokud přidáme nový adresář, zobrazí se nám stránka na obrázku.
Každý sdílený adresář můžeme okomentovat a musíme k němu napsat absolutní cestu. Můžeme k němu nastavit i přístupová práva, stejně jako v hlavní sekci Globals. Každý adresář je možné nastavit jen pro čtení a pomocí parametru guest ok můžeme povolit přístup k adresáři bez hesla (pozor - pokud je nastaven globální přístup USER, přístup k adresáři bude stejně vyžadovat heslo). Parametr browseable určuje, zda bude adresář viditelný v seznamu sdílených prostředků a parametr available nastavený na No způsobí, že připojení k adresáři vyvolá chybu a zaloguje ji.
Tiskový server
Parametry tiskáren jsou téměř totožné jako parametry adresářů. Je zde parametr printer admin, což je uživatel, který může mazat a upravovat všechny tiskové úlohy ve frontě. Zajímavé je, že každá tiskárna může mít svého vlastního správce. Printable musí být nastaveno na Yes, aby bylo možné na tiskárně tisknout.
Správa serveru
V záložce Status můžeme startovat a vypínat jednotlivé služby a monitorovat aktivní připojení, adresáře a soubory. Jako zajímavý hodnotím fakt, že je možné ukončovat aktivní připojení, nicméně doporučil bych tuto možnost využívat co nejméně.
Správa uživatelů
Ikona Password nás zavede ke správě uživatelů.
Horní část formuláře (Server Password Management) nám umožňuje přidávat, upravovat, mazat a povolovat jednotlivé uživatele, kteří mají přístup ke sdíleným složkám, zatímco druhý formulář umožňuje totéž, ale na libovolném jiném Samba serveru, jehož jméno je zadáno v poli Remote Machine. To je výhodné, pokud máme více serverů, a správu chceme provádět z jednoho místa. V případě rozsáhlejší sítě doporučuji prozkoumat propojení s LDAP serverem, který může sloužit pro více druhů služeb než jen pro Sambu.
LDAP je zkratka z Lightweigth Directory Access Protocol. Tento protokol umí zpracovávat libovolná hierarchická data a je nejčastěji používán pro hierarchickou správu uživatelů.
Export domovských adresářů
Pokud chceme exportovat (sdílet) domovské adresáře uživatelů, bylo by příliš komplikované, namáhavé a málo flexibilní přidávat adresáře ručně. Nejjednodušší je vytvořit jeden jediný sdílený adresář, pojmenovaný např. home, jehož parametr PATH je nastaven na /home/%u nebo přímo %H. %u je zástupný symbol, který je nahrazen jménem uživatele a %H cestou k jeho domovskému adresáři. Výhodou je, že pak každý jednotlivý uživatel nevidí, a ani nemůže vidět, domovské adresáře ostatních uživatelů.
Zástupných symbolů je několik a je možné je používat všude, kde je očekáván řetězec, např. v řetězcích pro log nebo komentářích (myšleno pole comment, nikoliv komentáře na úrovni konfiguračního souboru).
Zástupné symboly - Samba
- %u - jméno uživatele aktuálního sdíleného prostředku (adresáře nebo tiskárny);
- %g - hlavní skupina uživatele;
- %m - jméno klientského počítače (jméno NetBIOS);
- %M - jméno klientského počítače (internetové jméno);
- %I - IP adresa klientského počítače;
- %d - číslo serverového procesu;
- %S - jméno aktuálního sdíleného prostředku;
- %H - domovský adresář uživatele.
Webmin
Webmin je velmi známý a široce používaný program pro vzdálenou správu systému pomocí internetového prohlížeče. Pokud máme Webmin nainstalovaný, můžeme se k němu připojit přes adresu http://localhost:10000 .
V nabídce Servery nalezneme ikonu Samba Windows File Sharing. Následující strana je dle mého názoru lépe členěna a uživatel se v ní snáze zorientuje. Naneštěstí i přesto, že Webmin podporuje češtinu jako jeden ze svých jazyků, modul pro nastavení Samby počeštěn není.
Odkaz Unix Networking nám umožní nastavit důvěryhodné počítače, rozhraní a také jemně vyladit parametry TCP/IP protokolu. V sekci Windows Networking můžeme nastavit parametry, které se mají zobrazit klientům - jako je pracovní skupina a jméno počítače.
Authentication umožňuje vyladit přidávání uživatelů na úrovni skriptů. Zde bych raději nic neměnil a důvěřoval bych vývojářům.
Sekce Windows to Unix Printing nastavuje, jaké lokální tiskárny budou na naší LAN viditelné. Miscellaneous podporuje další parametry, které ale pravděpodobně nebudeme chtít měnit. Winbind Options umožňuje nastavit podporu pro přihlašování pomocí tohoto protokolu. Položky File Share Defaults a Printer Share Defaults obsahují standardní definice, které se poté využijí u jednotlivých sdílených prostředků.
Dále je možné editovat přímo konfigurační soubor a nebo spustit SWAT. V části Samba Users je mimo obvyklého přidávání uživatelů a skupin také volba, kterou SWAT nemá - konverze unixových hesel na windowsová a také automatická synchronizace linuxových a Samba skupin a uživatelů, což mimo jiné znamená, že informace o uživatelích jsou spravovány na jednom místě.
Stejně jako program SWAT i Webmin umí přidávat, modifikovat a mazat sdílené složky a tiskárny, včetně zobrazení aktivních připojení.
Závěrem bych k WebMinu dodal, že jeho ovládání a pojmenování ovládacích prvků je v mnoha ohledech lepší než u programu SWAT. Pokud by se podařilo tento program celkově přeložit, konfigurace nejen Samby a Linuxu by byly mnohem snazší.
Klientské programy
Ne vždy však chceme adresáře a tiskárny sdílet, někdy je třeba se k již sdíleným prostředkům připojit. Jedním ze základních programů je smbclient. Je to řádkový klient, který se ovládá stejným způsobem jako klasický FTP klient. Příklad použití:
uzivatel@localhost:~$ smbclient \\\\Pocitace\\Adresar get soubor1.txt put soubor2.txt exit
Další možností je připojit sdílený adresář stejným způsobem jako např. CD-ROM, např. takto:
uzivatel@localhost:~$ mount -t smbfs \\\\Pocitace\\Adresar /mnt -o username=jmeno,password=heslo
Grafická prostředí obvykle mají další nástroje pro připojování sdílených adresářů a tiskáren (např. GOsa nebo Smb4K). V mnoha distribucích je možné sdílený adresář připojit přímo z grafického prostředí, např. v Nautilu.