in deze tutorial gaan we leren hoe u een Samba-server op Ubuntu installeert en configureert om bestanden op het lokale netwerk te delen. Samba is een gratis en open-source SMB / CIFS protocol implementatie Voor Unix en Linux die het mogelijk maakt voor het delen van bestanden en afdrukken tussen Unix / Linux, Windows en macOS machines in een lokaal netwerk.

Samba wordt meestal geïnstalleerd en draait op Linux., Het bestaat uit verschillende programma ‘ s die verschillende, maar verwante doeleinden dienen, waarvan de belangrijkste twee zijn:

  • smbd: biedt SMB/CIFS service (file sharing en printing), kan ook fungeren als een Windows domeincontroller.
  • nmbd: deze daemon biedt NetBIOS-naamservice, luistert naar naamserververzoeken. Het maakt het ook mogelijk de Samba-server te vinden door andere computers op het netwerk.

hoe de Samba-Server op Ubuntu te installeren

Samba is opgenomen in de meeste Linux-distributies. Om Samba op Ubuntu te installeren, voert u het volgende commando uit in terminal.,

sudo apt install samba samba-common-bin

de laatste stabiele versie die beschikbaar is is 4.12.0, uitgegeven op 3 maart 2019. Om uw Samba-versie te controleren, voert u

smbd --version

Sample output:

Version 4.7.6-Ubuntu

om te controleren of de Samba-service draait, geeft u het volgende commando.

systemctl status smbd nmbd

om deze twee services te starten, geeft u het volgende commando:

sudo systemctl start smbd nmbd

eenmaal gestart, zal smbd luisteren op tcp-poort 139 en 445. nmbd zal luisteren op UDP poort 137 en 138.,

  • TCP 139: gebruikt voor het delen van bestanden en printers en andere bewerkingen.
  • TCP 445: de NetBIOS-less CIFS poort.
  • UDP 137: gebruikt voor NetBIOS-netwerk browsen.
  • UDP 138: gebruikt voor NetBIOS-naamservice.

Als u de UFW firewall op Ubuntu hebt ingeschakeld, moet u de bovenstaande poorten in de firewall Openen met het volgende commando.

sudo ufw allow samba

Create a Private Samba Share

In deze sectie zullen we zien hoe u een private Samba share kunt maken waarbij de client gebruikersnaam en wachtwoord moet invoeren om toegang te krijgen., Het belangrijkste samba-configuratiebestand bevindt zich op: /etc/samba/smb.conf. U kunt het bewerken in terminal met een opdrachtregel teksteditor zoals nano.

sudo nano /etc/samba/smb.conf

in de sectie controleer of de waarde van workgroup dezelfde is bij de werkgroepinstellingen van Windows-computers.,

workgroup = WORKGROUP

kunt U de instelling op uw Windows-computer door te gaan naar: Control Panel > System and Security > System.

scroll dan naar beneden naar de onderkant van het bestand. (In nano-teksteditor kunt u dat bereiken door op CTRL+W te drukken en vervolgens CTRL+Vte drukken. ) Voeg een nieuwe sectie toe zoals hieronder.,

uitleg:

  • Private is de mapnaam die op het Windows-netwerk wordt weergegeven.
  • het commentaar is een beschrijving van de gedeelde map.
  • de parameter pad specificeert het pad naar de gedeelde map. Ik gebruik /srv/samba/private/ als voorbeeld. U kunt ook een map in uw persoonlijke map gebruiken.
  • browseable = yes: laat andere computers in het netwerk De Samba-server en Samba-share zien., Indien ingesteld op nee, moeten gebruikers de naam van de Samba-server kennen en vervolgens handmatig een pad invoeren in de Bestandsbeheer om toegang te krijgen tot de gedeelde map.
  • guest ok = no: Gasttoegang uitschakelen. Met andere woorden, u moet gebruikersnaam en wachtwoord invoeren op de clientcomputer om toegang te krijgen tot de gedeelde map.
  • writable = yes: verleent zowel lees-als schrijfrechten aan clients.
  • valid users = @samba: alleen gebruikers in de samba-groep hebben toegang tot deze samba-share.

het bestand opslaan en sluiten., (Om het bestand in de nano-teksteditor op te slaan, drukt u op Ctrl+O en drukt u vervolgens op Enter om de te schrijven bestandsnaam te bevestigen. Om het bestand te sluiten, drukt u op Ctrl+X.) Nu moeten we een Samba-gebruiker maken. Eerst moeten we een standaard Linux gebruikersaccount aanmaken met het volgende commando. Vervang username door de gewenste gebruikersnaam.

sudo adduser username

u wordt gevraagd een Unix-wachtwoord in te stellen., Daarna moet u ook een apart Samba-wachtwoord instellen voor de nieuwe gebruiker met het volgende commando:

sudo smbpasswd -a username

maak de samba-groep aan.

sudo groupadd samba

en voeg deze gebruiker toe aan de samba-groep.

sudo gpasswd -a username samba

maak de privé-gedeelde map aan.

sudo mkdir -p /srv/samba/private/

De samba-groep moet lees -, schrijf-en uitvoerrechten hebben op de gedeelde map. U kunt deze machtigingen verlenen door het volgende commando uit te voeren., (Als uw systeem het setfacl commando niet heeft, moet u het acl pakket installeren met sudo apt install acl.)

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

voer vervolgens het volgende commando uit om te controleren of er syntactische fouten zijn.

testparm

alles wat u nu moet doen is smbd herstarten en nmbd daemon.,

sudo systemctl restart smbd nmbd

hoe een Samba publieke Share te maken zonder authenticatie

om een publieke share te maken zonder gebruikersnaam en wachtwoord, moet aan de volgende voorwaarden worden voldaan.

  • Set security = user in de algemene sectie van het Samba-configuratiebestand. Hoewel u een publieke share kunt maken met desecurity = share modus, maar deze beveiligingsmodus is verouderd. Het wordt sterk aangeraden om share mode te vermijden.
  • Setmap to guest = bad user in de algemene sectie van het Samba-configuratiebestand., Dit zorgt ervoor dat smbd een gastaccount gebruikt om clients te authenticeren die geen account hebben op de Samba server. Aangezien het een gastaccount is, hoeven Samba-klanten geen wachtwoord in te voeren.
  • Setguest ok = yes in de share definitie om gast toegang toe te staan.
  • verleen lees -, schrijf – en uitvoerrechten van de openbare map aan hetnobody account, dat het standaard gastaccount is.

in feite is aan de eerste twee voorwaarden al voldaan, aangezien Samba standaard deze twee instellingen gebruikt.,

Hier is een stap-voor-stap handleiding om een publieke share te maken. Open en bewerk eerst het Samba configuratiebestand.

sudo nano /etc/samba/smb.conf

in de sectie controleer of de waarde van workgroup dezelfde is bij de werkgroepinstellingen van Windows-computers.

workgroup = WORKGROUP

kunt U de instelling op uw Windows-computer door te gaan naar: Control Panel > System and Security > System.,

scroll dan naar beneden naar de onderkant van het bestand en plak de volgende regels.

sla het bestand op en sluit het. Maak vervolgens de /srv/samba/public/ map aan.

sudo mkdir -p /srv/samba/public

controleer dan of het nobody account de rechten voor lezen, schrijven en uitvoeren heeft op de openbare map door het volgende commando uit te voeren. (Als uw systeem het setfacl commando niet heeft, moet u het acl pakket installeren met sudo apt install acl.,)

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

herstart smbd en nmbd.

sudo systemctl restart smbd nmbd

toegang krijgen tot gedeelde Samba-map vanuit Windows

op een Windows-computer die zich in hetzelfde netwerk bevindt, open de bestandsverkenner en klik op Network in het linkerdeelvenster. Als u het volgende bericht ziet, moet u op het bericht klikken en network discovery en file sharing inschakelen.

File sharing is turned off. Some network computers and devices might not be visible.

voer vervolgens \\ In, gevolgd door het IP-adres van de Samba-server in de adresbalk van de bestandsverkenner, als volgt: \\192.168.0.102., U ziet een lijst met gedeelde bronnen op de Samba-server.

dubbelklik vervolgens op de gedeelde map. Om toegang te krijgen tot de private share, moet je de samba gebruikersnaam en wachtwoord invoeren. U hoeft dit niet te doen om toegang te krijgen tot openbare delen.

eenmaal verbonden, kunt u bestanden lezen, schrijven en verwijderen in de gedeelde map van Samba.

verbindingsfout

Als u de volgende fout krijgt:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

kunt u proberen verbinding te maken met de Samba share vanaf de opdrachtprompt., Open een opdrachtprompt en voer de volgende opdracht uit om de huidige Samba-sessie te sluiten.

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

maak vervolgens verbinding met de samba share met het volgende commando:

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

zodra het bovenstaande commando succesvol is voltooid, ga naar het tabblad Netwerk in de bestandsverkenner en nu zou je toegang moeten hebben tot de Samba share.

stationstoewijzing op Windows

een functie van het Windows-besturingssysteem is de mogelijkheid om een stationsletter (zoals S:) toe te wijzen aan een externe map., Als u de stationsletter S: wilt toewijzen aan de samba-share, klikt u met de rechtermuisknop op de gedeelde samba-map en selecteert u netwerkstation toewijzen. Kies vervolgens een stationsletter en klik op Voltooien.

zodra de schijftoewijzing is vastgesteld, kunnen toepassingen toegang krijgen tot de bestanden in de samba-share via de schijfletter S:. En deze Samba-share wordt automatisch gekoppeld wanneer u zich aanmeldt op uw Windows-computer.,

toegang tot Samba-gedeelde map in Nautilus-Bestandsbeheer onder Linux

Als u Nautilus-bestandsbeheer gebruikt, klikt u op Other Locations in het linkerdeelvenster. Onderaan ziet u een optie om verbinding te maken met de server. Om toegang te krijgen tot uw samba-share, typt u smb:// gevolgd door het IP-adres van de Samba-server en drukt u op Enter. Bijvoorbeeld:

  • smb://192.168.0.102

u ziet een lijst met gedeelde bronnen op de Samba-server.,

Als u op de gedeelde privémap klikt, moet u de Samba-gebruikersnaam en het wachtwoord invoeren. Als u op de openbare gedeelde map klikt, kiest u ervoor om anoniem verbinding te maken.

Samba Share automatisch aankoppelen vanaf de opdrachtregel op Linux

Als u de Samba share automatisch aankoppelt tijdens het opstarten, kunt u de opdrachtregel gebruiken om de samba share aan te koppelen en vervolgens een regel toevoegen in het /etc/fstab bestand. Om dat te doen, moet je het cifs-utils pakket installeren.,

CentOS / RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

maak vervolgens een koppelpunt aan voor de samba-share.

sudo mkdir /mnt/samba-private

nu kunt u het volgende commando gebruiken om een privé gedeelde map aan te koppelen.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Het zal u vragen om het Samba-wachtwoord in te voeren. Daarna zal het gemount worden op /mnt/samba-private/ map.

om de samba-share automatisch te mounten, Bewerk /etc/fstab bestand.

sudo nano /etc/fstab

voeg de volgende regel toe aan het bestand.,

waarbij:

  • / / 192.168.0.102 / private: het IP-adres van de Samba-server en de naam van de share.
  • / mnt / samba-private: koppelpunt voor de samba-share.
  • cifs: bestandssysteemtype
  • x-systemd.automount: deze optie vertelt systemd om een automount unit aan te maken voor het bestandssysteem. We gebruiken dit omdat het ervoor zorgt dat het externe bestandssysteem pas gemount wordt nadat er netwerktoegang is.
  • _netdev: Hiermee geeft u aan dat het koppelen netwerk vereist.
  • credentials=: Linux moet zoeken naar credentials in het /etc/samba-credential.conf bestand.,
  • uid = 1000, gid = 1000: standaard zou het aangekoppelde bestandssysteem eigendom zijn van de root gebruiker. We gebruiken uid en gid om de eigendom van het bestandssysteem te veranderen. Normaal gesproken gebruik je je eigen uid en gid, die standaard allebei 1000 zijn.
  • x-gvfs-show: Als u GNOME-bureaubladomgeving of zijn derivaten gebruikt, kunt u deze optie gebruiken om het aangekoppelde bestandssysteem in de Bestandsbeheer te tonen.

het bestand opslaan en sluiten. Maak vervolgens het credential bestand.

sudo nano /etc/samba-credential.conf

voeg de volgende regels toe aan het bestand.

username=your_samba_usernamepassword=samba_passworddomain=WORKGROUP

het bestand opslaan en sluiten., Zorg ervoor dat alleen de root gebruiker dit bestand kan lezen.

sudo chmod 600 /etc/samba-credential.conf

Als u uw Linux-computer nu herstart, wordt de samba-share automatisch aangekoppeld.

kan niet naar de Samba-Share schrijven?

met de hierboven beschreven CIFS mount kun je naar de samba share schrijven. Als u de volgende fout ziet bij het aanmaken van een bestand:

Read-only file system

Controleer of u writable = yes in het Samba-configuratiebestand hebt ingesteld., Soms staat de gedeelde Samba-map op een externe harde schijf, zorg er dan voor dat u de externe harde schijf in lees-schrijfmodus op de Samba-server koppelt. Bijvoorbeeld, Ik heb mijn btrfs harde schijf gemount met de volgende regel in /etc/fstab.

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

Het blijkt dat de optie defaults schrijfbewerking niet toestaat. Om het schrijfbaar te maken, voeg rw optie toe.

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

koppel dan de harde schijf af. Je moet je eigen mount point gebruiken.

sudo umount /mnt/5TB

en koppel het opnieuw aan.,

sudo mount -a

Tip voor probleemoplossing

als uw Samba-server niet werkt zoals verwacht, kunt u de logbestanden controleren onder /var/log/samba/ map. U kunt de volgende regel toevoegen in het gedeelte van /etc/samba/smb.conf bestand om het logniveau te verhogen als u meer informatie wilt loggen.

log level = 2

inpakken

dat is het! Ik hoop dat deze tutorial u heeft geholpen bij het opzetten van Samba-server op Ubuntu. Zoals altijd, als je dit bericht nuttig vond, abonneer je dan op onze gratis nieuwsbrief., En u kunt ook het volgende artikel lezen om printer te delen op het lokale netwerk.

  • Set Up CUPS Print Server op Ubuntu (Bonjour, IPP, Samba, AirPrint)
beoordeel deze tutorial

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *