V tomto tutoriálu, budeme se učit, jak nainstalovat a nakonfigurovat server Samba na Ubuntu sdílet soubory na lokální síti. Samba je zdarma a open-source SMB/CIFS protokol implementace pro Unix a Linux, který umožňuje sdílení souborů a tiskáren mezi Unix/Linux, Windows a macOS stroje v místní síti.
Samba je obvykle nainstalován a spuštěn na Linuxu., Obsahuje několik programů, které slouží různým, ale souvisejícím účelům, z nichž nejdůležitější jsou:
- smbd: poskytuje službu SMB/CIFS (sdílení a tisk souborů), může také fungovat jako řadič domény Windows.
- nmbd: tento démon poskytuje NetBIOS name service, poslouchá požadavky na jméno-server. Umožňuje také nalezení serveru Samba jinými počítači v síti.
Jak nainstalovat Samba Server na Ubuntu
Samba je součástí většiny linuxových distribucí. Chcete-li nainstalovat Samba na Ubuntu, jednoduše spusťte následující příkaz v terminálu.,
sudo apt install samba samba-common-bin
nejnovější dostupná stabilní verze je 4.12.0, vydaná 03. března 2019. Zkontrolovat Samba verze, spusťte
smbd --version
Ukázkový výstup:
Version 4.7.6-Ubuntu
zkontrolujte, zda Samba služba spuštěna, spusťte následující příkaz.
systemctl status smbd nmbd
Pro spuštění těchto dvou služeb, vydat následující příkaz:
sudo systemctl start smbd nmbd
Poté, co začal, smbd
bude poslouchat na portu TCP 139 a 445. nmbd
bude poslouchat na portu UDP 137 a 138.,
- TCP 139: používá se pro sdílení souborů a tiskáren a další operace.
- TCP 445: port CIFS bez Netbiosu.
- UDP 137: používá se pro prohlížení sítě NetBIOS.
- UDP 138: používá se pro NetBIOS name service.
Pokud jste povolili firewall UFW na Ubuntu, musíte výše uvedené porty otevřít v bráně firewall pomocí následujícího příkazu.
sudo ufw allow samba
Vytvořit Vlastní Samba Sdílet
V této části se budeme vidět, jak vytvořit privátní Samba sdílení, které vyžaduje klient zadat uživatelské jméno a heslo k získání přístupu., Hlavní konfigurační soubor Samba je umístěn na adrese: /etc/samba/smb.conf
. Můžete jej upravit v terminálu pomocí textového editoru příkazového řádku, jako je nano
.
sudo nano /etc/samba/smb.conf
V oddíl, ujistěte se, že hodnota
workgroup
stejné je to s pracovní skupiny nastavení počítače se systémem Windows.,
workgroup = WORKGROUP
můžete Si najít nastavení na vašem Windows počítači tím, že půjdete do Control Panel
> System and Security
> System
.
pak přejděte dolů do dolní části souboru. (V Nano textovém editoru toho můžete dosáhnout stisknutím CTRL+W
pak CTRL+V
. ) Přidejte novou sekci, jako je níže.,
vysvětlení:
-
Private
je název složky, který se zobrazí v síti Windows. - komentář je popis sdílené složky.
- parametr cesta určuje cestu ke sdílené složce. Jako příklad používám
/srv/samba/private/
. Můžete také použít složku v domovském adresáři. -
browseable = yes
: Povolit ostatním počítačům v síti vidět Samba server a Samba share., Pokud je nastavena na ne, uživatelé musí znát název serveru Samba a poté ručně zadat cestu do Správce souborů pro přístup ke sdílené složce. -
guest ok = no
: zakázat přístup hostů. Jinými slovy, pro přístup ke sdílené složce musíte do klientského počítače zadat uživatelské jméno a heslo. -
writable = yes
: uděluje klientům oprávnění ke čtení i zápisu. -
valid users = @samba
: pouze uživatelé ve skupině samba mají přístup k této akcii Samba.
Uložte a zavřete soubor., (Chcete-li soubor uložit do textového editoru nano, stiskněte Ctrl+O
a poté stisknutím klávesy Enter potvrďte název souboru, který chcete napsat. Chcete-li soubor zavřít, stiskněte Ctrl+X
.) Nyní musíme vytvořit uživatele Samba. Nejprve musíme vytvořit standardní uživatelský účet Linux pomocí následujícího příkazu. Nahraďte username
požadovaným uživatelským jménem.
sudo adduser username
budete vyzváni k nastavení hesla Unix., Poté musíte také nastavit samostatné heslo Samba pro nového uživatele pomocí následujícího příkazu:
sudo smbpasswd -a username
vytvořte skupinu samba.
sudo groupadd samba
a přidejte tohoto uživatele do skupiny samba.
sudo gpasswd -a username samba
Vytvořte soukromou složku sdílení.
sudo mkdir -p /srv/samba/private/
skupina samba musí mít oprávnění ke čtení, zápisu a spuštění ve sdílené složce. Tato oprávnění můžete udělit provedením následujícího příkazu., (Pokud váš systém nemá setfacl
command, musíte nainstalovat acl
balíček sudo apt install acl
.)
sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/
dále spusťte následující příkaz a zkontrolujte, zda nejsou syntaktické chyby.
testparm
nyní zbývá restartovat smbd
a nmbd
démon.,
sudo systemctl restart smbd nmbd
Jak Vytvořit Samba Veřejné Sdílení Bez přihlášení
K vytvoření veřejné sdílení bez nutnosti uživatelské jméno a heslo, musí být splněny následující podmínky.
- Set
security = user
v globální části konfiguračního souboru Samba. I když můžete vytvořit veřejnou akcii pomocí režimusecurity = share
, ale tento režim zabezpečení je zastaralý. Důrazně doporučujeme, abyste se vyhnuli režimushare
. - Set
map to guest = bad user
v globální části konfiguračního souboru Samba., To způsobísmbd
použít účet guest pro autentizaci klientů, kteří nemají registrovaný účet na serveru Samba. Vzhledem k tomu, že se jedná o účet hosta, klienti Samba nemusí zadávat heslo. - nastavit
guest ok = yes
v definici sdílení povolit přístup hosta. - udělit čtení, zápis a provedení oprávnění veřejné složky k účtu
nobody
, což je výchozí účet hosta.
ve skutečnosti jsou první dvě podmínky již splněny, protože Samba ve výchozím nastavení používá tato dvě nastavení.,
zde je průvodce krok za krokem k vytvoření veřejné akcie. Nejprve otevřete a upravte konfigurační soubor Samba.
sudo nano /etc/samba/smb.conf
V oddíl, ujistěte se, že hodnota
workgroup
stejné je to s pracovní skupiny nastavení počítače se systémem Windows.
workgroup = WORKGROUP
můžete Si najít nastavení na vašem Windows počítači tím, že půjdete do Control Panel
> System and Security
> System
.,
pak přejděte dolů do dolní části souboru a vložte následující řádky.
Uložte a zavřete soubor. Dále vytvořte složku /srv/samba/public/
.
sudo mkdir -p /srv/samba/public
Pak se ujistěte se, že nobody
účet má číst, psát a spouštět oprávnění na veřejné složky pomocí následujícího příkazu. (Pokud váš systém nemá setfacl
command, musíte nainstalovat acl
balíček sudo apt install acl
.,)
sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/
restartujte smbd a nmbd.
sudo systemctl restart smbd nmbd
Přístup k Samba Sdílené Složky Z Windows
V počítači se systémem Windows, který je ve stejné síti, otevřete Průzkumník Souborů a klepněte na tlačítko Network
v levém podokně. Pokud se zobrazí následující zpráva, musíte kliknout na zprávu a zapnout zjišťování sítě a sdílení souborů.
File sharing is turned off. Some network computers and devices might not be visible.
Next, zadejte \\
následuje IP adresu Samba serveru do adresního řádku Průzkumníka Souborů, jako je tohle: \\192.168.0.102
., Na serveru Samba uvidíte seznam sdílených zdrojů.
pak poklepejte na sdílenou složku. Chcete-li získat přístup k soukromé akcii, musíte zadat uživatelské jméno a heslo samba. Nemusíte to dělat, abyste měli přístup k veřejnému sdílení.
po připojení můžete číst, zapisovat a mazat soubory ve sdílené složce Samba.
Chyba Připojení
Pokud se vám zobrazí následující chyba:
You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.
můžete se zkuste připojit na Samba share z příkazového řádku., Otevřete příkazový řádek a poté spusťte následující příkaz a zavřete aktuální relaci Samba.
net use \\samba-server-ip\share-name /delete
Next, připojit na Samba share s následujícím příkazem:
net use \\samba-server-ip\share-name /user:samba-username password
Jednou výše uvedený příkaz úspěšně dokončena, přejděte na kartu Síť v File Explorer, a teď byste měli být schopni přístup na Samba share.
Mapování Disku na Windows
Jeden rys operačního systému Windows je schopnost mapovat písmeno jednotky (například E:) vzdáleného adresáře., Chcete-li zmapovat písmeno jednotky S:
na sdílení Samba, klepněte pravým tlačítkem myši na sdílenou složku Samba a vyberte Map network drive. Poté vyberte písmeno jednotky a klikněte na Dokončit.
Jakmile je mapování jednotky je stanovena, aplikace mohou přistupovat k souborům na Samba share přes písmeno jednotky S:
. A tato Samba share se automaticky připojí, když se přihlásíte do počítače se systémem Windows.,
přístup ke složce Samba Share ve Správci souborů Nautilus v Linuxu
Pokud používáte správce souborů Nautilus, klikněte naOther Locations
v levém podokně. V dolní části se zobrazí možnost připojení k serveru. Chcete-li získat přístup ke sdílení Samba, zadejte smb://
a poté IP adresu serveru Samba a stiskněte Enter. Například:
- smb://192.168.0.102
zobrazí se seznam sdílených prostředků na Samba server.,
Pokud kliknete na soukromou sdílenou složku,budete muset zadat uživatelské jméno a heslo Samba. Pokud kliknete na veřejnou sdílenou složku, vyberte možnost připojit se jako anonymní.
Automaticky Připojit Samba Share Z Příkazového Řádku na Linuxu
Pokud potřebujete, aby se automaticky připojit na Samba share v době spuštění, můžete použít příkazový řádek k hoře a pak přidejte položku v /etc/fstab
soubor. Chcete-li to provést, musíte nainstalovat balíček cifs-utils
.,
CentOS/RHEL
sudo dnf install cifs-utils
Debian/Ubuntu
sudo apt install cifs-utils
Pak vytvořit přípojný bod pro Samba sdílení.
sudo mkdir /mnt/samba-private
nyní můžete použít následující příkaz k připojení soukromé sdílené složky.
sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/
požádá vás o zadání hesla Samba. Poté bude namontován v adresáři /mnt/samba-private/
.
Chcete-li automaticky připojit sdílení Samba, upravte/etc/fstab
soubor.
sudo nano /etc/fstab
přidejte do souboru následující řádek.,
kde:
- / / 192.168.0.102 / private: IP adresa serveru Samba a název sdílení.
- / mnt / samba-private: mount point pro sdílení Samba.
- cifs: typ souborového systému
- x-systemd.automount: tato volba řekne systemd vytvořit jednotku automount pro souborový systém. Používáme to, protože zajišťuje, že vzdálený souborový systém je namontován až po přístupu k síti.
- _netdev: to určuje, že připojení vyžaduje síť.
- pověření=: Linux by měl hledat pověření v souboru
/etc/samba-credential.conf
., - uid=1000, gid=1000: ve výchozím nastavení by připojený souborový systém vlastnil uživatel root. Používáme uid a gid ke změně vlastnictví souborového systému. Obvykle používáte vlastní uid a gid, které jsou ve výchozím nastavení 1000.
- x-gvfs-show: Pokud používáte desktopové prostředí GNOME nebo jeho deriváty, můžete použít tuto volbu pro zobrazení připojeného systému souborů ve správci souborů.
Uložte a zavřete soubor. Poté vytvořte soubor pověření.
sudo nano /etc/samba-credential.conf
přidejte do souboru následující řádky.
username=your_samba_usernamepassword=samba_passworddomain=WORKGROUP
Uložte a zavřete soubor., Ujistěte se, že tento soubor může číst pouze uživatel root.
sudo chmod 600 /etc/samba-credential.conf
Pokud nyní restartujete počítač Linux, Samba share se automaticky připojí.
nelze psát na Samba Share?
výše popsaný držák CIFS umožňuje psát na Samba share. Pokud při vytváření souboru uvidíte následující chybu:
Read-only file system
zkontrolujte, zda jste v konfiguračním souboru Samba nastavili writable = yes
., Někdy je sdílená složka Samba na externím pevném disku a poté se ujistěte, že připojíte externí pevný disk v režimu čtení a zápisu na serveru Samba. Například jsem připojil svůj pevný disk btrfs
s následujícím řádkem v / etc / fstab.
LABEL=5TB /mnt/5TB btrfs defaults 0 0
ukázalo se, že volba defaults
neumožňuje operaci zápisu. Chcete-li jej zapisovat, přidejte rw
možnost.
LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0
poté odpojte pevný disk. Musíte použít svůj vlastní mount point.
sudo umount /mnt/5TB
a znovu jej připojte.,
sudo mount -a
Tip pro řešení problémů
Pokud váš server Samba nefunguje podle očekávání,můžete zkontrolovat soubory protokolu pod/var/log/samba/
adresář. Můžete přidat následující řádek v sekci/etc/samba/smb.conf
pro zvýšení úrovně protokolu, pokud chcete přihlásit více informací.
log level = 2
to je ono! Doufám, že tento tutoriál vám pomohl nastavit Samba server na Ubuntu. Jako vždy, pokud jste tento příspěvek považovali za užitečný, přihlaste se k odběru našeho bezplatného zpravodaje., A možná budete chtít přečíst následující článek pro sdílení tiskárny v místní síti.
- Nastavit CUPS Tiskového Serveru na Ubuntu (Bonjour, IPP, Samba, AirPrint)