Gemini_Generated_Image_84jo6s84jo6s84jo.jpeg

Del en mappe med Samba på Debian 13 (offentlig / privat)

0 kommentar(er)

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.
Bash
# 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:

Text
# 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:

Raskite „Gnome diskus“ savo programose

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

Kaip sukonfigūruoti automatinį prijungimą

Ideen er automatisk montage og å ha et navn som svarer til hva vi ønsker.

Sjekk igjen:

Bash
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:

Bash
sudo apt update
sudo apt install samba

Sjekk at alt er på plass:

Bash
# 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:

Bash
# Sauvegarde avec la date
sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F)

Hvis du trenger å gjenopprette:

Bash
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 = stunivers på [DATA] : uten inlogging, ser klienten normalt bare [Public].
  • force user = stunivers : Filer som opprettes via SMB tilhører brukeren stunivers på disken (konsistent med din nåværende filstruktur).
  • guest ok = yes bare 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:

Bash
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:

Bash
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:

Bash
# 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:

Bash
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.

Bash
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:

Text
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:

Bash
# 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:

Bash
# 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

Du liker kanskje også:

Kommentarer

Ingen godkjente kommentarer ennå.

Logg inn med en kommentatorkonto for å publisere en kommentar. Logg inn.