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.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo 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=samba
firewall-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/josh
sudo 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 sadmin
sudo 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
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 opno
kunnen andere gebruikers de share niet zien. -
read only
– Of de gebruikers in devalid 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.service
sudo 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.
- Open Files en klik op “Other Locations” in de sidebar.
- In “Connect to Server” voert u het adres van de Samba share in, in het volgende formaat
smb://samba_hostname_or_server_ip/sharename
. - Klik op “Verbinden” en het volgende scherm verschijnt:
- Selecteer “Geregistreerde gebruiker”, voer de Samba gebruikersnaam en het wachtwoord in en klik op “Verbinden”.
- 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.
- Open “Finder”, selecteer “Go” en klik op “Connect To”.
- In “Connect To” voert u het adres van de Samba share in het volgende formaat in
smb://samba_hostname_or_server_ip/sharename
.
- Klik op “Verbinden” en het volgende scherm verschijnt:
- Selecteer “Geregistreerde gebruiker”, voer de Samba gebruikersnaam en het wachtwoord in en klik op “Verbinden”.
- 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.
- Open File Explorer en klik in het linkerdeelvenster met de rechtermuisknop op “Deze PC”.
- Selecteer “Kies een aangepaste netwerklocatie” en klik vervolgens op “Volgende”.
- In “Internet- of netwerkadres” voert u het adres van de Samba-share in het volgende formaat in
\samba_hostname_or_server_ip\sharename
.
- Klik op “Volgende” en u wordt gevraagd de inloggegevens in te voeren zoals hieronder is aangegeven:
- In het volgende venster kunt u een aangepaste naam voor de netwerklocatie invoeren. De standaardnaam wordt door de Samba-server overgenomen.
- Klik op “Next” (Volgende) om naar het laatste scherm van de wizard voor het instellen van de verbinding te gaan.
- 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.