Samba je svobodná a otevřená implementace protokolu pro sdílení souborů v síti SMB/CIFS, která umožňuje koncovým uživatelům přístup k souborům, tiskárnám a dalším sdíleným zdrojům.
V tomto návodu si ukážeme, jak nainstalovat Sambu v systému CentOS 7 a nakonfigurovat ji jako samostatný server pro sdílení souborů v různých operačních systémech v síti.
Vytvoříme následující sdílené soubory a uživatele Samby.
Uživatelé:
- sadmin – Administrátorský uživatel s právy pro čtení a zápis do všech sdílených složek.
- josh – Běžný uživatel s vlastní soukromou sdílenou složkou.
Sdílená složka:
- users – Tato sdílená složka bude přístupná všem uživatelům s právy pro čtení a zápis.
- josh – Tato sdílená složka bude přístupná s právy pro čtení/zápis pouze uživatelům josh a sadmin.
Sdílená složka souborů bude přístupná ze všech zařízení v síti. Později v návodu také poskytneme podrobný návod, jak se připojit k serveru Samba z klientů Linuxu, Windows a MacOS.
Předpoklady #
Než začnete, ujistěte se, že jste přihlášeni do systému CentOS 7 jako uživatel s právy sudo .
Instalace Samby v systému CentOS #
Samba je k dispozici ve standardních repozitářích systému CentOS. Chcete-li ji nainstalovat do systému CentOS, spusťte následující příkaz:
sudo yum install samba samba-clientPo dokončení instalace spusťte služby Samba a povolte jejich automatické spouštění při startu systému:
sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service
Služba smbd poskytuje služby sdílení souborů a tisku a naslouchá na portech TCP 139 a 445. Nainstalujte ji do systému CentOS. Služba nmbd poskytuje klientům služby pojmenování NetBIOS přes IP a naslouchá na portu UDP 137. 
Konfigurace brány firewall #
Teď, když je Samba nainstalována a spuštěna na počítači se systémem CentOS, je třeba nakonfigurovat bránu firewall a otevřít potřebné porty. Za tímto účelem spusťte následující příkazy:
firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba
Vytvoření uživatelů a adresářové struktury Samby #
Pro snadnější údržbu a flexibilitu budou místo standardních domovských adresářů (/home/user) všechny adresáře a data Samby umístěny v adresáři /samba.
Začněte vytvořením adresáře /samba:
sudo mkdir /sambaVytvořte novou skupinu s názvem sambashare. Později do této skupiny přidáme všechny uživatele Samby.
sudo groupadd sambashare Nastavte vlastnictví skupiny adresáře /samba na sambashare:
sudo chgrp sambashare /sambaSamba používá systém oprávnění uživatelů a skupin Linuxu, ale má vlastní mechanismus ověřování oddělený od standardního ověřování Linuxu. Uživatele vytvoříme pomocí standardního linuxového nástroje useradd a poté nastavíme heslo uživatele pomocí nástroje smbpasswd.
Jak jsme se zmínili v úvodu, vytvoříme běžného uživatele, který bude mít přístup ke své soukromé sdílené složce souborů, a jeden administrátorský účet s přístupem pro čtení a zápis ke všem sdílením na serveru Samba.
Vytvoření uživatelů Samby #
Pro vytvoření nového uživatele s názvem josh použijte následující příkaz:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare joshVolby useradd mají následující význam:
Vytvořte domovský adresář uživatele a nastavte vlastnictví adresáře na uživatele josh a skupinu sambashare:
sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh
Následující příkaz přidá do adresáře /samba/josh bit setgid, takže nově vytvořené soubory v tomto adresáři zdědí skupinu nadřazeného adresáře. Tímto způsobem bez ohledu na to, který uživatel vytvoří nový soubor, bude mít tento soubor skupinu-vlastníka sambashare. Pokud například nenastavíte oprávnění adresáře na 2770 a uživatel sadmin vytvoří nový soubor, uživatel josh nebude moci tento soubor číst/zapisovat. 
sudo chmod 2770 /samba/joshPřidejte uživatelský účet josh do databáze Samba nastavením uživatelského hesla:
sudo smbpasswd -a joshBudete vyzváni k zadání a potvrzení uživatelského hesla.
New SMB password:Retype new SMB password:Added user josh.Po nastavení hesla povolte účet Samba zadáním:
sudo smbpasswd -e joshEnabled user josh.Pro vytvoření dalšího uživatele opakujte stejný postup jako při vytváření uživatele josh.
Dále vytvoříme uživatele a skupinu sadmin. Všichni členové této skupiny budou mít oprávnění správce. Pokud později budete chtít udělit oprávnění správce jinému uživateli, jednoduše jej přidejte do skupiny sadmin.
Vytvořte uživatele správce zadáním příkazu:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadminVýše uvedený příkaz také vytvoří skupinu sadmin a přidá uživatele do obou skupin sadmin a sambashare.
Zadejte heslo a povolte uživatele:
sudo smbpasswd -a sadminsudo smbpasswd -e sadmin
Dále vytvořte sdílený adresář Users:
sudo mkdir /samba/usersNastavte vlastnictví adresáře na uživatele sadmin a skupinu sambashare:
sudo chown sadmin:sambashare /samba/usersTento adresář bude přístupný všem ověřeným uživatelům. Následující příkaz nastaví přístup k zápisu/čtení pro členy skupiny sambashare v adresáři /samba/users:
sudo chmod 2770 /samba/usersKonfigurace sdílení Samba #
Otevřete konfigurační soubor Samba a přidejte sekce:
sudo nano /etc/samba/smb.confVolby mají následující význam:
-  a– Názvy sdílených složek, které budete používat při přihlašování.
-  path– Cesta ke sdílené složce.
-  browseable– Zda má být sdílená složka uvedena v seznamu dostupných složek. Nastavením nanonebudou moci ostatní uživatelé sdílenou složku vidět.
-  read only– Zda uživatelé uvedení v seznamuvalid usersmohou do této sdílené složky zapisovat.
-  force create mode– Nastavuje oprávnění pro nově vytvořené soubory v této sdílené složce.
-  force directory mode– Nastavuje oprávnění pro nově vytvořené adresáře v této sdílené složce.
-  valid users– Seznam uživatelů a skupin, kteří mají přístup k této sdílené složce. Skupiny mají předponu@.
Další informace o dostupných možnostech najdete na stránce s dokumentací ke konfiguračnímu souboru Samba.
Po dokončení restartujte služby Samba pomocí:
sudo systemctl restart smb.servicesudo systemctl restart nmb.service
V následujících částech si ukážeme, jak se připojit ke sdílené složce Samba z klientů Linux, MacOS a Windows.
Připojení ke sdílené složce Samba ze systému Linux #
Uživatelé systému Linux mohou ke sdílené složce Samba přistupovat z příkazového řádku, pomocí správce souborů nebo připojit sdílenou složku Samba.
Použití klienta smbclient #
smbclient je nástroj, který umožňuje přistupovat ke službě Samba z příkazového řádku. Balíček smbclient není ve většině linuxových distribucí předinstalován, takže jej budete muset nainstalovat pomocí správce balíčků vaší distribuce.
Pro instalaci smbclient v Ubuntu a Debianu spusťte:
sudo apt install smbclientPro instalaci smbclient v CentOS a Fedoře spusťte:
sudo yum install samba-clientSyntaxe pro přístup ke sdílené složce Samba je následující:
mbclient //samba_hostname_or_server_ip/share_name -U usernamePříklad pro připojení ke sdílené složce s názvem josh na serveru Samba s IP adresou 192.168.121.118 jako uživatel josh spustíte:
smbclient //192.168.121.118/josh -U joshBudete vyzváni k zadání uživatelského hesla.
Enter WORKGROUP\josh's password:Po zadání hesla budete přihlášeni do rozhraní příkazového řádku Samba.
Try "help" to get a list of possible commands.smb: \>Připojení sdílené složky Samba #
Pro připojení sdílené složky Samba v systému Linux musíte nejprve nainstalovat balíček cifs-utils.
V Ubuntu a Debianu spusťte:
sudo apt install cifs-utilsV CentOS a Fedoře spusťte:
sudo yum install cifs-utilsPoté vytvořte přípojný bod:
sudo mkdir /mnt/smbmountPřipojte sdílené místo pomocí následujícího příkazu:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmountPříklad pro připojení sdílené složky s názvem josh na serveru Samba s IP adresou 192.168.121.118 jako uživatel josh k přípojnému bodu /mnt/smbmount spustíte:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmountBudete vyzváni k zadání uživatelského hesla.
Password for josh@//192.168.121.118/josh: ********Pomocí grafického uživatelského rozhraní #
Soubory, výchozí správce souborů v prostředí Gnome má zabudovanou možnost přístupu ke sdílené složce Samba.
- Otevřete Soubory a v postranním panelu klikněte na „Další umístění“.
- V položce „Připojit k serveru“ zadejte adresu sdílené složky Samba v následujícím formátu smb://samba_hostname_or_server_ip/sharename.
- Klikněte na „Připojit“ a zobrazí se následující obrazovka:
 
- Zvolte „Registered User“, zadejte uživatelské jméno a heslo Samba a klikněte na „Connect“.
- Zobrazí se soubory na serveru Samba.
 
Připojení ke sdílené složce Samba ze systému macOS #
V systému macOS můžete ke sdílené složce Samba přistupovat buď z příkazového řádku, nebo pomocí výchozího správce souborů systému macOS Finder. Následující kroky ukazují, jak přistupovat ke sdílené složce pomocí nástroje Finder.
- Otevřete „Finder“, vyberte „Go“ a klikněte na „Connect To“.
- V „Connect To“ zadejte adresu sdílené složky Samba v následujícím formátu smb://samba_hostname_or_server_ip/sharename.
 
- Klikněte na „Připojit“ a zobrazí se následující obrazovka:
 
- Zvolte „Registered User“, zadejte uživatelské jméno a heslo Samba a klikněte na „Připojit“.
- Zobrazí se soubory na serveru Samba.
 
Připojení ke sdílené složce Samba ze systému Windows #
Uživatelé systému Windows mají také možnost připojit se ke sdílené složce Samba z příkazového řádku i grafického rozhraní. Následující kroky ukazují, jak přistupovat ke sdílené složce pomocí Průzkumníka souborů systému Windows.
- Otevřete Průzkumníka souborů a v levém podokně klikněte pravým tlačítkem myši na „Tento počítač“.
- Zvolte „Zvolit vlastní síťové umístění“ a poté klikněte na „Další“.
- V položce „Internetová nebo síťová adresa“ zadejte adresu sdílené složky Samba v následujícím formátu \samba_hostname_or_server_ip\sharename.
 
- Klikněte na „Další“ a budete vyzváni k zadání přihlašovacích údajů, jak je uvedeno níže:
 
- V dalším okně můžete zadat vlastní název síťového umístění. Výchozí bude převzat serverem Samba.
 
- Klepnutím na „Další“ přejdete na poslední obrazovku průvodce nastavením připojení.
- Klepněte na „Dokončit“ a zobrazí se soubory na serveru Samba.
 
Závěr #
V tomto návodu jste se naučili nainstalovat server Samba v systému CentOS 7 a vytvořit různé typy sdílených a uživatelů. Ukázali jsme si také, jak se k serveru Samba připojit ze zařízení se systémy Linux, MacOS a Windows.
