Hoe Samba installeren en configureren op CentOS 7

Samba is een vrije en open-source herimplementatie van het SMB/CIFS netwerkprotocol voor het delen van bestanden, waarmee eindgebruikers toegang kunnen krijgen tot bestanden, printers en andere gedeelde bronnen.

In deze tutorial laten we zien hoe u Samba installeert op CentOS 7 en hoe u het configureert als een standalone server om bestanden te delen tussen verschillende besturingssystemen via een netwerk.

We maken de volgende Samba shares en gebruikers aan.

Gebruikers:

  • sadmin – Een administratieve gebruiker met lees- en schrijftoegang tot alle shares.
  • josh – Een gewone gebruiker met zijn eigen privé file share.

Shares:

  • users – Deze share zal toegankelijk zijn met lees- en schrijfrechten voor alle gebruikers.
  • josh – Deze share is alleen toegankelijk voor de gebruikers josh en sadmin met lees- en schrijfrechten.

De bestandsshares zijn toegankelijk vanaf alle apparaten op uw netwerk. Later in de tutorial zullen we ook gedetailleerde instructies geven over hoe verbinding te maken met de Samba server vanaf Linux, Windows en macOS clients.

Voorvereisten #

Voor u begint, moet u ingelogd zijn op uw CentOS 7 systeem als een gebruiker met sudo privileges.

Installatie van Samba op CentOS #

Samba is beschikbaar vanuit de standaard CentOS repositories. Voer het volgende commando uit om het op uw CentOS-systeem te installeren:

sudo yum install samba samba-client

Als de installatie voltooid is, start u de Samba services en zet u ze aan om automatisch te starten bij het opstarten van het systeem:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

De smbd service biedt services voor het delen van bestanden en printen, en luistert op TCP-poorten 139 en 445. De nmbd service levert NetBIOS over IP naming services aan clients en luistert op UDP poort 137.

Configuratie Firewall #

Nu Samba is geïnstalleerd en draait op uw CentOS machine, dient u uw firewall te configureren en de benodigde poorten te openen. Voer hiervoor de volgende commando’s uit:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

Samba gebruikers en directory structuur aanmaken #

Voor een betere onderhoudbaarheid en flexibiliteit in plaats van de standaard home directories (/home/user) te gebruiken, zullen alle Samba directories en data in de /samba directory staan.

Start met het aanmaken van de /samba directory:

sudo mkdir /samba

Maak een nieuwe groep aan met de naam sambashare. Later zullen we alle Samba gebruikers aan deze groep toevoegen.

sudo groupadd sambashare 

Stel het eigendom van de /samba directory groep in op sambashare:

sudo chgrp sambashare /samba

Samba gebruikt het Linux gebruikers en groep permissie systeem, maar het heeft zijn eigen authenticatie mechanisme los van de standaard Linux authenticatie. We zullen de gebruikers aanmaken met het standaard Linux useradd gereedschap en vervolgens het gebruikerswachtwoord instellen met het smbpasswd hulpprogramma.

Zoals we in de inleiding al zeiden, maken we een gewone gebruiker aan die toegang heeft tot zijn eigen privé file share en een administratieve account met lees- en schrijftoegang tot alle shares op de Samba server.

Samba gebruikers aanmaken #

Om een nieuwe gebruiker met de naam josh aan te maken, gebruikt u het volgende commando:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

De useradd opties hebben de volgende betekenis:

Maak de home directory van de gebruiker aan en stel het eigendom van de directory in op gebruiker josh en groep sambashare:

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

Het volgende commando voegt de setgid bit toe aan de /samba/josh directory, zodat de nieuw aangemaakte bestanden in deze directory de groep van de bovenliggende directory erven. Op deze manier, maakt het niet uit welke gebruiker een nieuw bestand maakt, het bestand zal groep-eigenaar sambashare hebben. Als u bijvoorbeeld de rechten van de directory niet instelt op 2770 en de gebruiker sadmin maakt een nieuw bestand aan, dan zal de gebruiker josh dit bestand niet kunnen lezen/schrijven.

sudo chmod 2770 /samba/josh

Voeg de josh gebruikersaccount toe aan de Samba database door het gebruikerswachtwoord in te stellen:

sudo smbpasswd -a josh

U wordt gevraagd om het gebruikerswachtwoord in te voeren en te bevestigen.

New SMB password:Retype new SMB password:Added user josh.

Wanneer het wachtwoord is ingesteld, activeer dan de Samba account door te typen:

sudo smbpasswd -e josh
Enabled user josh.

Om nog een gebruiker aan te maken, herhaalt u hetzelfde proces als bij het aanmaken van de gebruiker josh.

Nog een gebruiker en groep sadmin aanmaken. Alle leden van deze groep krijgen administratieve rechten. Als u later een andere gebruiker administratieve rechten wilt geven, voegt u die gebruiker gewoon toe aan de groep sadmin.

Maak de administratieve gebruiker aan door te typen:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Het bovenstaande commando zal ook een groep sadmin aanmaken en de gebruiker toevoegen aan zowel de sadmin als de sambashare groepen.

Stel een wachtwoord in en activeer de gebruiker:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

Maak vervolgens de Users share directory aan:

sudo mkdir /samba/users

Stel het eigendom van de directory in op gebruiker sadmin en group sambashare:

sudo chown sadmin:sambashare /samba/users

Deze directory zal toegankelijk zijn voor alle geauthenticeerde gebruikers. Het volgende commando configureert schrijf/leestoegang voor leden van de sambashare groep in de /samba/users directory:

sudo chmod 2770 /samba/users

Samba Shares configureren #

Open het Samba configuratiebestand en voeg de secties toe:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf

De opties hebben de volgende betekenis:

  • en – De namen van de shares die u zult gebruiken wanneer u inlogt.
  • path – Het pad naar de share.
  • browseable – Of de share moet worden vermeld in de lijst met beschikbare shares. Door de instelling op no kunnen andere gebruikers de share niet zien.
  • read only – Of de gebruikers in de valid users lijst in staat zijn om naar deze share te schrijven.
  • force create mode – Hiermee stelt u de rechten in voor de nieuw aangemaakte bestanden in deze share.
  • force directory mode – Stelt de permissies in voor de nieuw aangemaakte mappen in deze share.
  • valid users – Een lijst van gebruikers en groepen die toegang hebben tot de share. Groepen worden voorafgegaan door het symbool @.

Voor meer informatie over de beschikbare opties, zie de documentatiepagina over het Samba-configuratiebestand.

Start na afloop de Samba-service opnieuw met:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

In de volgende secties laten we zien hoe u verbinding maakt met een Samba-share vanaf Linux-, macOS- en Windows-clients.

Verbinden met een Samba Share vanuit Linux #

Linux-gebruikers kunnen toegang krijgen tot de Samba share vanaf de commandoregel, met behulp van de bestandsmanager of door de Samba share te mounten.

De smbclient client gebruiken #

smbclient is een tool waarmee u toegang kunt krijgen tot Samba vanaf de commandoregel. Het pakket smbclient is op de meeste Linux-distro’s niet voorgeïnstalleerd, dus u zult het met de pakketbeheerder van uw distributie moeten installeren.

Om smbclient op Ubuntu en Debian te installeren, voert u uit:

sudo apt install smbclient

Om smbclient op CentOS en Fedora te installeren, voert u uit:

sudo yum install samba-client

De syntaxis om een Samba-share te openen is als volgt:

mbclient //samba_hostname_or_server_ip/share_name -U username

Om bijvoorbeeld verbinding te maken met een share met de naam josh op een Samba server met IP adres 192.168.121.118 als gebruiker josh voert u uit:

smbclient //192.168.121.118/josh -U josh

U wordt gevraagd om het wachtwoord van de gebruiker in te voeren.

Enter WORKGROUP\josh's password:

Als u het wachtwoord heeft ingevoerd, bent u ingelogd op de Samba command line interface.

Try "help" to get a list of possible commands.smb: \>

Mounting the Samba share #

Om een Samba share op Linux te mounten, moet u eerst het cifs-utils pakket installeren.

Op Ubuntu en Debian draait u:

sudo apt install cifs-utils

Op CentOS en Fedora draait u:

sudo yum install cifs-utils

Maak vervolgens een mount-punt aan:

sudo mkdir /mnt/smbmount

Mount de share met het volgende commando:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Om bijvoorbeeld een share met de naam josh op een Samba-server met IP-adres 192.168.121.118 te mounten als gebruiker josh op het /mnt/smbmount mount-punt, voert u het volgende uit:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

U wordt gevraagd om het gebruikerswachtwoord in te voeren.

Password for josh@//192.168.121.118/josh: ********

Gebruik GUI #

Files, de standaard file manager in Gnome heeft een ingebouwde optie om toegang te krijgen tot Samba shares.

  1. Open Files en klik op “Other Locations” in de sidebar.
  2. In “Connect to Server” voert u het adres van de Samba share in, in het volgende formaat smb://samba_hostname_or_server_ip/sharename.
  3. Klik op “Verbinden” en het volgende scherm verschijnt:

  4. Selecteer “Geregistreerde gebruiker”, voer de Samba gebruikersnaam en het wachtwoord in en klik op “Verbinden”.
  5. De bestanden op de Samba server worden getoond.

Verbinding maken met een Samba Share vanuit macOS #

In macOS heeft u toegang tot de Samba Shares via de opdrachtregel of via de standaard bestandsbeheerder Finder van macOS. De volgende stappen laten zien hoe u toegang krijgt tot de share met behulp van Finder.

  1. Open “Finder”, selecteer “Go” en klik op “Connect To”.
  2. In “Connect To” voert u het adres van de Samba share in het volgende formaat in smb://samba_hostname_or_server_ip/sharename.

  3. Klik op “Verbinden” en het volgende scherm verschijnt:

  4. Selecteer “Geregistreerde gebruiker”, voer de Samba gebruikersnaam en het wachtwoord in en klik op “Verbinden”.
  5. De bestanden op de Samba server worden getoond.

Verbinden met een Samba Share vanuit Windows #

Windows gebruikers hebben ook een optie om verbinding te maken met de Samba share vanaf zowel de command line als de GUI. De onderstaande stappen laten zien hoe u toegang krijgt tot de share met behulp van de Windows File Explorer.

  1. Open File Explorer en klik in het linkerdeelvenster met de rechtermuisknop op “Deze PC”.
  2. Selecteer “Kies een aangepaste netwerklocatie” en klik vervolgens op “Volgende”.
  3. In “Internet- of netwerkadres” voert u het adres van de Samba-share in het volgende formaat in \samba_hostname_or_server_ip\sharename.

  4. Klik op “Volgende” en u wordt gevraagd de inloggegevens in te voeren zoals hieronder is aangegeven:

  5. In het volgende venster kunt u een aangepaste naam voor de netwerklocatie invoeren. De standaardnaam wordt door de Samba-server overgenomen.

  6. Klik op “Next” (Volgende) om naar het laatste scherm van de wizard voor het instellen van de verbinding te gaan.
  7. Klik op “Finish” (Voltooien) en de bestanden op de Samba-server worden getoond.

Conclusie #

In deze tutorial hebt u geleerd hoe u een Samba-server op CentOS 7 installeert en hoe u verschillende typen gedeelde en gebruikers aanmaakt. We hebben u ook laten zien hoe u verbinding kunt maken met de Samba-server vanaf Linux-, macOS- en Windows-apparaten.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.