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.
Tento tutoriál vysvětluje, jak nainstalovat Sambu na Ubuntu 18.04 a nakonfigurovat ji jako samostatný server pro sdílení souborů napříč různými operačními systémy přes síť.
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 tomto tutoriálu také poskytneme podrobné pokyny, jak se připojit k serveru Samba z klientů Linux, Windows a macOS.
Předpoklady #
Než budete pokračovat, ujistěte se, že jste přihlášeni do svého systému Ubuntu 18.04 jako uživatel s právy sudo.
Instalace Samby na Ubuntu #
Samba je dostupná z oficiálních repozitářů Ubuntu. Chcete-li jej nainstalovat do systému Ubuntu, postupujte podle následujících kroků:
-
Začněte aktualizací indexu balíčků apt:
sudo apt update
-
Nainstalujte balíček Samba pomocí následujícího příkazu:
sudo apt install samba
-
Po dokončení instalace se služba Samba automaticky spustí. Chcete-li zkontrolovat, zda server Samba běží, zadejte:
sudo systemctl status smbd
Výstup by měl vypadat nějak takto, což znamená, že služba Samba je aktivní a běží:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
V tomto okamžiku je Samba nainstalována a připravena ke konfiguraci.
Konfigurace brány firewall #
Pokud máte na svém systému Ubuntu spuštěnou bránu firewall, budete muset povolit příchozí připojení UDP na portech 137
a 138
a TCP spojení na portech 139
a 445
.
Za předpokladu, že používáte UFW
pro správu firewallu můžete porty otevřít povolením profilu „Samba“:
sudo ufw allow 'Samba'
Konfigurace globálních možností Samby #
Před provedením změn v konfiguračním souboru Samba vytvořte zálohu pro budoucí referenční účely:
sudo cp /etc/samba/smb.conf{,.backup}
Výchozí konfigurační soubor dodávaný s balíčkem Samba je nakonfigurován pro samostatný server Samba. Otevřete soubor a ujistěte se, že server role
je nastaven na standalone server
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
...
Ve výchozím nastavení Samba naslouchá na všech rozhraních. Pokud chcete omezit přístup k serveru Samba pouze z vaší interní sítě, odkomentujte následující dva řádky a určete rozhraní, ke kterým se chcete připojit:
/etc/samba/smb.conf...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...
Po dokončení spusťte testparm
nástroj pro kontrolu chyb v konfiguračním souboru Samba. Pokud nejsou žádné syntaktické chyby, zobrazí se Loaded services file OK.
Nakonec restartujte služby Samba pomocí:
sudo systemctl restart smbd
sudo systemctl restart nmbd
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ář.
Chcete-li vytvořit /samba
typ adresáře:
sudo mkdir /samba
Nastavte vlastnictví skupiny na sambashare
. Tato skupina je vytvořena během instalace Samby, později do této skupiny přidáme všechny uživatele Samby.
sudo chgrp sambashare /samba
Samba používá linuxové uživatele a systém skupinových oprávnění, ale má svůj vlastní ověřovací 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 pro aktivaci účtu Samba, spusťte:
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í chmod
příkaz poskytuje 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 smbd
sudo systemctl restart nmbd
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 v systému 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 systému macOS můžete ke sdílení 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.