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.