Protože správci sítí mnohdy potřebovali vytvořit sdílené adresáře na serverech, které byly z unixového světa (Linux), odposloucháváním komunikace stanic s operačním systémem Windows vytvořili specifikaci protokolu pro komunikaci operačních systémů Windows. Pak již zbyl jen krůček k tomu, aby byla vytvořena aplikace, která bude tento protokol podporovat.
Ano, jak již z někteří z vás tuší, jedná se o známý program Samba, který slouží k vytvoření sdílených adresářů (ve stylu Windows) pod Linuxem. My si nyní ukážeme, jak vytvořit ten nejzákladnější souborový server. Tedy server kde bude jeden veřejný adresář (přístup k němu bude mít povolen kdokoliv), a neomezené množství privátních adresářů našich uživatelů (kam si budou moci odkládat například své soukromé dokumenty).
Pro konfiguraci souborového serveru je třeba mít nějaké základní znalosti, bez kterých se nedá obejít. Nám vystačí ty, které byste potřebovali i při správě serveru s operačním systémem Windows. Zejména tedy musíte znát:
Po tom, co si opatříme nějaký dostačující počítač (doporučuji 256MB či více RAM), se dostáváme k instalaci Linuxu. Já jsem se pokoušel nainstalovat distribuci Suse Linux 7.2 (distribuce Suse je známá tím, že je velmi propracovaná), ale vy můžete klidně zkusit Redhat (lze koupit za cca 200 Kč nebo stáhnout z internetu) nebo třeba Mandrake (distribuce určená zejména pro začátečníky).
Tip: Linux rozlišuje velká a malá písmenka. Proto vše opisujte přesně jak to zde píši, pokud si nebudete vědět rady, pište raději malými písmenySamotná instalace Linuxu je vlastně hračka. I když se budete držet přesně příručky dané k vaší distribuci, dejte si pozor na následující věci:
Tuto ikonku si velmi dobře zapamatujte. Vždy když se budeme bavit o terminálu, budeme tím myslet (až na vyjímky) aplikaci reprezentovanou touto ikonkou. Případně se jako terminál bere černá obrazovka s bílím textem, kterou vás přivítají některé distribuce.
K čemu to slouží?
Terminál je vůbec jeden z nejstarších způsobů jak ovládat počítač. I přesto se kvůli svým nesporným výhodám používá dodnes. Terminály původně vznikly z toho důvodu, že kdysi velké sálové počítače dokázali obsluhovat velké množství uživatelů, a tak efektivně využívat potenciální výkon celého počítače. Dnes mají terminály zpravidla jiný účel, slouží totiž zejména pro vzdálený přístup z jednoho počítače k jinému počítači. V tom mimochodem tkví velká výhoda linuxu, protože celý server lze z jiného počítače kompletně ovládat (nemusíte se tedy u něj fyzicky nalézat). Pokud jste ovšem přímo u počítače, dá se tzv. terminál nazývat i příkazovou řádkou známou zejména z DOSu či Windows.
Proč?
Určitě některé z vás zaujalo, že uživatele musíte do systému přidat dvakrát, jednou z kapitálky a jednou bez. Je to z toho důvodu, že Windows převádí jména právě dvěma způsoby, buďto vše převede na velká písmena nebo na malá. To Linux, který velká písmena rozlišuje samozřejmě nedělá, a proto zde musíme uživatele přidat dvěma způsoby.
startx
.
Nyní by váš systém měl být v pořádku nainstalován. Nejdříve si ovšem ověříme, že vše pracuje jak má. Zezačátku je důležité si spustit konzoli, a pokusit se PINGnout okolní počítače. Zkuste například zadat (pokud máte připojení místní sítě na internet) příkaz ping www.seznam.cz
. Nebo můžete zkusit pingnout nějakou stanici pomocí IP adresy, například ping 192.168.1.100
. Alespoň v jednom případě by se vám měla vrátit od stanice odezva. Pokud se tak nestalo, Linux jste pravděpodobně nainstalovali špatně. Pokud se odezva vrátila, pingování ukončíte stiskem kláves CTRL-C
.
Na obrázku vidíte okno terminálu, ve kterém je jasný důkaz toho, že "síť" funguje
Dalším důležitým krokem, je zjištění, jestli je samba nainstalována. Pokud jste se drželi dřívějších kroků, nebude v tom žádný problém. Takže na konzoli zkuste zadat příkaz /etc/init.d/smb
. PV případě, že se vám vrátí odpověď "No such file or directory", je něco špatně. Zkuste to tedy na druhý pokus a zadejte /etc/init.d/rc.d/smb
, zde už by se vám mělo vypsat něco ve stylu "Usage:...". Pokud jste takovou odpověď stále nedostali, musíte si nainstalovat sambu ručně z webových stránek http://www.samba.org nebo z CD disku vaší distribuce (k tomu byste se ideálně vlastně dostat ani neměli, protože Sambu jste měli vybrat již při instalaci distribuce). Důležité ovšem je, že si musíte zapamatovat, v kterém adresáři je samba umístěna. Pokud vám fungoval příkaz /etc/init.d/smb
, používejte jej nadále, ovšem pokud vám šlo pouze /etc/init.d/rc.d/smb
nenechte se dále zmást, a používejte tento příkaz místo toho minulého (o kterém se budeme dále bavit).
K čemu to slouží?
Příkaz ping je jedním z kontrolních mechanismů internetu. Slouží k tomu, abyste mohli zjistit, jestli je vzdálený počítač schopen komunikovat s tím vaším. Celé to funguje velmi jednoduše, vzdálenému počítači se zašle několik požadavků (paketů), na které vzdálený stroj automaticky odpovídá. Tím můžete jednoduše zjistit, zda-li je síťové připojení mezi dvěma počítači (servery, routery či jinými síťovými zařízeními) plně funkční.
Ze všeho nejdříve si ukážeme, jak zjistit jestli Samba funguje. Zkuste na terminál zadat toto /etc/init.d/smb status
. Pokud se vám objeví running, vše je v pořádku. V opačném případě zadejte /etc/init.d/smb start
. Nyní by již měla Samba fungovat.
Zelený nápis running nám napovídá, že vše běží jak má.
K čemu to slouží?
Program SMB slouží ke spuštění démonů (ve Windows nazývaných jako "residentní aplikace") nmbd a smbd. Příkaz SMB vše znatelně usnadňuje, protože například pro ukončené démonů (vlastně běžící Samby) musíte obvykle v Linuxu znát číslo procesu, a ten ukončit například pomocí aplikace kill. Ovládací program SMB ovšem vše udělá za vás, pokud mu zadáte například parametr restart, dva démony potřebné pro běh Samby nejdříve vyhledá v paměti, poté ukončí a nakonec znovu spustí. Vlastně vám jako začátečníkům znatelně ušetří práci a problémy s prohledáváním běžících procesů.
Konfigurace Samby je naštěstí velmi jednoduchá a dalo by se říci, že i logická. Ze všeho nejdříve ovšem musíme spustit nějaký textový editor. V grafickém prostředí KDE je jeden takový s příhodným názvem editor. Po spuštěni editoru si musíme otevřít soubor /etc/smb.conf
. V tomto souboru je několik sekcí, nejdůležitější je sekce Global. Ta by měla vypadat takto:
[global]
;nastavení češtiny
client code page = 852
character set = ISO8859-2
;doba udržování spojení
keep-alive=30
;Přijímá zakódovaná (HASH) hesla
encrypt passwords=yes
;Nastaví, že u hesel se nebudou rozlišovat velká a malá písmena
password level=20
;pracovní skupina, běžně Workgroup, u českých Windows 2000 a XP běžně Skupina
workgroup=Skupina
;mohou se používat i prázdná hesla
null passwords = yes
Jediné, co byste si měli správně nastavit je pracovní skupina, s ostatními položkami není třeba jakkoliv hýbat.
Nyní se dostáváme k nejjednodušímu úkolu, tedy vytvoření adresáře, který bude přístupný pro všechny, všichni do něj budou moci zapisovat i z něj číst. Takový adresář vytvoříme velmi snadno. Například ve složce /home
si vytvoříme složku public. To lze provést v grafickém rozhraní stejně jako například ve Windows, nebo na konzoli zadáním příkazu mkdir /home/public
. Poté ještě tomuto adresáři nastavíme potřebná přístupová práva (všechny uživatelské skupiny budou moci v adresáři číst/zapisovat). To provedem v konzoli příkazem chmod -R 0777 /home/public
.
Vytvoření adresáře v Linuxu je stejně snadné jako například ve Windows, postačí pravé tlačítko myši a ...
Nyní ještě musíme Sambě "vysvětlit", že adresář je sdílený. To provedeme doplněním následujícího kódu do souboru /etc/smb.conf
[public]
comment = Verejne
path = /home/public
read only = no
public = yes
Jak to funguje?
V linuxu se konfigurace programů obvykle neukládá do registrů, ale do jednotné složky /etc/. V této složce se nalézá mnoho konfiguračních souborů, které se dají jednoduše editovat pomocí primitivních textových souborů. Důležité ovšem je, zapamatovat si, že Samba je v Linuxu pouze aplikace, tedy nasdílení adresáře není možné přímo v nastavování jeho práv, jako je to například ve Windows. Zjednodušeně řečeno, pokud si přejeme nasdílet nějakou složku, nestačí nám aby k ní uživatel měl pouze dostatečná systémová oprávnění, oprávnění musí být zakódována i v konfiguračním souboru aplikace Samba.
Důležitá je také konfigurace Windows. Ta nemusí být nějak složitá. Pokud již máte na síti DHCP sever, běžně není potřeba nic nastavovat. Pokud tomu tak není, musíte stanici přiřadit nějakou IP adresu ručně, ovšem za předpokladu, že IP adresu bude mít každý počítač jinou. Zkuste tedy přidělovat adresy takto: PC1 - 192.168.1.100, PC2 - 192.168.1.101 ... Masku podsítě nastavte u každého počítače na adresu 255.255.255.0.
Konfigurace IP adresy počítače je ve Windows otázkou minuty. Není to vlastně složité ani pro naprostého začátečníka.
K čemu to slouží?
IP adresa je velmi podobná například číslu vašeho domu. Pokud totiž chcete někomu říci, kde bydlíte, nejsnazší cesta k tomu, je nadiktováním celé adresy. Podobné je to i u počítačů, tam je ovšem adresa vyjádřena čtyřmi bajty. Důležité je pochopit, že přidělování čísel se musí řídit jistými pravidly. Proto existují dvě možnosti přidělování, buďto je jako ve skutečném životě přidělí nějaký úřad (v našem případě DHCP server) a nebo si je zvolíte sami (to v případě, že místo není pod kontrolou úřadu, například čísla dvěří v baráku si mohou libovolně zvolit nájemníci). Samozřejmě, že i když si volíte čísla sami, musíte se držet určitých pravidel, vám ovšem postačí to, že každý počítač musí mít jiné číslo a na výběr máte tento rozsah 192.168.1.1-192.168.1.1.254 (jeden z mnoha možných povolených, ale nejčastěji používaných rozsahů).
Nyní by už mělo být možné, abysme se k počítači s Linuxem připojili. Usedneme tedy ke stanici s Windows a přihlásíme se (do Windows) jako uživatel nobody (hlavně se nepřihlašujte jako uživatel, kterému jste na stanici s Linuxem vytvořili účet!). Nyní vyhledáme počítač s linuxem (jeho jméno jste si zvolili při instalaci, ale kdybyste ho zapomněli, tak se píše jako výzva příkazového řádku, u mě je to tedy linux - před napsáním příkazu se mi napíše "linux: #", někde se také může objevit například "[root@linux]" či podobně). Pokud jste počítač nalezli Samba funguje. Nyní si zkuste otevřít složku Public. Je-li vše v pořádku, nakonfigurovali jste vše správně. Chce-li po vás Samba heslo, zkuste se ve Windows přihlásit jako smyšlený uživatel (pod nějakým neexistujícím jménem). Pak by vše mělo fungovat. Proč to tak je si vysvětlíme za chvilku.
Nikdo vlastně ani nemusí tušit, že jeho soubory jsou umístěny na Linuxovém serveru, ostatně dokážete to poznat?
tip:
Pro restart Linuxu stačí do konzole (pokud jste přihlášeni jako uživatel root
napsat pouze reboot
. Pro vypnutí počítače zadejte shutdown -h "now"
.
Už dlouho je oblíbený způsob ukládání dat přímo na server, který je pravidelně zálohován. Například ve Windows se dá zajistit, aby všechna nastavení a dokumenty byly uloženy na jiném počítači. To je výhodné, protože u každého počítače budete mít své nastavení a dokumenty a budete se tedy cítit "jako doma". U Samby je ovšem toto největší problém. Je to z toho důvodu, že Windows posílají hesla v šifrované podobě (dá se sice zajistit, aby Windows posílala hesla jako čistý text, ale to je velký bezpečnostní problém).
Takže se k tomu dostaneme. Aby měl uživatel na Linuxovém serveru privátní složku, musí zde mít vytvořen účet. To byste již měli provést při instalaci, ale pokud jste tak neprovedli, nic se neděje. Uživatelský účet lze vytvořit i dodatečně, například pro uživatele tucnak to udelame takto:
useradd tucnak
adduser tucnak
passwd tucnak
useradd TUCNAK
adduser TUCNAK
passwd TUCNAK
Povšimněte si, že používám dvakrát obdobné příkazy, useradd a adduser. Není to z toho důvodu, že bych byl puntičkář, ale proto, že v různých distribucích se aplikace pro přidávání uživatelů různě jmenují. Pokud tedy nevíte jak na to, zadejte raději oba dva příkazy, jeden jistě bude fungovat :-). Dále program passwd nastaví heslo pro uživatele tucnak. To sem musíte vložit dvakrát.
Můžete si povšimnout zajímavé skutečnosti, ře při standardním přidání uživatele do systému mu není přiděleno heslo. To lze zvolit teprve posléze pomocí aplikace passwd nebo okamžitě při přidávání uživatele, přidáním speciálního parametru.
Takže to bysme měli základní uživatelský účet. Uživateli tucnak se tedy budou všechna data ukládat do složky /home/tucnak. Teď musíme heslo vložit ještě do Samby (je to z toho důvodu, že Windows používá jiný způsob kódování hesel než Linux. To je velmi obdobné a jednoduché, stačí pouze zadat:
smbpasswd -a tucnak
smbpasswd -a TUCNAK
Tímto příkazem přidáme uživatele tučňák do Samby a nastavíme jeho heslo (samozřejmě na to samé, jaké má jako uživatel Linuxu). Nyní je tedy jeho sdílená složka pouze pro něj. Jako poslední dokončení může být občas potřeba editovat soubor /etc/smb.conf
. V tomto souboru by měla (a většinou také je) být sekce [homes], která vypadá například takto:
[homes]
comment = Domaci slozky
browseable = no
read only = no
create mode = 0750
K čemu to slouží?
Sdílení souborů v Linuxu je například se systémem Windows 2000 velmi podobné. K tomu, aby mohl někdo ke sdíleným složkám přistupovat musí mít nejdříve potřebná oprávnění. Musí být tedy registrovaným uživatelem a k dané složce musí mít nastavená přístupová práva. Jak si zde můžete povšimnout, každý uživatel systému má automaticky zpřístupněnou jednu osobní složku pro svá nastavení a dokumenty. Jediný rozdíl oproti Windows 2000 je tedy v tom, že heslo do systému musíme zadávat dvakrát. To je z toho důvodu, že Linux hesla kóduje jiným systémem jak Windows.
Pokud se vám Samba automaticky nespouští při startu počítače, zkuste do souboru /etc/rc.d
přidat řádek /etc/init.d/smb
. Pak by nám měla Samba startovat automaticky. Ve Suse Linuxu je třeba editovat soubor /etc/rc.config
. Zde vyhledejte(CTRL+F) řetězec START_SMB a změňte mu hodnotu na yes.
Suse Linux používá pro nastavení aplikací, které se mají aktivovat při startu zcela jiný systém než je běžný. Autoři to obhajují tím, že dodnes používaný systém je "přý" příliš zastaralý, jaký je váš názor?
Vím, že všichni už dlouho čekáte, kdy se konečně rozkryje kompletní konfigurační soubor. Tak tady ho máte, jen nezapomeňte, že funkční bude pouze tehdy, když vytvoříte požadované účty a adresář /home/public.
[global]
;nastavení češtiny
client code page = 852
character set = ISO8859-2
;doba udržování spojení
keep-alive=30
;Přijímá zakódovaná (HASH) hesla
encrypt passwords=yes
;Nastaví, že u hesel se nebudou rozlišovat velká a malá písmena
password level=20
;pracovní skupina, běžně Workgroup, u českých Windows 2000 a XP běžně Skupina
workgroup=Skupina
;mohou se používat i prázdná hesla
null passwords = yes
[public]
comment = Verejne
path = /home/public
read only = no
public = yes
[homes]
comment = Domaci slozky
browseable = no
read only = no
create mode = 0750
mc
. V linuxu totiž jako správce souborů slouží Midnight Commander.
Zkopírování příkladného souboru z našeho CD
Pro zkopíróvání souboru z CD napište do konzole tyto řádky:
cd /
mount -t iso9660 /dev/cdrom /mnt
cp /mnt/software/vyzkuste/samba/smb.conf /etc/smb.conf
umount /dev/cdrom
Posledním krokem je restart počítače. Do konzole jednoduše napište reboot
. Po restartu by měla Samba naběhnout automaticky a Linux by měl (pokud jste to při instalaci určili) naběhnout do textového režimu (to je důležité, protože grafický systém je v Linuxu docela nestabilní a zabírá příliš mnoho systémové paměti, navíc úplně zbytečně). Tak to také nechte. Restart ostatně není nutný, my ho ovšem provedeme, abychom jednoduše uvolnili systémové prostředky.
Nikdo není tak dokonalý, aby mu stačili linuxové manuálové stránky, proto i já jsem čerpal z různých tutoriálů a stránek, které mě se Sambou postupně zaučovali. Samozřejmě nezapomenu a uvedu je, zejména proto, že na těchto stránkách naleznete více informací, než na jaké mi zbylo v tomto článku místo. Můžete se tedy naučit se Sambou pracovat lépe, vždyť toho ostatně umožňuje mnohem více, jako sdílení tiskáren či zasílání přihlašovacích skriptů na stanice apod.
man jmenoprogramu
.