Når jeg trenger å gi tilgang til en Samba-mappe etter en nyinstallasjon av min Debian, følger jeg alltid et annet tutorial.
Jeg glekker altid fra gangen til neste, fordi det kan gå opp til tre år mellom to installasjoner.
Derfor gir jeg deg her mitt eget tutorial, både for meg selv og for deg, fordi det sikkert vil være nyttig.
Jeg vil også gi deg en oppdatering av dette tuto etterhvert som nye versjoner av Debian blir lansert, både for meg selv og for deg.
Vår mål i dag er:
- Å montere mappen
/mnt/DATA/ved systemstart med hjelp av programmet disks (grafisk applikasjon) - Installere Samba
- Konfigurere Samba for en offentlig deling som bare gir lesetilgang (
/mnt/DATA/Public) - Konfigurere Samba for en privat deling med autentisering for les og skrivetilgang (
/mnt/DATA)
1. Før vi begynner
Det er rådsvart å være i lista over sudoers, men det er ikke nødvendig, du kan også gjøre dette som root (kommando su).
Jeg vil gjerne understreke at man bør unngå å logge seg inn med su, et dårlig vaner jeg har for mye av.
2. Kontrolleringer
For å ikke bli forvirret, sjekker vi følgende:
- At den offentlige mappen eksisterer og at rettighetene er riktig.
- Gjør det samme med den private mappen.
- Sjekk om privat brukeren finnes.
|
# Vérifions que nos répertoire existe, privée et publique |
ls -ld /mnt/DATA /mnt/DATA/Public |
|
# Vérifion si le disque DATA est monté au démarrage |
mount | grep DATA |
|
# Regardons si notre utilisateur stunivers est connu du système : |
id stunivers |
|
Her er utdata vi fikk i vårt tilfelle:
# ls -ld /mnt/DDAS /mnt/DDAS/Public |
|
drwxrwx--- 15 stunivers 1005 4096 18 mai 12:52 /mnt/DATA |
drwxrwxrwx 6 stunivers stunivers 4096 18 mai 13:37 /mnt/DATA/Public |
|
# mount | grep DATA |
|
# id stunivers |
|
uid=1000(stunivers) gid=1000(stunivers) groupes=1000(stunivers),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),101(netdev),102(scanner),106(bluetooth),108(lpadmin) |
|
2. Automatisk montage
Montasje innebærer å gjøre din volum, USB-stasjon eller harddisk synlig og tilgjengelig for systemet.
På Linux, avhengig av distribusjonene, er det ikke automatisk som på Windows. For sikkerhetsskaper.
Her vil vi gjøre det automatisk.
I gamle dager gikk jeg til fstab og prøvde å manipulere fila for å få den automatiske monteringen til å fungere.
Det er et spørsmål om syntaks, men med min dysleksi mistet jeg ofte ting.
Disks (eller diskene på norsk) er mye enklere for meg. Du finner det i dine GNOME-applikasjoner:

En gang du er inne i Disks, kan du sette opp noe som dette:

Ideen er automatisk montage og å ha et navn som svarer til hva vi ønsker.
Sjekk igjen:
|
mount | grep DDAS |
/dev/sda2 on /mnt/DATA type ext4 (rw,nosuid,nodev,relatime,x-gvfs-show) |
|
3. Installasjon av Samba
Det er ganske enkelt, oppdater systemet og bruk apt for å installere:
|
sudo apt update |
sudo apt install samba |
|
Sjekk at alt er på plass:
|
# on liste les 3 binaires smbd, nmbd et testparm |
ls -l /usr/sbin/smbd /usr/sbin/nmbd /usr/bin/testparm |
|
# Samba est lancé en service, on vérifie le status |
systemctl status smbd nmbd --no-pager |
|
4. Skriv vår smb.conf
4.1. Lagre originalfila
I tilfellet vi gjør en feil, lager vi en backup:
|
# Sauvegarde avec la date |
sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F) |
|
Hvis du trenger å gjenopprette:
sudo cp -a /etc/samba/smb.conf.bak.AAAA-MM-JJ /etc/samba/smb.conf |
sudo systemctl restart smbd nmbd |
4.2. Skriv vår smb.conf
Her er innholdet vi vil bruke for å erstatt originalinnholdet, og tilpasse det etter behovene våre:
[global] |
workgroup = WORKGROUP |
server string = Servbian DATA |
security = user |
map to guest = Bad User |
guest account = nobody |
|
# Hide shares the connecting identity cannot access |
access based share enum = yes |
|
# Useful on a home LAN; adjust if you use a domain later |
server role = standalone server |
disable netbios = no |
smb ports = 445 139 |
|
logging = file |
log file = /var/log/samba/log.%m |
max log size = 1000 |
|
# ----------------------------------------------------------------------------- |
# Authenticated only: full DATA tree for user stunivers |
# Not listed for anonymous / guest clients thanks to access based share enum |
# ----------------------------------------------------------------------------- |
[DATA] |
comment = Private DATA storage |
path = /mnt/DATA |
valid users = stunivers |
browseable = yes |
guest ok = no |
read only = no |
force user = stunivers |
create mask = 0660 |
directory mask = 0770 |
veto files = /lost+found/ |
|
# ----------------------------------------------------------------------------- |
# Guest-visible public folder |
# ----------------------------------------------------------------------------- |
[Public] |
comment = Public folder (no login required) |
path = /mnt/DATA/Public |
browseable = yes |
guest ok = yes |
read only = no |
force user = stunivers |
create mask = 0664 |
directory mask = 0775 |
Viktige punkter:
map to guest = Bad User: En ugyldig eller tom inlogging blir automatisk gjort til en invitert bruker (nobody).access based share enum = yes+valid users = stuniverspå[DATA]: uten inlogging, ser klienten normalt bare[Public].force user = stunivers: Filer som opprettes via SMB tilhører brukerenstuniverspå disken (konsistent med din nåværende filstruktur).guest ok = yesbare for[Public].
Jeg har virkelig brukt tid på å få en klar konfigurasjon, og jeg ville virkelig ikke la noen feil slippe seg inn.
5. Valider syntaxen i fila
Det finne med Samba er at det lar deg ikke skrive en fil uten å gi deg feilmeldinger om noe er galt.
Verktøyet testparm som leveres med er veldig nyttig for å validere din smb.conf-fil:
testparm -s |
Load smb config files from /etc/samba/smb.conf |
lpcfg_do_global_parameter: WARNING: The "raw NTLMv2 auth" option is deprecated |
Loaded services file OK. |
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback) |
|
Server role: ROLE_STANDALONE |
Normalt skal kommandoen returnere en hode lignende, si at filene er i orden, og utskrive automatisk innholdet av din smb.conf.
For de som er bekymret for at svake krypto er tillatt, vet du at Debian stiller seg tilbakekompabilitet også til SMB 1. Vi setter igjen på SMB 3 for å profittere av sikkerhetsforbedringer det gir.
6. Opprett en bruker for Samba
Samba kjenner ikke Stunivers, faktisk er Brukere i din Debian og Samba skilte fra hverandre.
Derfor må du opprette den:
|
sudo smbpasswd -a stunivers |
New SMB password: |
Retype new SMB password: |
Added user stunivers. |
|
7. Tilgangsrettigheter
Du vil ha sett at vi har en filstruktur /mnt/DATA som er privat, og /mnt/DATA/Public eller Public som ligger i DATA.
Derfor er det viktig at ingen tilleggsmessige rettigheter legges til for et annet Unix-gruppe enn Stunivers.
Vi vil sørge for at rettighetene er konsistente for brukeren stunivers:
|
# Changement de propriétaire pour l'utilisateur stunivers |
sudo chown -R stunivers:stunivers /mnt/DATA/ |
|
# Redéfinission des droits au cas ou pour DATA (stunivers à les droits, les autres rien) |
sudo chmod -R 770 /mnt/DATA/ |
|
# en publique c'est autre chose, on veut que stunivers est tous les droits, et des droits en lecture pour les autres |
sudo chmod -R 775 /mnt/DATA/Public/ |
|
Hvorfor chmod -R og chown -R? Det skjer alltid et øyemærke hvor vi glepper en tillatelse, eller noe går ikke som ventet.
Det er tydeligvis radikalt, men jeg elsker å gjøre det på denne måten, sånn at det blir definitivt klart.
En liten sjekk med ls og vi er ferdige:
ls -ld /mnt/DATA/ |
ls -ld /mnt/DATA/Public/ |
7. Start opp tjenerne igjen
Å starte om tjenerne er viktig, fordi Samba-tjeneren som installert kjenner til den gamle smb.conf-fila.
Vi vil også sørge for at vår tjener starter ved oppstart, og vi stopper nmbd (for NetBIOS), som ikke lenger brukes.
sudo systemctl enable --now smbd |
sudo systemctl disable --now nmbd |
sudo systemctl status smbd --no-pager |
Hvis du har sjekket smb.conf med testparm, burde det se slik ut:
|
sudo systemctl enable --now smbd |
sudo systemctl disable --now nmbd |
sudo systemctl status smbd --no-pager |
Synchronizing state of smbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. |
Executing: /usr/lib/systemd/systemd-sysv-install enable smbd |
Synchronizing state of nmbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. |
Executing: /usr/lib/systemd/systemd-sysv-install disable nmbd |
Removed '/etc/systemd/system/multi-user.target.wants/nmbd.service'. |
Removed '/etc/systemd/system/nmb.service'. |
● smbd.service - Samba SMB Daemon |
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled) |
Active: active (running) since Mon 2026-10-12 14:55:09 CEST; 40min ago |
Invocation: e0631a439d694b7fae8d53bdf08e9783 |
Docs: man:smbd(8) |
man:samba(7) |
man:smb.conf(5) |
Main PID: 15836 (smbd) |
Status: "smbd: ready to serve connections..." |
Tasks: 3 (limit: 18519) |
Memory: 23.1M (peak: 23.9M) |
CPU: 168ms |
CGroup: /system.slice/smbd.service |
├─15836 /usr/sbin/smbd --foreground --no-process-group |
├─15840 "smbd: notifyd" . |
└─15841 "smbd: cleanupd " |
|
oct. 12 14:55:09 Servbian systemd[1]: Starting smbd.service - Samba SMB Daemon... |
oct. 12 14:55:09 Servbian update-apparmor-samba-profile[15829]: grep: /etc/apparmor.d/samba/smbd-sh… nom |
oct. 12 14:55:09 Servbian update-apparmor-samba-profile[15832]: diff: /etc/apparmor.d/samba/smbd-sh… nom |
oct. 12 14:55:09 Servbian systemd[1]: Started smbd.service - Samba SMB Daemon. |
Hint: Some lines were ellipsized, use -l to show in full. |
8. Konfigurasjon for ufw eller firewalld
Årsaken til å bruke en firewall er å la kun det som skal gjøre det.
Det finnes også materielle firewalls, et stueksjon hvor du kobler PC-en på én side og internettet på den andre (jeg oversimpliserer litt).
I dette tilfellet, er det PC-en selv som setter opp vår logiske firewall mellom nettverket og oss.
Litt mer informasjon om hvordan man installerer og konfigurerer en firewall her:
|
# installation |
sudo apt install ufw |
|
# connexion root complet (outil sensible) |
su - |
|
# ouverture des ports pour samba |
ufw allow 445/tcp |
ufw allow 139/tcp |
|
# rechargement des configurations |
ufw reload |
|
# activation de ufw |
ufw enable |
|
9. Test fra et annet PC
Du kan enten gjøre det grafisk, eller på kommandolinjen som her:
|
# connection publique au répertoire publique |
smbclient //192.168.1.250/Public -N |
|
# tapez ls pour lister les fichiers, et faite ctrl+c si vous voyez votre arborescence |
ls |
|
# connexion en tant que stunivers au répertoire DATA |
smbclient //192.168.1.250/DATA -U stunivers |
|
10.Kortløsninger
| Symptom | Fikspunkter |
|---|---|
smbd starter ikke |
Bruk journalctl -u smbd -e --no-pager og testparm -s |
| Gjest ser ingenting | Sett map to guest = Bad User, guest ok = yes på [Publisert], start om smbd |
| DATA er synlig uten innlogging | Bekreft access based share enum = yes og guest ok = no / valid users = stunivers på [DATA] |
| Tilgang nektet til DATA | Bruk smbpasswd -a stunivers, sett eiersrettigheter på /mnt/DATA, og sette force user = stunivers |
| Gjest kan ikke skrive | Modus for /mnt/DATA/Publisert (f.eks 1)=à777 / 777), read only = no, force user = stunivers |
| Usynlig fra Windows | Prøv ping IP, kontrollér porter 445/139, sjekk firewall, og prøv IP istedenfor hostname |
| Gruppe 1005 « UNKNOWN » | Kosmetikk så lenge stunivers er eier; ellers chgrp stunivers /mnt/DATA eller opprett den manglende gruppen |
Kommentarer
Ingen godkjente kommentarer ennå.
Logg inn med en kommentatorkonto for å publisere en kommentar. Logg inn.