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-client
Po dokončení instalace spusťte služby Samba a povolte jejich automatické spouštění při startu systému:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo 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=samba
firewall-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 /samba
Vytvoř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 /samba
Samba 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 josh
Volby 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/josh
sudo 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/josh
Přidejte uživatelský účet josh
do databáze Samba nastavením uživatelského hesla:
sudo smbpasswd -a josh
Budete 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 josh
Enabled 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 sadmin
Výš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 sadmin
sudo smbpasswd -e sadmin
Dále vytvořte sdílený adresář Users
:
sudo mkdir /samba/users
Nastavte vlastnictví adresáře na uživatele sadmin
a skupinu sambashare
:
sudo chown sadmin:sambashare /samba/users
Tento 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/users
Konfigurace sdílení Samba #
Otevřete konfigurační soubor Samba a přidejte sekce:
sudo nano /etc/samba/smb.conf
Volby 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 nano
nebudou moci ostatní uživatelé sdílenou složku vidět. -
read only
– Zda uživatelé uvedení v seznamuvalid users
mohou 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.service
sudo 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 smbclient
Pro instalaci smbclient
v CentOS a Fedoře spusťte:
sudo yum install samba-client
Syntaxe pro přístup ke sdílené složce Samba je následující:
mbclient //samba_hostname_or_server_ip/share_name -U username
Pří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 josh
Budete 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-utils
V CentOS a Fedoře spusťte:
sudo yum install cifs-utils
Poté vytvořte přípojný bod:
sudo mkdir /mnt/smbmount
Př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/smbmount
Pří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/smbmount
Budete 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.