GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte a nakonfigurujte Samba Server na Ubuntu pro sdílení souborů

V tomto tutoriálu se naučíme, jak nainstalovat a nakonfigurovat server Samba na Ubuntu pro sdílení souborů v místní síti. Samba je bezplatná implementace protokolu SMB/CIFS s otevřeným zdrojovým kódem pro Unix a Linux, která umožňuje sdílení souborů a tiskáren mezi stroji Unix/Linux, Windows a macOS v místní síti.

Samba se obvykle instaluje a běží na Linuxu. Obsahuje několik programů, které slouží různým, ale souvisejícím účelům, z nichž dva 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 jmennou službu NetBIOS, naslouchá požadavkům jmenného serveru. Umožňuje také nalezení serveru Samba jinými počítači v síti.

Jak nainstalovat server Samba na Ubuntu

Samba je součástí většiny distribucí Linuxu. Chcete-li nainstalovat Sambu na Ubuntu, jednoduše spusťte následující příkaz v terminálu.

sudo apt install samba samba-common-bin

Poslední dostupná stabilní verze je 4.12.0, vydaná 3. března 2019. Chcete-li zkontrolovat verzi Samby, spusťte

smbd --version

Ukázkový výstup:

Version 4.7.6-Ubuntu

Chcete-li zkontrolovat, zda je služba Samba spuštěna, zadejte následující příkaz.

systemctl status smbd nmbd

Chcete-li spustit tyto dvě služby, zadejte následující příkaz:

sudo systemctl start smbd nmbd

Po spuštění smbd bude naslouchat na TCP portech 139 a 445. nmbd bude naslouchat na portech UDP 137 a 138.

  • TCP 139:používá se pro sdílení souborů a tiskáren a další operace.
  • TCP 445:port CIFS bez NetBIOS.
  • UDP 137:používá se pro procházení sítě NetBIOS.
  • UDP 138:používá se pro službu názvů NetBIOS.

Pokud jste povolili bránu firewall UFW na Ubuntu, musíte otevřít výše uvedené porty ve bráně firewall pomocí následujícího příkazu.

sudo ufw allow samba

Vytvořte soukromé sdílení Samby

V této části uvidíme, jak vytvořit soukromou sdílenou složku Samba, která vyžaduje, aby klient zadal uživatelské jméno a heslo, aby získal přístup. Hlavní konfigurační soubor Samby se nachází 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 [global] sekce, ujistěte se, že hodnota workgroup je stejné s nastavením pracovní skupiny počítačů Windows.

workgroup = WORKGROUP

Nastavení najdete na počítači se systémem Windows tak, že přejdete na Control Panel> System and Security> System .

Poté přejděte dolů na konec souboru. (V nano textovém editoru toho dosáhnete stisknutím CTRL+W pak CTRL+V . ) Přidejte novou sekci jako níže.

[Private]

comment = needs username and password to access
path = /srv/samba/private/
browseable = yes
guest ok = no
writable = yes
valid users = @samba

Vysvětlení:

  • Private je název složky, který se zobrazí v síti Windows.
  • Komentář je popis sdílené složky.
  • Parametr path určuje cestu ke sdílené složce. Používám /srv/samba/private/ jako příklad. Můžete také použít složku ve svém domovském adresáři.
  • browseable = yes :Povolit ostatním počítačům v síti vidět server Samba a sdílení Samba. Pokud je nastaveno 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 na klientském počítači zadat uživatelské jméno a heslo.
  • writable = yes :Uděluje klientům oprávnění ke čtení i zápisu.
  • valid users = @samba :K tomuto sdílení Samba mají povolen přístup pouze uživatelé ve skupině samba.

Uložte a zavřete soubor. (Chcete-li soubor uložit v textovém editoru nano, stiskněte Ctrl+O a poté stisknutím klávesy Enter potvrďte název souboru, který chcete zapsat. Chcete-li soubor zavřít, stiskněte Ctrl+X .) Nyní musíme vytvořit uživatele Samby. Nejprve musíme pomocí následujícího příkazu vytvořit standardní uživatelský účet Linuxu. Nahraďte username s požadovaným uživatelským jménem.

sudo adduser username

Budete vyzváni k nastavení unixového hesla. Poté také musíte 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 sdílenou složku.

sudo mkdir -p /srv/samba/private/

Skupina samba musí mít oprávnění ke čtení, zápisu a spouš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 musíte nainstalovat acl balíček s sudo apt install acl .)

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

Dále spusťte následující příkaz, abyste zkontrolovali, zda se nevyskytují syntaktické chyby.

testparm

Nyní zbývá pouze restartovat smbd a nmbd démon.

sudo systemctl restart smbd nmbd

Jak vytvořit veřejné sdílení Samba bez ověření

Chcete-li vytvořit veřejnou sdílenou složku bez vyžadování uživatelského jména a hesla, musí být splněny následující podmínky.

  • Nastavte security = user v globální části konfiguračního souboru Samba. I když můžete vytvořit veřejné sdílení pomocí security = share režim, ale tento režim zabezpečení je zastaralý. Důrazně doporučujeme vyhnout se share režimu.
  • Nastavit map to guest = bad user v globální části konfiguračního souboru Samba. To způsobí smbd k použití účtu hosta k ověření klientů, kteří nemají registrovaný účet na serveru Samba. Protože se jedná o účet hosta, klienti Samba nemusejí zadávat heslo.
  • Nastavte guest ok = yes v definici sdílení, abyste umožnili přístup hostů.
  • Udělte oprávnění ke čtení, zápisu a spouštění veřejné složky nobody účet, což je výchozí účet hosta.

Ve skutečnosti jsou první dvě podmínky již splněny, protože Samba standardně používá tato dvě nastavení.

Zde je podrobný průvodce vytvořením veřejného sdílení. Nejprve otevřete a upravte konfigurační soubor Samba.

sudo nano /etc/samba/smb.conf

V [global] sekce, ujistěte se, že hodnota workgroup je stejné s nastavením pracovní skupiny počítačů Windows.

workgroup = WORKGROUP

Nastavení najdete na počítači se systémem Windows tak, že přejdete na Control Panel> System and Security> System .

Poté přejděte dolů na konec souboru a vložte následující řádky.

[public]

comment = public share, no need to enter username and password
path = /srv/samba/public/
browseable = yes
writable = yes
guest ok = yes

Uložte a zavřete soubor. Dále vytvořte /srv/samba/public/ složka.

sudo mkdir -p /srv/samba/public

Pak se ujistěte, že nobody účet má oprávnění ke čtení, zápisu a spouštění ve veřejné složce provedením následujícího příkazu. (Pokud váš systém nemá setfacl musíte nainstalovat acl balíček s 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 ke sdílené složce Samba ze systému Windows

Na počítači se systémem Windows, který je ve stejné síti, otevřete Průzkumník souborů a klikněte na Network na levém panelu. Pokud se zobrazí následující zpráva, musíte na zprávu kliknout 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.

Dále zadejte \\ následovaná IP adresou serveru Samba v adresním řádku Průzkumníka souborů, takto:\\192.168.0.102 . Zobrazí se seznam sdílených zdrojů na serveru Samba.

Poté poklepejte na sdílenou složku. Pro přístup k soukromé sdílené složce musíte zadat uživatelské jméno a heslo samby. Pro přístup k veřejnému sdílení to nemusíte dělat.

Po připojení můžete číst, zapisovat a mazat soubory ve sdílené složce Samba.

Chyba při připojování

Pokud se 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 zkusit připojit ke sdílené složce Samba z příkazového řádku. Otevřete příkazový řádek a poté spusťte následující příkaz pro ukončení aktuální relace Samby.

net use \\samba-server-ip\share-name /delete

Dále se připojte ke sdílené složce Samba pomocí následujícího příkazu:

net use \\samba-server-ip\share-name /user:samba-username password

Po úspěšném dokončení výše uvedeného příkazu přejděte na kartu Síť v Průzkumníku souborů a nyní byste měli mít přístup ke sdílení Samba.

Mapování jednotky v systému Windows

Jednou z funkcí operačního systému Windows je schopnost mapovat písmeno jednotky (například S:) ke vzdálenému adresáři. Chcete-li namapovat písmeno jednotky S: do sdílené složky Samba, klikněte pravým tlačítkem na sdílenou složku Samba a vyberte možnost Mapovat síťovou jednotku . Poté zvolte písmeno jednotky a klikněte na Dokončit.

Po vytvoření mapování disku mohou aplikace přistupovat k souborům ve sdílené složce Samba prostřednictvím písmene jednotky S: . A toto sdílení Samba bude automaticky připojeno, když se přihlásíte k počítači se systémem Windows.

Přístup ke složce Samba Share Folder ve Správci souborů Nautilus v systému Linux

Pokud používáte správce souborů Nautilus, klikněte na Other Locations na levém panelu. V dolní části uvidíte možnost připojit se k serveru . Pro přístup ke sdílení Samba zadejte smb:// následuje IP adresa serveru Samba a stiskněte Enter. Například:

  • smb://192.168.0.102

Zobrazí se seznam sdílených zdrojů na serveru Samba.

Pokud kliknete na soukromou sdílenou složku, budete muset zadat uživatelské jméno a heslo Samba. Pokud klepnete na veřejnou sdílenou složku, zvolte připojení jako Anonymní.

Pokud se zobrazí následující chybová zpráva,

failed to retrieve share list from server

Tuto chybu můžete zkusit opravit připojením sdílení Samba z příkazového řádku, jak je popsáno níže.

Automaticky připojit Samba Share z příkazového řádku v Linuxu

Poznámka :Automatické připojení Samba share se provádí na klientech. Tyto příkazy by měly být spouštěny na klientu Samba, pokud klient Samba používá Linux. Neměli byste to dělat na samotném serveru Samba.

Pokud potřebujete automaticky připojit sdílenou složku Samba při spouštění, můžete připojit pomocí příkazového řádku a poté přidat položku do /etc/fstab soubor. Chcete-li to provést, musíte nainstalovat cifs-utils balíček.

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

Poté vytvořte přípojný bod pro sdílení Samba.

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 připojen na /mnt/samba-private/ adresář.

Chcete-li automaticky připojit sdílení Samba, upravte /etc/fstab soubor.

sudo nano /etc/fstab

Přidejte do souboru následující řádek.

//192.168.0.102/private  /mnt/samba-private   cifs    x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show   0   0

Kde:

  • //192.168.0.102/private :IP adresa serveru Samba a název sdílené položky.
  • /mnt/samba-private :přípojný bod pro sdílení Samba.
  • cifs :typ souborového systému
  • x-systemd.automount :Tato volba říká systemd, aby vytvořil jednotku automatického připojení pro systém souborů. Používáme to, protože zajišťuje, že vzdálený souborový systém je připojen pouze po připojení k síti.
  • _netdev :Toto určuje, že připojení vyžaduje síť.
  • pověření= :Linux by měl hledat přihlašovací údaje v /etc/samba-credential.conf soubor.
  • 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 změnit vlastnictví souborového systému. Normálně používáte vlastní uid a gid , které jsou ve výchozím nastavení obě 1000.
  • x-gvfs-show :Pokud používáte desktopové prostředí GNOME nebo jeho deriváty, můžete tuto možnost použít k zobrazení připojeného souborového systému 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_username
password=samba_password
domain=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č se systémem Linux, sdílená složka Samba se automaticky připojí. Můžete také spustit následující příkaz a připojit sdílenou složku Samba bez restartu.

sudo mount -a

Pokud se zobrazí chyba oprávnění odepřeno a následující řádek můžete najít spuštěním sudo dmesg příkaz,

VFS: cifs_mount failed w/return code = -13

je to pravděpodobně proto, že máte překlep v /etc/samba-credential soubor.

Nemůžete psát do Samba Share?

Výše popsané připojení CIFS vám umožňuje zapisovat do sdílené složky Samba. Pokud se při vytváření souboru zobrazí následující chyba:

Read-only file system

Zkontrolujte, zda jste nastavili writable = yes v konfiguračním souboru Samba. Někdy je sdílená složka Samba na externím pevném disku, pak se ujistěte, že jste externí pevný disk připojili v režimu čtení a zápisu na server Samba. Například jsem připojil svůj btrfs pevný disk s následujícím řádkem v /etc/fstab.

LABEL=5TB   /mnt/5TB   btrfs   defaults   0   0

Ukázalo se, že defaults volba neumožňuje operaci zápisu. Aby bylo možné do něj 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í přípojný bod.

sudo umount /mnt/5TB

A znovu jej připojte.

sudo mount -a

Tip pro odstraňování problémů

Pokud váš server Samba nefunguje podle očekávání, můžete zkontrolovat soubory protokolu pod /var/log/samba/ adresář. Do [global] můžete přidat následující řádek části /etc/samba/smb.conf soubor pro zvýšení úrovně protokolu, pokud chcete protokolovat více informací.

log level = 2

Ubuntu
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nainstalovat a nakonfigurovat sambu na Ubuntu linux?

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat Sambu na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Squid Proxy na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04