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+V
te 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 omshare
mode te vermijden. - Set
map to guest = bad user
in de algemene sectie van het Samba-configuratiebestand., Dit zorgt ervoor datsmbd
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. - Set
guest ok = yes
in de share definitie om gast toegang toe te staan. - verleen lees -, schrijf – en uitvoerrechten van de openbare map aan het
nobody
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)