Del en mappe fra Ubuntu 26.04 LTS til Windows med Samba – kun via kommandolinjen
Det er meget almindeligt at have både Linux- og Windows-maskiner på samme netværk. Hvis en Windows-pc skal kunne læse filer fra en Ubuntu-maskine, er Samba den klassiske løsning.
I denne guide opretter vi en delt mappe på Ubuntu 26.04 LTS, beskytter den med brugernavn og password og giver Windows-brugeren read-only adgang.
Hele opsætningen foretages fra kommandolinjen.
Forbindelsen kommer i praksis til at se sådan ud:
Ubuntu 26.04 LTS
/srv/samba/deling
|
| SMB
|
v
Windows 11
Z:
Windows kan altså læse filerne, men ikke skrive, ændre eller slette dem.
Samba og SMB
Windows anvender protokollen SMB – Server Message Block til deling af filer og mapper over netværket.
På Linux kan Samba levere SMB-services, så Windows-klienter kan tilgå filer på Linux-maskinen. Ubuntu beskriver netop Samba som løsningen til fil- og printerdeling mellem Ubuntu og Windows. (documentation.ubuntu.com)
1. Find Ubuntu-maskinens IP-adresse
Åbn Terminal på Ubuntu og skriv:
ip addr
En kortere mulighed er:
hostname -I
Maskinen vil typisk have en adresse i stil med:
192.168.1.50
Denne guide bruger:
192.168.1.50
Erstat adressen med IP-adressen på din egen Ubuntu-maskine.
2. Opdater Ubuntu og installer Samba
Opdater først pakkelisten:
sudo apt update
Installer derefter Samba:
sudo apt install samba
Du kan kontrollere installationen med:
smbd --version
Ubuntu installerer Samba via de almindelige repositories med apt. (documentation.ubuntu.com)
3. Opret mappen der skal deles
Vi placerer filerne under:
/srv/samba/
Opret mappen:
sudo mkdir -p /srv/samba/deling
Canonical anvender selv /srv/samba/... i sin Samba-dokumentation og anbefaler /srv til data, der stilles til rådighed som en service. (documentation.ubuntu.com)
4. Opret en bruger til filadgangen
Vi bruger en særskilt konto med navnet:
smbuser
Kontoen skal ikke kunne logge ind interaktivt på Ubuntu:
sudo useradd -M -s /usr/sbin/nologin smbuser
Parameteren -M betyder, at der ikke oprettes en home directory.
Brugeren findes nu lokalt på Linux-systemet, men har endnu ikke noget Samba-password.
5. Opret Samba-passwordet
Tilføj brugeren til Sambas brugerdatabase:
sudo smbpasswd -a smbuser
Du bliver bedt om at angive password:
New SMB password:
Retype new SMB password:
Det er dette password, Windows-maskinen senere skal anvende.
Aktiver derefter Samba-brugeren:
sudo smbpasswd -e smbuser
6. Konfigurer Linux-rettighederne
Sæt mappens ejer og gruppe:
sudo chown root:smbuser /srv/samba/deling
Tildel derefter permissions:
sudo chmod 2750 /srv/samba/deling
Det begrænser adgangen til de brugere, der har de nødvendige rettigheder.
Derudover konfigurerer vi senere Samba-sharet som read-only, så Windows-klienten heller ikke får skriverettigheder gennem SMB.
7. Opret en fil vi kan teste med
Lav en simpel tekstfil:
echo "Denne fil kommer fra Ubuntu" | sudo tee /srv/samba/deling/test.txt
Kontroller filen med:
ls -l /srv/samba/deling
Du bør få noget i retning af:
-rw-r--r-- 1 root smbuser ... test.txt
8. Tag backup af Samba-konfigurationen
Sambas primære konfigurationsfil findes her:
/etc/samba/smb.conf
Lav en sikkerhedskopi, før vi ændrer den:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
/etc/samba/smb.conf er den normale konfigurationsfil for Samba på Ubuntu. (documentation.ubuntu.com)
9. Opret Samba-sharet
Tilføj den nødvendige konfiguration direkte fra terminalen:
sudo tee -a /etc/samba/smb.conf > /dev/null <<'EOF'
[deling]
path = /srv/samba/deling
browsable = yes
read only = yes
guest ok = no
valid users = smbuser
EOF
Sharet får navnet:
deling
Linjen:
path = /srv/samba/deling
angiver den lokale mappe, der deles.
Denne linje:
browsable = yes
gør sharet synligt for SMB-klienter.
Med:
read only = yes
er klientadgangen skrivebeskyttet.
Denne indstilling:
guest ok = no
betyder, at anonym adgang ikke accepteres.
Til sidst begrænser:
valid users = smbuser
adgangen til brugeren smbuser.
Parametrene følger Sambas almindelige smb.conf-syntaks. (devel.samba.org)
10. Kontroller konfigurationen
Test smb.conf, før servicen genstartes:
sudo testparm
Ved en korrekt konfiguration vil du blandt andet se:
Loaded services file OK.
Hvis der er fejl i konfigurationsfilen, vil testparm normalt afsløre dem.
11. Genstart Samba
Genstart Samba-servicen:
sudo systemctl restart smbd
Kontroller status:
systemctl status smbd --no-pager
Servicen bør vises som:
Active: active (running)
Ubuntu 26.04 leveres med Samba 4.23. På nye Ubuntu 26.04-installationer er NetBIOS deaktiveret som standard, så denne løsning behøver ikke NetBIOS-navneopslag. (documentation.ubuntu.com)
12. Tillad Samba gennem UFW
Kontroller først, om firewall er aktiv:
sudo ufw status
Hvis UFW er aktiv, kan Samba tillades med:
sudo ufw allow Samba
Ubuntu leverer en UFW application profile til Samba, så porte og protokoller ikke behøver at blive angivet enkeltvis. (documentation.ubuntu.com)
På et almindeligt LAN er det endnu bedre at begrænse reglen til det lokale subnet.
Hvis subnettet eksempelvis er:
192.168.1.0/24
kan reglen oprettes sådan:
sudo ufw allow from 192.168.1.0/24 to any app Samba
Så accepteres Samba-trafik kun fra det angivne netværk. (documentation.ubuntu.com)
13. Bekræft at SMB lytter
Kontroller sockets:
sudo ss -tlnp | grep smbd
SMB anvender normalt TCP-port:
445
14. Opret forbindelsen fra Windows
Gå nu over på Windows-pc’en og åbn:
Command Prompt
Vi mapper Samba-sharet til drevbogstavet:
Z:
Kør:
net use Z: \\192.168.1.50\deling /user:smbuser *
Stjernen * betyder, at Windows spørger efter passwordet interaktivt, så det ikke skrives direkte i kommandoen.
Når godkendelsen lykkes, bør Windows returnere:
The command completed successfully.
net use bruges i Windows til at oprette og administrere forbindelser til delte netværksressourcer. (learn.microsoft.com)
15. Læs filerne fra Windows
Skift først til det nye drev:
Z:
Vis filerne:
dir
Testfilen bør være synlig:
test.txt
Læs den direkte:
type test.txt
Resultatet bliver:
Denne fil kommer fra Ubuntu
Kommandoen dir viser filer og undermapper på det angivne drev eller i den angivne mappe. (learn.microsoft.com)
16. Kontrollér at Windows ikke kan skrive
Prøv at oprette en fil:
echo TEST > Z:\windows-test.txt
Forsøget bør blive afvist, fordi sharet indeholder:
read only = yes
Windows kan dermed læse indholdet, men ikke oprette, ændre eller slette filer i sharet.
17. Fjern forbindelsen igen
Når forbindelsen ikke længere skal bruges:
net use Z: /delete
Det fjerner Windows-forbindelsen til Samba-sharet. (learn.microsoft.com)
Hvis noget ikke virker
Hvis Windows ikke kan nå Ubuntu-maskinen, kan forbindelsen først kontrolleres med:
ping 192.168.1.50
På Ubuntu kan Samba-status derefter kontrolleres:
sudo systemctl status smbd
og SMB-porten kan kontrolleres med:
sudo ss -tlnp | grep :445
Mistænker du en fejl i Samba-konfigurationen, så brug:
sudo testparm
Er brugernavn eller password problemet, kan passwordet sættes igen:
sudo smbpasswd smbuser
Forsøg derefter forbindelsen fra Windows igen:
net use Z: \\192.168.1.50\deling /user:smbuser *
Hvis Windows har gemt en ældre forbindelse, kan den fjernes med:
net use Z: /delete
eller alle aktuelle netværksforbindelser kan vises med:
net use
Kommandoerne samlet
Ubuntu:
sudo apt update
sudo apt install samba
sudo mkdir -p /srv/samba/deling
sudo useradd -M -s /usr/sbin/nologin smbuser
sudo smbpasswd -a smbuser
sudo smbpasswd -e smbuser
sudo chown root:smbuser /srv/samba/deling
sudo chmod 2750 /srv/samba/deling
sudo testparm
sudo systemctl restart smbd
sudo ufw allow Samba
Windows:
net use Z: \\192.168.1.50\deling /user:smbuser *
Z:
dir
type test.txt
net use Z: /delete
Resultatet er en enkel og standard Samba-løsning, hvor Ubuntu deler:
/srv/samba/deling
|
Samba
|
SMB
|
v
\\192.168.1.50\deling
|
v
Windows Z:
Windows-brugeren autentificeres med smbuser og har kun læseadgang.
Øvelsen kommer samtidig omkring centrale emner som Linux-permissions, services, firewall, SMB og Windows UNC-paths.