Share drives are vital for making resources available throughout a network. Whether this is simple version control or allowing access to vital files for all workstations across a network, share drives are more useful than just for enterprise purposes.
The Samba project is a useful implementation of a file server that was created in 1992 and allows all clients, regardless of operating system, seamlessly access resources on a network.
The name Samba comes from SMB (Server Message Block), the proprietary protocol used by the Microsoft Windows File System.
Now I know you might be asking, Why is a Samba file server useful to a HomeLab?
Here are a few reasons you should implement a file share on your home network:
- Central storage for all family photos, documents, and other important files
- Steam Library Storage (yes you can mount and play games from a share drive)
- Backups, every homelab needs a decent backup solution
- A migration location (if you are like me and need to save, tear down VMs, and rebuild)
- Plex Server (again, you can mount a share and stream media from it)

For the purpose of this tutorial, I will assume you are running Ubuntu or some debian based operating system.
The first step to setting up is ensuring your repositories are up-to-date.
Once that is complete, install the samba package.
sudo apt update
sudo apt install samba
Once that is complete, you need to create a directory that you want to share with the network. Navigate to your desired location and create the directory that will be accessed when a new host mounts to the share.
(Replace sambashare with the name you choose)
mkdir sambashare/
Next we need to make some edits to the samba configuration file so it knows what directories to expose and share. Using your text editor of choice, open the smb.conf file.
sudo nano /etc/samba/smb.conf
At the very bottom, add the following lines. Keep in mind that the [sambashare] portion should be the name of your created directory.
- The comment field can be a description of the share.
- The path is used to determine the recently created directory.
- read only is marked ‘no’ because we want to allow editing privileges.
- browsable is marked yes as we want to be able to reach it using a file browser.
[sambashare]
comment = Samba on Ubuntu
path = /home/username/sambashare
read only = no
browsable = yes
Save the configuration file and exit.
Now restart the samba daemon and allow it to implement the changes.
Should be pretty quick.
sudo service smbd restart
Optional: Update the firewall rules to allow samba traffic.
sudo ufw allow samba
Next you need to create a Samba user account and password.
(Replace username with your own username and use best practice for your password.)
sudo smbpasswd -a username
That should do it. Now you have a working Samba Server.
You can access it by entering the IP address of the system you installed Samba on, into your file browser, from a remote host like below:
From a Windows Host:
\\ip-address\sambashare
From a separate Linux machine, you can access via the file browser using:
smb://ip-address/sambashare
If you have any trouble, try restarting the Samba daemon, or tweaking the Samba Configuration file.
I hope this was helpful. If you have any questions, feel free to reach out.
Stay curious and keep learning.
