GNU/Linux >> Znalost Linux >  >> Cent OS

Nastavte Samba Server na CentOS 8/RHEL 8 pro sdílení souborů

V tomto tutoriálu se naučíme, jak nainstalovat a nakonfigurovat server samba na CentOS 8/RHEL8 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 počítači se systémy 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 Samba Server na CentOS 8/RHEL8

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

sudo dnf install samba

Chcete-li zkontrolovat verzi Samby, spusťte

smbd --version

Ukázkový výstup:

Version 4.10.4

Poté zadejte následující příkaz ke spuštění smbd a nmbd službu.

sudo systemctl start smb nmb

Povolit automatické spouštění při spouštění.

sudo systemctl enable smb nmb

Chcete-li zkontrolovat, zda služba Samba běží, zadejte následující příkazy.

systemctl status smb nmb

Po spuštění smb démon 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.

Spuštěním následujícího příkazu otevřete výše uvedené porty ve bráně firewall.

sudo firewall-cmd --permanent --add-service=samba

Znovu načtěte démona firwall, aby se změna projevila.

sudo systemctl reload firewalld

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

Ve výchozím nastavení jsou 4 sekce:

  • globální
  • domovů
  • tiskárny
  • tisk $

V [global] sekce, workgroup je standardně nastaveno na SAMBA.

workgroup = SAMBA

Zkontrolujte hodnotu workgroup je stejné s nastavením pracovní skupiny počítačů se systémem Windows. Nastavení najdete na počítači se systémem Windows tak, že přejdete na Control Panel> System and Security> System .

V tomto článku budu používat výchozí název pracovní skupiny Windows.

workgroup = WORKGROUP

Doporučuje se použít hosts allow parametr pro vytvoření seznamu povolených IP adres, aby se zabránilo neoprávněnému přístupu. Přidejte následující řádek do [global] sekce, která umožní localhost a klienty v 192.168.0.0/24 síť pro přístup ke službám Samba. Pokud používáte jiný rozsah sítě, nahraďte 192.168.0 s vlastními.

hosts allow = 127. 192.168.0

Tip:Můžete také použít zápis CIDR pro rozsah sítě, jako je hosts allow = 127.0.0.1 192.168.0.0/24

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

Kde:

  • Private je název složky, který se zobrazí na počítači se systémem Windows. Můžete použít jakékoli jméno.
  • 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.
  • 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 samba skupina.

sudo groupadd samba

A přidejte tohoto uživatele do samba skupina.

sudo gpasswd -a username samba

Vytvořte soukromou sdílenou složku.

sudo mkdir -p /srv/samba/private/

samba skupina 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.

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

Tento adresář také musíme označit štítkem samba_share_t takže SELinux umožňuje Sambě číst a zapisovat do něj.

sudo chcon -t samba_share_t /srv/samba/private/ -R

Poté spusťte následující příkaz a zkontrolujte, zda se nevyskytují syntaktické chyby.

testparm

Konfigurační soubory Samby se automaticky znovu načítají každou minutu, pokud se změní. smbd můžete ručně restartovat a nmbd démona, aby se změny projevily okamžitě.

sudo systemctl restart smb nmb

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.
  • 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.

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 .

Přidejte následující řádek do [global] sekce.

map to guest = bad user

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/public/ složka.

sudo mkdir -p /srv/samba/public

Pokud chcete povolit operaci zápisu do veřejné sdílené složky, musíte změnit oprávnění této složky na 777.

sudo chmod 777 /srv/samba/public/ -R

Tento adresář také musíme označit štítkem samba_share_t takže SELinux umožňuje Sambě číst a zapisovat do něj.

sudo chcon -t samba_share_t /srv/samba/public/ -R

Restartujte smbd a nmbd.

sudo systemctl restart smb nmb

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ému sdílení 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 Samaba 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í disku

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í.

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

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 nám to dává možnost připojit vzdálený souborový systém 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í.

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ář. Chcete-li protokolovat více informací, můžete přidat následující řádek do sekce [global] souboru /etc/samba/smb.conf a zvýšit úroveň protokolu.

log level = 2

Cent OS
  1. Jak nainstalovat Puppet na RHEL 8/CentOS 8

  2. Jak nastavit děti-max pro službu udev v CentOS/RHEL 7

  3. Jak nastavit VNC Server pro nového uživatele v CentOS/RHEL 5

  1. Jak vytvořit soubor Kickstart pro CentOS/Fedora/RedHat (RHEL)

  2. CentOS / RHEL 7 :Jak otevřít port firewallu pro server Samba pomocí FirewallD

  3. Jak nastavit proměnné prostředí pro službu systemd v CentOS/RHEL 7

  1. Jak nainstalovat OpenLiteSpeed ​​Web Server na CentOS 8/RHEL 8

  2. Konfigurace serveru Samba v CentOS 6.5

  3. Jak nastavit ProjectSend nástroj pro sdílení souborů na CentOS 7