Cosa è FreeBSD
condividere una cartella su FreeBSD è simile ma non uguale a Linux. Oggi conosciamo per lo più Linux come alternativa a Windows ma ben prima dell’esistenza di Linux, anzi a dire la verità il primo sistema operativo della storia è stato Unix. Unix viene sviluppato già a fine anni ’60. FreeBSD è una variante di Unix nota per la sua stabilità e prestazioni elevate, caratteristiche richieste in particolare per ambienti server. Tanto per dire, il tanto osannato Mac OS (Darwin), il sistema operativo dei computer di Apple, ha molte cose in comune con FreeBSD se non che derivano dallo stesso progetto BSD (Berkeley Software Distribution). Insomma FreeBSD non è la solita distribuzione di Linux, anzi non è nemmeno un sistema operativo paragonabile a Linux benché condividano molte cose.
Al contrario Linux ci tiene tantissimo a far sapere che non è Unix. FreeBSD è un sistema operativo derivato da Unix, sicuramente meno conosciuto rispetto a Linux ma altamente stabile e performante.
Quindi, in questo articolo vi mostro come configurare una condivisione per poter condividere una cartella su FreeBSD che, ripeto, benchè si assomiglino, Unix non è Linux e qualcosina è differente.
Prerequisiti
Un’installazione di FreeBSD su un computer o una macchina virtuale
Condividere cartella su FreeBSD
Premessa
Su FreeBSD non è installato il programma sudo (Super User do), ovvero quel programma che con il comando “sudo” vi permette di avere avviare programmi o modificare configurazioni con un utente diverso da “root”. Come invece è installato di default nelle distribuzioni Linux. Quindi se provate a fare le procedure con un utente che non sia “root” e tentiate di farle con il comando “sudo” semplicemente vi verrà indicato che tale comando non è stato trovato. Pertanto o installate il programma sudo o utilizzate l’utente root.
Aggiornamento FreeBSD e software installati prima di condividere una cartella
Per prima cosa, come si fa in ogni buona procedura si cercano eventuali aggiornamenti del sistema operativo e dei software già installati in esso:
Installazione e configurazione di Samba
Cerca le ultime versioni del pacchetto d’installazione di samba

Sì hai visto bene, per collegarmi al server con FreeBSD utilizzo il Prompt dei Comandi di Windows.
A parte questo come puoi vedere l’ultimo pacchetto di Samba disponibile è 423, almeno al momento.
Allora andiamo a installare Samba423:
Ora, almeno per quanto mi riguarda, installerò il programma nano per editare i file. Su FreeBSD è già installato di default “vi” per editare i file. Trovo nano più pratico. Quindi:
Quindi, bisogna aggiungere la direttiva samba_server_enable=”YES” al file /etc/rc.conf che permette anche l’avvio automatico del server Samba4. Si può aggiungere la direttiva manualmente al file /etc/rc.conf oppure semplicemente usare questo comando:
Ancora non possiamo avviare il server Samba perchè bisogna creare il file /usr/local/etc/smb4.conf. Già l’installazione di Samba non crea questo file automaticamente. Quindi:
Bene, ora che abbiamo creato il file /usr/local/etc/smb4.conf possiamo avviare il server Samba anche se il file touch /usr/local/etc/smb4.conf è vuoto.
Adesso bisogna creare la cartella che andrà condivisa, nel mio caso la cartella la chiamerò “condivisa” e la creerò sulla directory principale ( / ), pertanto:
Quindi, bisognerà scrivere le giuste direttive all’interno del file /usr/local/etc/smb4.conf per poter condividere una cartella su FreeBSD.
Modifica del file smb4.conf per permettere l’accesso e la modifica a una condividere cartella su FreeBSD a tutti
Come ho detto preferisco il programma nano per modificare i file piuttosto che vi, allora:
Ecco cosa scriveremo, ovvero le direttive che impartire a Samba per condividere una cartella su FreeBSD, in questo caso, accessibile e modificabile da qualsiasi computer e da chiunque.
Togli le righe con i commenti cioè quelle che iniziano per #. Sono solo per descrivere le direttive meno chiare.
[global]
unix charset = UTF-8
workgroup = WORKGROUP
server string = FreeBSD
# intervallo di indirizzi IP di rete privati a cui consentirai l'accesso
interfaces = 127.0.0.0/8 10.0.0.0/24
bind interfaces only = yes
map to guest = bad user
# chiama la condivisione come vuoi, in questo esempio "Doc"
[Doc]
# specifica la directory da condividere
path = /condivisa
# permetti la scrittura
writable = yes
# permetti l'accesso all'utente "ospite" (nobody)
guest ok = yes
# viene visualizzato tutto come utente ospite
guest only = yes
# imposta i permessi [777] quando viene creato un file all'interno della
# cartella condivisa
force create mode = 777
# imposta i permessi [777] quando viene creato una cartella all'interno della
# cartella condivisa
force directory mode = 777
La cartella è già accessibile ma se vogliamo crearci qualcosa dentro bisogna assegnare alla cartella la giusta proprietà
Modifica del file smb4.conf per permettere l’accesso e la modifica a cartella da condividere su FreeBSD solo a determinati utenti
Premessa
Come su Linux, anche su FreeBSD per accedere alla condivisione tramite un determinato utente, bisogna creare un utente specifico per Samba. Ovvero se tu hai creato un utente per il sistema operativo, dovrai creare lo stesso utente per Samba. Viceversa se non hai creato lo stesso nome utente per il sistema operativo non potrai creare un utente Samba con quel nome. Insomma prima bisogna creare un utente per il sistema operativo e poi un utente per Samba con lo stesso nome. Quindi nel caso il nome dell’utente sia fabio vediamo come procedere
Per il sistema operativo (FreeBSD):
Per Samba server:
Ed adesso vediamo il file che ci interessa. Togli le righe con i commenti cioè quelle che iniziano per #. Sono solo per descrivere le direttive meno chiare.
[global]
unix charset = UTF-8
workgroup = WORKGROUP
server string = FreeBSD
# intervallo di indirizzi IP di rete privati a cui consentirai l'accesso
interfaces = 127.0.0.0/8 10.0.0.0/24
bind interfaces only = yes
map to guest = bad user
# chiama la condivisione come vuoi, in questo esempio "Doc"
[Doc]
# richiede l'autenticazione
security = user
# specifica la directory da condividere
path = /condivisa
# permette la scrittura
writable = yes
# non permette utenti ospiti (nobody)
guest ok = no
# permette solo [nomegruppo]
valid users = @nomegruppo
# imposta il gruppo per i nuovi file o cartelle [nomegruppo]
force group = nomegruppo
# imposta i permessi [770] quando viene creato un file all'interno della
# cartella condivisa
force create mode = 770
# imposta i permessi [770] quando viene creato una cartella all'interno della
# cartella condivisa
force directory mode = 770
# ereditare i permessi dalla cartella padre
inherit permissions = yes

