Installare Samba su Linux sembra semplice a prima vista: si installa il pacchetto, si aggiunge una condivisione e la si testa da un’altra macchina. Il problema è che molte guide finiscono con cartelle troppo accessibili, permessi Linux incoerenti o una condivisione che funziona solo perché tutti hanno accesso completo in scrittura.
Qui sto usando un metodo volutamente limitato: una cartella dedicata, un gruppo Linux, un utente Samba, una configurazione leggibile e test prima di aprire la condivisione alla rete. È meno spettacolare di un chmod 777ma è anche il modo per evitare di trasformare il proprio server in un repository pubblico.

Prima di installare Samba, scegli cosa vuoi condividere.
Samba viene utilizzato per esporre una condivisione SMB da Linux, in genere verso macchine Windows, macOS o Linux. Può essere utilizzato su un piccolo server, un NAS domestico, una macchina virtuale o un computer desktop che necessita di condividere una cartella specifica.
La prima decisione importante non riguarda il comando di installazione, bensì l’ambito della condivisione. Vi consiglio di non condividere direttamente. /casa, / oppure una cartella che contiene già troppi file. Crea una directory dedicata con uno scopo ben preciso.
sudo mkdir -p /srv/partages/equipe
Se il tuo obiettivo è configurare un vero storage di rete, la guida su Linux per un NAS domestico Questo punto è stato ben affrontato. Samba può essere un buon punto di partenza, ma non sostituisce un’attenta valutazione di dischi, backup e permessi.
Installa i pacchetti Samba
Su Debian o Ubuntu, installa Samba utilizzando i pacchetti standard.
sudo apt update
sudo apt installa samba smbclient
Su Fedora, il servizio può essere chiamato smb invece di smbd a seconda della distribuzione e dei pacchetti installati.
sudo dnf install samba samba-client
Su Arch Linux, installa il pacchetto samba.
sudo pacman -S samba
Prima di modificare la configurazione, controlla lo stato del servizio. Questo è anche un buon modo per verificare il nome utilizzato dalla tua distribuzione.
systemctl status smbd --no-pager
systemctl status nmbd --no-pager
Se smbd non esiste sul tuo sistema, prova smbNon copiare un comando di riavvio senza aver prima verificato il servizio effettivo, soprattutto su un server remoto.
Crea un gruppo e definisci i permessi Linux
Samba non corregge i permessi Linux impostati in modo errato. Se l’account di sistema non può leggere o scrivere nella cartella, la condivisione non funzionerà correttamente. Preferisco partire da un gruppo dedicato.
sudo groupadd partage-samba
sudo chgrp partage-samba /srv/partages/equipe
sudo chmod 2770 /srv/partages/equipe
IL due In duemilasettecentosettanta Abilita il bit setgid sulla cartella. I nuovi file creati al suo interno manterranno il gruppo della directory. Questo è utile per la condivisione in team, in quanto impedisce rapidamente la creazione di file con il gruppo sbagliato.
Successivamente, aggiungi l’utente Linux che necessita di accedere alla condivisione. In questo esempio, sto usando nathanAdattare il nome.
sudo usermod -aG share-samba nathan
id nathan
Se hai appena aggiunto l’utente al gruppo, potrebbe essere necessario riconnetterlo affinché l’appartenenza venga riconosciuta in una sessione interattiva. Per Samba, l’account Samba, che viene creato immediatamente dopo, rimane un elemento importante.
Aggiungi una password Samba per l’utente
Un account Linux non è sempre sufficiente. Samba gestisce un proprio database di password per l’autenticazione SMB. L’utente deve esistere sul lato Linux e successivamente essere aggiunto sul lato Samba.
sudo smbpasswd -a nathan
sudo smbpasswd -e nathan
Evitate di riutilizzare una password debole con la scusa che la condivisione rimane sulla rete locale. Una condivisione SMB è spesso visibile a più computer di quanto si possa pensare, soprattutto in una rete aziendale o su un router domestico piuttosto congestionato.
Per reinserire gli utenti Samba conosciuti, è possibile utilizzare:
sudo pdbedit -L
Dichiarare una quota minima in smb.conf
Prima di modificare /etc/samba/smb.confEseguite un backup. Un singolo errore di sintassi è sufficiente a interrompere il servizio.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak-$(date +%F-%H%M)
sudo nano /etc/samba/smb.conf
Aggiungi un semplice blocco alla fine del file.
percorso = /srv/partages/equipe
navigabile = sì
sola lettura = no
utenti validi = @partage-samba
force group = partage-samba
crea maschera = 0660
maschera directory = 2770
Questa condivisione consente ai membri del gruppo condividere-sambaNon consente l’accesso agli ospiti e non rende la cartella leggibile da tutti. Questo è il minimo indispensabile che consiglierei per uno spazio di lavoro condiviso.
Le opzioni di smb.conf sono numerosi. Per saperne di più, consultare la documentazione di smb.conf, smbpasswd E testparm Il riferimento rimane utile. Nella tua prima condivisione, ti consiglio soprattutto di mantenerlo leggibile.
Verificare la configurazione prima di riavviare il servizio.
Non riavviare Samba alla cieca. Avvialo prima. testparmIl comando verifica la sintassi e visualizza la configurazione interpretata da Samba.
testparm -s
Se l’output indica un errore, correggilo prima di procedere. Se la configurazione è corretta, ricarica o riavvia il servizio.
sudo systemctl restart smbd
sudo systemctl status smbd --no-pager
Su alcune distribuzioni sarà necessario utilizzare smb.
sudo systemctl restart smb
sudo systemctl status smb --no-pager
Se il servizio non si riavvia, controlla i log prima di modificare tre opzioni a caso.
journalctl -u smbd -b --no-pager
tail -n 80 /var/log/samba/log.smbd
La guida a journalctl all’ultimo avvio Può esserti utile se desideri isolare gli errori di servizio anziché leggere l’intero registro di sistema.
Apri il firewall solo se la condivisione deve uscire dal computer.
Se stai eseguendo i test solo in locale, non è necessario aprire subito il firewall. Prima di tutto, verifica che Samba sia in ascolto.
sudo ss -ltnp | grep -E ':139|:445'
Con UFW, la regola più semplice è:
sudo ufw allow Samba
sudo ufw status verbose
Ma non applicarlo automaticamente a una macchina esposta. SMB non è pensato per essere aperto a Internet. Su un VPS o un server pubblico, usa una VPN, un tunnel privato o un server dedicato. Se devi controllare le porte aperte, fai riferimento alla guida su ss e netstat in Linux.
Prima di esaminare i problemi lato client, verifica la condivisione da Linux.
Prima di accedere al computer client, esegui prima un test dal server. Questo permetterà di distinguere i problemi di Samba da quelli di rete o del firewall.
smbclient -L localhost -U nathan
smbclient //localhost/team -U nathan -c 'ls'
Se questo test fallisce in locale, non perdete tempo su Windows o macOS. Controllate l’utente Samba, il gruppo Linux, il percorso di condivisione e i log.
Da un’altra macchina Linux, è possibile testare l’accesso anche utilizzando l’indirizzo IP del server.
smbclient -L //192.168.1.20 -U nathan
smbclient //192.168.1.20/equipe -U nathan
Sostituire correttamente 192.168.1.20 utilizzando l’indirizzo del tuo server. Se il test locale funziona ma quello remoto no, è probabile che ci sia un problema di rete, firewall o risoluzione dei nomi.
Gli errori che controllerei per primi
Quando ho a che fare con una condivisione Samba che non funziona, esamino quasi sempre gli stessi punti:
- Il file esiste davvero e punta alla posizione corretta;
- l’utente Linux appartiene al gruppo previsto;
- L’utente è stato aggiunto correttamente con
smbpasswd -a; testparm -snon segnala alcun errore;- il servizio
smbdOsmbè attivo; - La porta 445 è in ascolto e il firewall non sta bloccando la rete locale;
- I registri di Samba non menzionano alcuna negazione dei diritti sul percorso effettivo.
Se la tua esigenza è solo quella di trasferire occasionalmente alcuni file tra Windows e Linux, una condivisione Samba permanente non è sempre necessaria. La vecchia guida su Scambio di file tra Windows e Linux Questo apre nuove possibilità da esplorare. Samba diventa interessante quando è necessario mantenere la condivisione disponibile, con diritti controllati e più client in grado di connettersi.
Una volta che tutto funziona correttamente, create un file di prova, leggetelo da un’altra macchina e poi eliminatelo. È un test semplice, ma convalida l’intero ciclo: autenticazione, permessi Linux, scrittura su Samba, lettura remota e pulizia. Finché questo test non avrà dato esito positivo, sconsiglio di estendere la condivisione ad altri utenti.