[[obsah|Hlavní stránka]] ===== Sdílení adresářů pomocí serveru Samba ===== {{:navody:48x48:places:gnome-fs-smb.png }} //OS// typu //Windows// používají protokol //Microsoft SMB// (**S**erver **M**essage **B**lock) známý také pod jménem //CIFS// (**C**ommon **I**nternet **F**ile **S**ystem). Tento protokol umožňuje sdílení souborů, adresářů, tiskáren apod. //Linux// tento protokol implementuje ve formě balíku //Samba//. //Samba// je vydána pod //GNU General Public// licencí. Systém umožňuje integraci //OS// typu //Windows// do linuxových sítí. Na straně //Windows// přitom není zapotřebí instalovat žádný speciální software. **Poznámka:** Problematikou sdílení souborů a adresářů mezi počítači s operačním systémem //Fedora// se zabývá kapitola [[sit#Přípojování sdílených adresářů]]. Velice podrobnou knihu o //Sambě// v anglickém jazyce naleznete na [[http://eee.uwaterloo.ca/UsingSamba/index.html]]. ==== Instalace serveru Samba ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[instalace_aplikaci#Přidání repozitáře]]. Server //Samba// lze nainstalovat přes terminál yum -y install samba yum -y install samba-client yum -y install system-config-samba === swat === Pomocí příkazu yum -y install samba-swat je možné také doinstalovat rozhraní //swat//((//swat// v tomto případě není akronymem pro //**S**pecial **W**eapons **A**nd **T**actics// ale //**S**amba **W**eb **A**dministration **T**ool//.)) pro konfiguraci aplikace //Samba//. Toto rozhraní se ovládá z webového prohlížeče. Před použitím tohoto rozhraní je nutné nahradit řádek disable = yes v souboru ''/etc/xinetd.d/swat'' řádkem disable = no Dále je zapotřebí restartovat démona ''xinetd''((Restart provedete pomocí příkazu ''/etc/rc.d/init.d/xinetd restart''.)), který je zodpovědný za spouštění utility //swat//. //swat// lze pak spustit tak, že do adresové řádky prohlížeče zadáte ''http://localhost:901'' popř. ''http://127.0.0.1:901''. Na výzvu zadejte jméno uživatele ''root'' a heslo superuživatele. Součástí webového rozhraní je také off-line dokumentace k aplikaci //Samba//. ==== Konfigurace pomocí grafického rozhraní ==== **Poznámka:** Jestliže je třeba přidat uživatele, přečtěte si kapitolu [[uzivatele#Přidání, editace a mazání uživatelů a skupin]]. Server //Samba// lze nastavit pomocí grafického rozhraní //Systém -> Správa -> Samba// {{ navody:f8samba_nastaveni.png | Nastavení Samby pomocí grafického rozhraní }} popř. pomocí grafického rozhraní //swat//. {{ navody:f8samba_swat.png | Nastavení Samby pomocí Swat }} Takto je možné nastavit sdílený adresář a přiřadit mu uživatele, kteří k němu mohou přistupovat. ==== Konfigurace pomocí příkazové řádky ==== Následující text se zabývá základním nastavením //Samby// pomocí příkazové řádky. Podrobnosti týkající se nastavení //Samby// naleznete na stránkách [[http://eee.uwaterloo.ca/UsingSamba/index.html]] popř. [[http://samba.org/samba/docs/man/Samba-HOWTO-Collection/]]. === Kontrola protokolu TCP/IP === Aby bylo možné sdílet adresáře mezi //Windows// a //Linux//em je třeba, aby byl na počítači s //Windows// správně nastaven protokol //TCP/IP//. Na straně //Fedory// by problémy s podporou tohoto protokolu nastat neměly.\\ Funkčnost protokolu //TCP/IP// lze velice snadno ověřit z //Linux//u pomocí ping -c 10 ip_adresa **Poznámka:** //IP// adresu počítače s nainstalovanými //Windows XP// lze zjistit následujícím způsobem. Klikněte na //Start -> Ovládací panely -> Síťová připojení//. V okně //Síťová připojení// pak dvakrát klikněte na ikonu, která znázorňuje Vaše síťové připojení. Přejděte na záložku //Podpora// a opište číslo uvedené za položkou //Adresa IP//((Mělo by se jednat o číslo typu 192.168.2.125.)). Další možností, jak získat //IP// adresu, je v příkazovém řádku //Windows// zadat ''ipconfig''.\\ Výstup příkazu ''ping -c 10 ip_adresa'' by měl vypadat přibližně následovně PING 192.168.2.125 (192.168.2.125) 56(84) bytes of data. 64 bytes from 192.168.2.125: icmp_seq=1 ttl=64 time=0.068 ms 64 bytes from 192.168.2.125: icmp_seq=2 ttl=64 time=0.071 ms 64 bytes from 192.168.2.125: icmp_seq=3 ttl=64 time=0.072 ms 64 bytes from 192.168.2.125: icmp_seq=4 ttl=64 time=0.072 ms 64 bytes from 192.168.2.125: icmp_seq=5 ttl=64 time=0.072 ms 64 bytes from 192.168.2.125: icmp_seq=6 ttl=64 time=0.070 ms 64 bytes from 192.168.2.125: icmp_seq=7 ttl=64 time=0.073 ms 64 bytes from 192.168.2.125: icmp_seq=8 ttl=64 time=0.093 ms 64 bytes from 192.168.2.125: icmp_seq=9 ttl=64 time=0.072 ms 64 bytes from 192.168.2.125: icmp_seq=10 ttl=64 time=0.072 ms --- 192.168.2.125 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 0.068/0.073/0.093/0.010 ms Jestliže tento "test" dopadl úspěšně, můžete pokračovat. V opačném případě budete muset nastavit síťové protokoly na počítači s //Windows//. === Nastavení uživatelských účtů === * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[sdileni_adresaru#Instalace serveru Samba]] Nezbytný předpokladem fungování //Samby// je správné nastavení uživatelských účtů ve //Fedoře//, //Windows// a //Sambě//. == Samba == Noví uživatelé //Samby// jsou mapováni na již existující systémové uživatele //Fedory//. Tato vazba je definována v souboru ''/etc/samba/smbusers''. gedit /etc/samba/smbusers Do souboru ''smbusers'' přidejte následující řádek systemovy_uzivatel = samba_uzivatel1 [ samba_uzivatel2 ... ] a soubor uložte. Tento zápis slouží k výše zmiňovanému mapování mezi systémovými uživateli a uživateli //Samby//. Defaulně je v souboru ''smbusers'' uvedeno # Unix_name = SMB_name1 SMB_name2 ... root = administrator admin nobody = guest pcguest smbguest Superuživatel je tak např. pro účely //Samba// serveru namapován na uživatele ''administrator'' a ''admin''. Obecně se doporučuje používat pro účely //Samby// jména uživatelů odpovídající systémovým uživatelům. Dále je třeba nově vytvořenému uživately //Samby// nastavit heslo. Heslo konkrétního uživatele je možné nastavit popř. editovat pomocí smbpasswd -a samba_uzivatel1 Smazat uživatele lze pak pomocí smbpasswd -x samba_uzivatel1 a následným smazáním příslušného řádku v souboru ''/etc/samba/smbusers''. == Windows == Na počítači s //Windows// vytvořte účet, jehož uživatelské jméno a heslo se shoduje s linuxovým účtem vybraného uživatele. Cílem tedy je, aby pod //Linux//em a //Windows// existovali dva "stejní" uživatelé - v opačném případě nebude níže popsaný postup fungovat.\\ Nového uživatele pod //Windows XP// vytvoříte tak, že přes nabídku //Start -> Nastavení -> Ovládací panely// vyvoláte okno //Ovládací panely//, kde klinete na ikonu //Uživatelské účty//. V okně //Uživatelské účty// pokračujte odkazem //Vytvořit nový účet// a postupujte dle instrukcí průvodce. === Nastavení firewallu === * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[sit#otevreni_uzavreni_portu|Otevření / uzavření portů]]. Nezbytnou podmínkou pro fungování //Samby// je její povolení na firewallu. Port 901, přes který //Samba// komunikuje, je v případě //Fedory// standardně uzavřen. Povolit komunikaci přes tento port můžete pomocí nabídky //Systém -> Správa -> Firewall//. === Připojení sdílených adresářů počítače s OS typu Windows === * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[sdileni_adresaru#Instalace serveru Samba]]. * Přečtěte si kapitolu [[sdileni_adresaru#Kontrola protokolu TCP/IP]]. * Přečtěte si kapitolu [[sdileni_adresaru#Nastavení uživatelských účtů]]. * Přečtěte si kapitolu [[sdileni_adresaru#Nastavení firewallu]]. == Sdílený adresář == Po té, co jste zkontrolovali funkčnost protokolu //TCP/IP//, provedli nezbytná nastavení uživatelských účtů a otevřeli port 901 na firewallu, je možné přistoupit k vytvoření sdíleného adresáře. Ve //Windows XP// sdílený adresář vytvoříte z normálního adresáře tak, že po dvoukliku na ikonu adresáře vybere z nabídky položku //Vlastnosti// a v ní záložku //Sdílení//, kde provedete potřebná nastavení.\\ Dalším krokem je vytvoření adresáře na počítači s //Linux//em, kam připojíte obsah sdíleného adresáře. mkdir /media/smb chmod 777 /media/smb == Připojení / odpojení sdíleného adresáře == Předpokládejme, že počítač s //Windows//, na kterém je uložen sdílený adresář, má //IP// adresu 192.168.2.125 a cesta k tomuto adresáři je ''C:/Linux''. Dále předpokládejme, že na linuxovém stroji je přípojným bodem adresář ''/media/smb''. Samotné připojení adresáře pak provedete pomocí mount -t cifs //192.168.2.125/Linux /media/smb odpojení pak pomocí umount -t cifs /media/smb **Poznámka:** Příkazy ''mount'' a ''umount'' může standardně používat pouze superuživatel. == Modifikace fstab pro automatické připojení sdílených adresářů == * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[hardware#Znovupřipojení všech zařízení z /etc/fstab]]. Předpokládejme, že sdílení adresářů bylo nastaveno podle výše uvedeného návodu. Pomocí textového editoru vytvořte soubor ''.smbcredentials'' gedit /root/.smbcredentials do kterého následně vložíte řádky username=samba_uzivatel1 password=heslo Nově vytvořený soubor uložte. Dále nastavte k tomuto souboru přístupová práva. chmod 700 /root/.smbcredentials Proveďte zazálohování souboru ''fstab'' cp /etc/fstab /etc/fstab_backup a tento soubor otevřete v textovém editoru. gedit /etc/fstab Na konec tohoto souboru vložte řádek //192.168.2.126/cesta_k_sdilenemu adresari /media/smb cifs credentials=/root/.smbcredentials 0 0 a zeditovaný soubor uložte. **Poznámka:** Po té, co vložíte do souboru ''fstab'' výše uvedený řádek, je třeba ještě vložit prázdný řádek klávesou //ENTER//. Jestliže soubor ''fstab'' nebude končit prázdnou řádkou, bude systém při jeho načítání v průběhu bootování hlásit chybu. === Připojení sdílených souborů počítače s Fedorou === * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[sdileni_adresaru#Instalace serveru Samba]]. * Přečtěte si kapitolu [[sdileni_adresaru#Kontrola protokolu TCP/IP]]. * Přečtěte si kapitolu [[sdileni_adresaru#Nastavení uživatelských účtů]]. * Přečtěte si kapitolu [[sit#Zjistění IP adresy počítače s Fedorou]]. * Přečtěte si kapitolu [[sdileni_adresaru#Nastavení firewallu]]. V předchozím odstavci jsme připojovali sdílený adresář uložený na počítači s //OS Windows//. Nyní zkusíme opačný postup - budeme připojovat sdílený adresář uložený na počítači s //Fedorou//.\\ == Konfigurační soubor Samby == Nejprve je třeba zkontrolovat funkčnost protokolu //TCP/IP// na počítači s //OS Windows//, provést nezbytná nastavení uživatelských účtů a otevřít port 901 na firewallu. Dalším krokem je pak úprava konfiguračního souboru aplikace //Samba//. Správnost jeho syntaxe a místo uložení lze zjistit pomocí příkazu testparm Výstup tohoto příkazu pak vypadá přibližně následovně Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Global parameter printcap name found in service section! Processing section "[data]" Loaded services file OK. WARNING: passdb expand explicit = yes is deprecated Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions Z výpisu je patrné, že konfigurační soubor ''smb.conf'' se nachází v adresáři ''/etc/samba''. Před samotnou modifikací proveďte zálohu původního konfiguračního souboru. cp /etc/samba/smb.conf /etc/samba/smb.conf.bak Následně otevřete konfigurační soubor v textovém editoru gedit /etc/samba/smb.conf a obsah souboru zaměňte za((Jedná se o naprosto základní nastavení. Aplikace //Samba// pochopitelně dovoluje nastavení mnohem většího počtu parametrů. To však přesahuje možnosti této příručky.)) [global] workgroup = SKUPINA wins support = Yes security = user username map = /etc/samba/smbusers [homes] read only = No map archive = No browseable = No [printers] path = /var/tmp printable = Yes browseable = No [data] path = /opt/macky read only = No map archive = No V konfiguračni je třeba dále upravit: - v sekci ''global'' hodnotu parametru ''workgroup'' na jméno pracovní skupiny, do které patří oba počítače - v sekci ''data'' nastavit v parametru ''path'' cestu ke sdílenému adresáři **Poznámka:** Jméno pracovní skupiny zjistíte v případě //Windows XP// následovně. Dvojklikem na ikonu //Tento počítač// otevřete nabídku, ve které vyberete položku //Vlastnosti//. V okně //Vlastnosti systému// klikněte na záložku //Název počítače// a opište jméno uvedené za položkou //Pracovní skupina//. Jestliže chcete přidat více sdílených adresářů, přidejte do souboru ''smb.conf'' více sekcí se stejnou syntaxí, jako sekce ''data''. [data1] path = /opt/macky/adresar1 read only = No map archive = No [data2] path = /home/macky/adresar2 read only = No map archive = No == Připojení / odpojení sdíleného adresáře == Dále je třeba spustit démoda ''smbd''. To se provede pomocí příkazu /usr/sbin/smbd Po té, co je démon spuštěn, zadejte pro připojení sdíleného adresáře do příkazové řádky smbclient //192.168.2.126/data -U samba_uzivatel1%heslo kde uvedená //IP// adresa "patří" tentokráte počítači s //Fedorou//((Tuto adresu je pochopitelně nutné modifikovat!)) a ''samba_uzivatel1'' představuje //Samba// alias pro uživatele, který je "společný" //Fedoře// a //Windows//.\\ Nyní nastal čas přesunout s k počítači s //Windows//. Přihlašte se pod stejným uživatelem, jakého jste specifikovali parametrem ''-U'' u výše uvedeného příkazu ''smbclient''. Klikněte na //Místa v síti// a v části //Práce se sítí// pak na ikonou //Přidat místo v síti//. Pokračujte tlačítkem //Další// a po té ikonou //Jiné umístění v síti//. Pro namapování sdíleného adresáře specifikovaného v ''smb.conf'' v sekci ''data'' zadejte \\192.162.2.126\data a potvrďte. Po chvíli by se mělo otevřít okno s obsahem sdíleného adresáře. ---- [[obsah|Hlavní stránka]]