Samba je bezplatná a open source reimplementace protokolu pro sdílení souborů v síti SMB/CIFS, která koncovým uživatelům umožňuje přístup k souborům, tiskárnám a dalším sdíleným zdrojům.
V tomto tutoriálu si ukážeme, jak nainstalovat Sambu na CentOS 7 a nakonfigurovat ji jako samostatný server pro sdílení souborů napříč různými operačními systémy po síti.
Vytvoříme následující sdílení a uživatele Samby.
Uživatelé:
- sadmin – Administrativní uživatel s přístupem pro čtení a zápis ke všem sdíleným složkám.
- josh - Běžný uživatel s vlastním soukromým sdílením souborů.
Sdílí:
- uživatelé – Tato sdílená složka bude přístupná všem uživatelům s oprávněním ke čtení/zápisu.
- josh - Tato sdílená složka bude přístupná s oprávněními pro čtení/zápis pouze uživatelům josh a sadmin.
Sdílené soubory budou dostupné ze všech zařízení ve vaší síti. Později v tutoriálu také poskytneme podrobné pokyny, jak se připojit k serveru Samba z klientů Linux, 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 na CentOS #
Samba je dostupná ze standardních repozitářů CentOS. Chcete-li jej 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 spouštění systému:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
smbd
poskytuje služby sdílení souborů a tisku a naslouchá na portech TCP 139 a 445. nmbd
poskytuje klientům služby pojmenování NetBIOS přes IP a naslouchá na portu UDP 137.
Konfigurace brány firewall #
Nyní, když je Samba nainstalována a spuštěna na vašem počítači CentOS, budete muset nakonfigurovat bránu firewall a otevřít potřebné porty. Chcete-li tak učinit, 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ů Samby a struktury adresářů #
Pro snadnější údržbu a flexibilitu namísto použití standardních domovských adresářů (/home/user
) všechny adresáře a data Samby budou umístěny v /samba
adresář.
Začněte vytvořením /samba
adresář:
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 /samba
vlastnictví skupiny adresářůto sambashare
:
sudo chgrp sambashare /samba
Samba používá linuxové uživatele a systém skupinových oprávnění, ale má svůj vlastní autentizační mechanismus oddělený od standardní linuxové autentizace. Uživatele vytvoříme pomocí standardního linuxového useradd
a poté pomocí smbpasswd
nastavte uživatelské heslo utility.
Jak jsme zmínili v úvodu, vytvoříme běžného uživatele, který bude mít přístup ke svému soukromému sdílení souborů a jeden administrátorský účet s přístupem pro čtení a zápis do všech sdílených složek na serveru Samba.
Vytváření uživatelů Samby #
Chcete-li vytvořit 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
useradd
volby mají následující význam:
-M
-nevytvářejte domovský adresář uživatele. Tento adresář vytvoříme ručně.-d /samba/josh
- nastavte domovský adresář uživatele na/samba/josh
.-s /usr/sbin/nologin
- zakázat tomuto uživateli přístup k shellu.-G sambashare
- přidejte uživatele dosambashare
skupina.
Vytvořte domovský adresář uživatele a nastavte vlastnictví adresáře na uživatele josh
a skupina sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
Následující příkaz přidá bit setgid do /samba/josh
adresář, 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 soubor skupinového vlastníka sambashare
. Pokud například nenastavíte oprávnění adresáře na 2770
a sadmin
uživatel vytvoří nový soubor uživatel josh
nebude moci číst/zapisovat do tohoto souboru.
sudo chmod 2770 /samba/josh
Přidejte josh
uživatelský účet 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.
Jakmile je heslo nastaveno, povolte účet Samba zadáním:
sudo smbpasswd -e josh
Enabled user josh.
Chcete-li vytvořit 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 ho přidejte do sadmin
skupina.
Vytvořte administrátora zadáním:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Výše uvedený příkaz také vytvoří skupinu sadmin
a přidejte uživatele do obou sadmin
a sambashare
skupiny.
Nastavte heslo a povolte uživatele:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Dále vytvořte Users
sdílený adresář:
sudo mkdir /samba/users
Nastavte vlastnictví adresáře na uživatele sadmin
a skupina 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 konfiguruje přístup pro zápis/čtení členům sambashare
skupině v /samba/users
adresář:
sudo chmod 2770 /samba/users
Konfigurace sdílení Samba #
Otevřete konfigurační soubor Samby a připojte části:
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf[users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[josh]
path = /samba/josh
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = josh @sadmin
Možnosti mají následující význam:
[users]
a[josh]
- Názvy sdílených položek, které budete používat při přihlašování.path
– Cesta ke sdílení.browseable
- Zda má být podíl uveden v seznamu dostupných podílů. Nastavením nano
ostatní uživatelé nebudou moci sdílení zobrazit.read only
- Zda uživatelé zadali vvalid users
seznam může zapisovat do tohoto sdílení.force create mode
- Nastaví oprávnění pro nově vytvořené soubory v této sdílené složce.force directory mode
- Nastaví oprávnění pro nově vytvořené adresáře v této sdílené složce.valid users
- Seznam uživatelů a skupin, které mají povolen přístup ke sdílené složce. Skupiny mají předponu@
symbol.
Další informace o dostupných možnostech naleznete na stránce dokumentace konfiguračního 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 vám ukážeme, jak se připojit ke sdílené složce Samba z klientů Linux, macOS a Windows.
Připojení ke sdílení Samba z Linuxu #
Uživatelé Linuxu 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řístup k Sambě z příkazového řádku. smbclient
Balíček není na většině linuxových distribucí předinstalován, takže jej budete muset nainstalovat pomocí správce distribučních balíčků.
Chcete-li nainstalovat smbclient
na Ubuntu a Debianu spusťte:
sudo apt install smbclient
Chcete-li nainstalovat smbclient
na 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
Napří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
běželi byste:
smbclient //192.168.121.118/josh -U josh
Budete vyzváni k zadání uživatelského hesla.
Enter WORKGROUP\josh's password:
Jakmile zadáte heslo, budete přihlášeni do rozhraní příkazového řádku Samba.
Try "help" to get a list of possible commands.
smb: \>
Montáž sdílení Samba #
Chcete-li připojit sdílení Samba na Linux, musíte nejprve nainstalovat cifs-utils
balíček.
Na Ubuntu a Debianu spusťte:
sudo apt install cifs-utils
Na CentOS a Fedoře spusťte:
sudo yum install cifs-utils
Dále vytvořte přípojný bod:
sudo mkdir /mnt/smbmount
Připojte sdílenou složku pomocí následujícího příkazu:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
Chcete-li například připojit sdílenou složku s názvem josh
na serveru Samba s IP adresou 192.168.121.118
jako uživatel josh
do /mnt/smbmount
přípojný bod, který byste spustili:
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: ********
Použití GUI #
Soubory, výchozí správce souborů v Gnome má vestavěnou možnost přístupu ke sdílení Samba.
- Otevřete Soubory a klikněte na „Další umístění“ na postranním panelu.
- V části „Připojit k serveru“ zadejte adresu sdílení 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:
- Vyberte „Registrovaný uživatel“, zadejte uživatelské jméno a heslo Samba a klikněte na „Připojit“.
- Zobrazí se soubory na serveru Samba.
Připojení k Samba Share z macOS #
V macOS můžete ke sdíleným položkám Samba přistupovat buď z příkazového řádku, nebo pomocí výchozího nástroje Finder správce souborů macOS. Následující kroky ukazují, jak přistupovat ke sdílené složce pomocí Finderu.
- Otevřete „Finder“, vyberte „Go“ a klikněte na „Connect To“.
- Do pole „Připojit k“ zadejte adresu sdílení 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:
- Vyberte „Registrovaný uživatel“, zadejte uživatelské jméno a heslo Samba a klikněte na „Připojit“.
- Zobrazí se soubory na serveru Samba.
Připojení k Samba Share ze systému Windows #
Uživatelé Windows mají také možnost připojit se ke sdílené složce Samba z příkazového řádku i grafického rozhraní. Níže uvedené kroky ukazují, jak přistupovat ke sdílené složce pomocí Průzkumníka souborů Windows.
- Otevřete Průzkumníka souborů a v levém podokně klikněte pravým tlačítkem na „Tento počítač“.
- Vyberte „Vybrat vlastní síťové umístění“ a poté klikněte na „Další“.
- Do pole „Internetová nebo síťová adresa“ zadejte adresu sdílení 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 umístění v síti. Výchozí nastavení bude vyzvednuto serverem Samba.
- Kliknutím na tlačítko „Další“ se přesunete na poslední obrazovku průvodce nastavením připojení.
- Klikněte na „Dokončit“ a zobrazí se soubory na serveru Samba.