Samba is available in Raspbian’s standard software repositories. We’re going to update our repository index, make sure our operating system is fully updated, and install Samba using apt-get. Open a Terminal and type:
sudo apt update
sudo apt upgrade
sudo apt install samba samba-common-bin
Create your shared directory
We’re going to create a dedicated shared directory on our Pi’s micro SD hard disk. You can put it anywhere, but ours will be at the top level of the root file system.
sudo mkdir -m 1777 /mnt/share
This command sets the sticky bit (1) to help prevent the directory from being accidentally deleted and gives everyone read/write/execute (777) permissions on it.
Edit Samba’s config files to make the file share visible to the Windows PCs on the network.
sudo nano /etc/samba/smb.conf
In our example, you’ll need to add the following entry:
Comment = Pi shared folder
Path = /mnt/share
Browseable = yes
Writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
This means that anyone will be able to read, write, and execute files in the share, either by logging in as a Samba user (which we’ll set up below) or as a guest. If you don’t want to allow guest users, omit the guest ok = yes line.
You could also use Samba to share a user’s home directory so they can access it from elsewhere on the network, or to share a larger external hard disk that lives at a fixed mount point. Just create a smb.conf entry for any path you want to share, and it’ll be made available across your network when you restart Samba.
Create a user and start Samba
Before we start the server, you’ll want to set a Samba password – this is not the same as your standard default password (raspberry), but there’s no harm in reusing this if you want to, as this is a low-security, local network project.
sudo smbpasswd -a pi
Then set a password as prompted. Finally, let’s restart Samba:
sudo systemctl restart smbd
sudo systemctl enable smbd
From now on, Samba will start automatically whenever you power on your Pi. Once you’ve made sure that you can locate your shared folder on the network, you can safely disconnect the mouse, monitor, and keyboard from your Pi and just leave it running as a headless file server.