Sdílení adresářů pomocí serveru Samba
OS typu Windows používají protokol Microsoft SMB (Server Message Block) známý také pod jménem CIFS (Common Internet File System). Tento protokol umožňuje sdílení souborů, adresářů, tiskáren apod. Linux tento protol 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.
Instalace serveru Samba
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Přidání repozitáře.
Server Samba lze nainstalovat buď pomocí Aplikace → Prostředí → Systémová nastavení → Přidat/odstranit aplikace nebo přes terminál
yum -y install samba yum -y install samba-client yum -y install system-config-samba
Konfigurace serveru Samba
Přidání, editování a mazání síťových uživatelů
- Přečtěte si kapitolu Obecné poznámky.
Poznámka: Jestliže je třeba přidat uživatele, přečtěte si kapitolu Přidání, editace a mazání uživatelů a skupin.
Server Samba lze nastavit pomocí grafického rozhraní Aplikace → Prostředí → Správa → Nastavení serveru → Samba. Je možné nastavit sdílený adresář a přiřadit mu uživatele, kteří k němu mohou přistupovat.
Nastavení Samby lze provést také ručně
smbpasswd -a system_username gedit /etc/samba/smbusers
Do souboru smbusers
přidejte následující řádek
system_username = "network username"
a soubor uložte.
Heslo konkrétního uživatele 1) je možné editovat pomocí
smbpasswd -a system_username
Smazat uživatele lze pak pomocí
smbpasswd -x system_username
Změna popisu počítače a pracovní skupiny
- Přečtěte si kapitolu Obecné poznámky.
Změnu popisu počítače lze provést pomocí modifikace konfiguračního souboru smb.conf
. Nejprve zálohujte původní soubor a otevřete jej pomocí textového editoru.
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V případě, že chcete změnit popis počítače, nahraďte řádek
... server string = Samba Server ...
v tomto souboru řádkem
... server string = novy_popis_pocitace ...
Pro změnu názvu pracovní skupiny nahraďte řádek
... workgroup = MSHOME ...
řádkem
... workgroup = nove_jmeno_pracovni_skupiny ...
Soubor smb.conf
uložte. Proveďte kontrolu správnosti syntaxe zeditovaného souboru
testparm
a restartujte aplikaci Samba.
/etc/init.d/smb restart
Nastavení sdílených adresářů
Následující úpravy jsou prováděny na „poinstalační“ verzi konfiguračního souboru smb.conf
. V případě, že obsah tohoto souboru zaměníte v souladu s postupem popsaným v kapitolách Sdílení adresářů mezi počítači s Fedora Core, Připojení sdílených adresářů počítače s OS typu Windows nebo Připojení sdílených souborů počítače s Fedora Core, řádky které mají být vyměněny, v souboru nenaleznete. V tomto případě však stačí nové řádky do souboru jednoduše přidat.
Sdílení domovských adresářů s právem čtení a zápisu (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
najděte v sekci global
řádek
... ; security = user ...
nahraďte ho řádky
security = user username map = /etc/samba/smbusers
a soubor uložte.
Po té zadejte do příkazové řádky
testparm /etc/init.d/smb restart
Sdílení domovských adresářů s právem čtení (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
nalezněte v sekci global
řádek
... ; security = user ...
a nahraďte ho následujícími řádky
security = user username map = /etc/samba/smbusers
Dále v souboru smb.conf
naležněte v sekci homes
řádky
comment = Home Directories browseable = no writeable = yes
a nahraďte je řádky
comment = Home Directories browseable = yes writeable = no
Soubor uložte a do příkazové řádky zadejte
testparm /etc/init.d/smb restart
Sdílení společných souborů s právem čtení a zápisu (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
Nejprve vytvořte společný adresář public
, ke kterému budou moci přistupovat ostatní uživatelé.
mkdir /home/public chmod 777 /home/public/
Dále proveďte zálohu konfiguračního souboru smb.conf
a tento soubor otevřete pomocí textového editoru.
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
nalezněte v sekci global
řádky
... ; security = user ...
a nahraďte je
security = user username map = /etc/samba/smbusers
Na konec souboru smb.conf
pak přidejte následující řádky
[public] comment = Public Folder path = /home/public public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
a soubor uložte. Otestujte sytanxi souboru smb.conf
a restartujte Samba server.
testparm /etc/init.d/smb restart
Sdílení společných souborů s právem čtení (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
mkdir /home/group chmod 777 /home/group/ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
v sekci global
nalezněte řádky
... ; security = user ...
a nahraďte je nádledujícími řádky
security = user username map = /etc/samba/smbusers
Na konec souboru smb.conf
přidejte následující řádky
[Group] comment = Group Folder path = /home/group public = yes writable = no valid users = system_username1 system_username2 create mask = 0700 directory mask = 0700 force user = nobody force group = nogroup
a soubor uložte. Do příkazové řádky zadejte
testparm /etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení a zápisu (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
mkdir /home/public chmod 777 /home/public/ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
najděte v sekci global
řádek
… ; security = user …
a nahraďte ho řádky
security = user username map = /etc/samba/smbusers
Na konec souboru přidejte následující řádky
[public] comment = Public Folder path = /home/public public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
a soubor uložte. Otestujte sytanxi souboru smb.conf
a restartujte Samba server.
testparm /etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení (vyžadována autentifikace)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
mkdir /home/public chmod 777 /home/public/ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
najděte v sekci global
řádek
... ; security = user ...
a nahraďte ho řádky
security = user username map = /etc/samba/smbusers
Na konec souboru smb.conf
přidejte řádky
[public] comment = Public Folder path = /home/public public = yes writable = no create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
a soubor uložte. Do příkazové řádky zadejte
testparm /etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení a zápisu (autentifikace není vyžadována)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
mkdir /home/public chmod 777 /home/public/ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
najděte v sekci global
řádek
... ; security = user ...
a nahraďte ho řádkem
security = share
Na konec souboru smb.conf
přidejte řádky
[public] comment = Public Folder path = /home/public public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
a soubor uložte. Otestujte sytanxi souboru smb.conf
a restartujte Samba server.
testparm /etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení (autentifikace není vyžadována)
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Přidání, editování a mazání síťových uživatelů.
mkdir /home/public chmod 777 /home/public/ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gedit /etc/samba/smb.conf
V souboru smb.conf
najděte v sekci global
řádek
... ; security = user ...
a nahraďte ho řádkem
security = share
Na konec souboru přidejte následující řádky
[public] comment = Public Folder path = /home/public public = yes writable = no create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
a soubor uložte. Do příkazové řádky zadejte
testparm /etc/init.d/smb restart
Sdílení adresářů mezi počítači s Fedora Core
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Konfigurace serveru Samba.
- Přečtěte si kapitolu Nastavení sdílených adresářů.
- Přečtěte si kapitolu Zjistění IP adresy počítače s Fedora Core.
Samba server lze použít pro sdílení adresářů mezi počítači s Fedora Cora. Na všech počítačích, které budeme chtít sesíťovat, musí být být správně nastavenen protokol TCP/IP 2). Funkčnost protokolu TCP/IP lze velice jednoduše prověřit pomocí
ping -c 10 ip_adresa
kde ip_adresa
je IP adresou vzdáleného počítače, ke kterému se budete chtít připojovat.
Dalším krokem je úprava konfiguračního souboru aplikace Samba smb.conf
. Správnost syntaxe současného konfiguračního souboru ověříte pomocí
testparm
Výstup tohoto příkazu by měl vypadat 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 se konfigirační soubor nachází v adresáři /etc/samba
. Nejprve původní konfigurační soubor zálohujte
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
a následně otevřete pomocí textového editoru.
gedit /etc/samaba/smb.conf
Obsah souboru zaměňte za
[global] workgroup = SKUPINA wins support = Yes [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ční je třeba dále upravit:
- v sekci
global
hodnotu parametruworkgroup
na jméno pracovní skupiny, do které patří oba počítače - v sekci
data
nastavit v parametrupath
cestu ke sdílenému adresáři
Poznámka: Toto je zcela základní konfigurace. V případě, že budete chtít například nastavit autentifikaci pomocí uživatelského jména a hesla nebo omezit přístupová práva na právo čtení, je třeba dále provést úpravu konfiguračního souboru smb.conf
v souladu s popisem v kapitole Nastavení sdílených adresářů.
Pro více sdílených adresářů, přidejte více sekcí se stejnou syntaxí, jako oddíl data
.
[data1] path = /opt/macky/adresar1 read only = No map archive = No [data2] path = /home/macky/adresar2 read only = No map archive = No
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 v oddíle data
do příkazové řádky
smbclient 192.168.2.126/data
kde IP adresa “patří” počítači s Fedora Core, jehož adresář chcete sdílet. Jestliže jste nastavili požadavek autentifikace, bude vyzváni k zadání uživatelského jména a hesla.
Nyní se přesuňte k druhému počítači s Fedora Core. Předpokládejme, že počítač, na kterém je uložen sdílený adresář, má IP adresu 192.168.2.126. Dále předpokládejme, že sdílený adresář budete připojovat do adresáře /media/smb
. Samotné připojení adresáře pak provedete pomocí
mount -t cifs 192.168.2.126/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. Pro automatické připojení sdílených adresářů je třeba modifikovat soubor /etc/fstab
.
Modifikace fstab pro automatické připojení sdílených adresářů
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu 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=moje_uzivatelske_jmeno password=moje_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řte v textovém editoru.
gedit /etc/fstab
Na konec tohoto souboru vložte řádek
//192.168.2.126/data /media/sharename cifs credentials=/root/.smbcredentials 0 0
a zeditovaný soubor uložte.
Poznámka: Po té, co vložíte do souboru fstab
řádek, je třeba ještě vložit prázdný řádek klávesou ENTER. Jestliže soubor 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 adresářů počítače s OS typu Windows
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Konfigurace serveru Samba.
Aby bylo možné sdílet adresáře počítače s OS typu Windows je třeba, aby na tomto počítačí byl správně nastaven protokol TCP/IP.
Funkčnost protokolu TCP/IP lze velice snadno ověřit z Linuxu pomocí
ping -c 10 ip_adresa
IP adresu daného počítače s nainstalovanými Windows XP lze zjistit následujícím způsobem. Klikněntě 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 3). Další možností, jak získat IP adresu, je v příkazovém řádku zadat příkaz ipconfig
.
Výstup výše uvedeného příkazu 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 OS typu Windows.
Na počítači s OS Windows je třeba vytvořit sdílený adresář. 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í.
Posledním krokem je vytvoření adresáře na počítači s Linuxem, kam připojíte obsah sdíleného adresáře.
Předpokládejme, že počítač s OS 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.
Připojení sdílených souborů počítače s Fedora Core
- Přečtěte si kapitolu Obecné poznámky.
- Přečtěte si kapitolu Instalace serveru Samba.
- Přečtěte si kapitolu Konfigurace serveru Samba.
- Přečtěte si kapitolu Nastavení sdílených adresářů.
- Přečtěte si kapitolu Zjistění IP adresy počítače s Fedora Core.
V předchozím odstavci jsme připojovali sdílený adresář uložený na počítači s OS typu Windows. Nyní zkusíme opačný postup - budeme připojovat sdílený adresář uložený na počítači s Fedora Core.
Stějně jako v předchozím případě je nezbytnou podmínkou úspěchu funkční nastavení protolu TCP/IP na obouch počítačích. To, jestli se počítače vzájemně „vidí“, lze snadno ověřit pomocí příkazu spuštěného z příkazového řádku
ping -c 10 ip_adresa
kde ip_adresa
je IP adresou počítače s OS typu Windows 4).
Dalším krokem je ú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í provedeme zálohu původního konfiguračního souboru.
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Následně otevřeme konfigurační soubor v textovém editoru
gedit /etc/samaba/smb.conf
a obsah souboru zaměníme za 5)
[global] workgroup = SKUPINA wins support = Yes [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 tomto souboru je pak třeba změnit:
- v sekci
global
hodnotu proměnnéworkgroup
na název skupiny, kterou máte nastavenu na počítači s OS typu Windows - v sekci
data
nastavit cestu k adresáři, který chceme sdílet
Poznámka: Toto je zcela základní konfigurace. V případě, že budete chtít například nastavit autentifikaci pomocí uživatelského jména a hesla nebo omezit přístupová práva na právo čtení, je třeba dále provést úpravu konfiguračního souboru smb.conf
v souladu s popisem v kapitole Nastavení sdílených adresářů.
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 opíš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
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
kde IP adresa „patří“ tentokráte počítači s Fedora Core. Jestliže jste nastavili požadavek autentifikace, bude vyzváni k zadání uživatelského jména a hesla.
Nyní nastal čas přesunout s k počítači s OS Windows. Klikněte Místa v síti a části Práce se sítí klikněte na Přidat místo v síti, klikněte na Další a po té pokračujte 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.
/etc/samba/smbusers
, je tímto příkazem tento uživatel vytvořen.