A Samba file server enables file sharing across different operating systems over a network.
It lets you access your files on a Raspberry Pi and share them with Windows, Linux and macOS clients.
In this note i will show how to turn your Raspberry Pi into a file server by installing Samba and creating a shared folder.
Cool Tip: Mount USB drives in Raspberry Pi automatically! Read more →
Samba File Server on Raspberry Pi
Install Samba:
$ sudo apt-get install samba
During the installation you may be asked:
Modify
smb.conf
to use WINS settings from DHCP?
In most of the case the answer should be “No” unless you have a multi-homed SMB network.
Create a folder to share:
$ mkdir -p /home/pi/share
To add the new directory as a share, edit the configuration file of Samba:
$ sudo nano /etc/samba/smb.conf
Warning: The shares in these examples are accessible without authentication!
At the bottom of the file, add the following lines, to create a Read-Only share:
[share] # This share allows anonymous (guest) # Read-Only access without authentication! comment = Raspberry Pi File Server path = /home/pi/share read only = yes guest ok = yes guest only = yes
Read-Write share example:
[share] # This share allows anonymous (guest) # Read-Write access without authentication! comment = Raspberry Pi File Server path = /home/pi/share writable = yes force user = pi guest ok = yes guest only = yes
Save that file and restart Samba with this command:
$ sudo systemctl restart smbd
Access Samba Share on Raspberry Pi
Cool Tip: How to find the Raspberry Pi’s IP on network! Read more →
To access the shared folder from a Windows machine, open the Windows Explorer and in the address bar type the IP address of your Raspberry Pi followed by the share name:
\\<Raspberry-Pi-IP-address>\share
On a Linux machine with GUI, open the File Browser application and in the address bar type:
smb://<Raspberry-Pi-IP-address>/share
On a macOS device, open up the Finder, click on “Go” -> “Connect to Server” and in the resulting window type the path to the Raspberry Pi’s shared folder in the same format as for the Linux machine in the example above.