Setting up Samba under Ubuntu 19.10 is relatively easy. This guide will show how to install Samba itself, then configure both a public drive meant to be shared among multiple users, and a per-user drive.
NOTE: This guide assumes your linux machine is on your local network.
First, install both samba and smbclient:
sudo apt install samba smbclient
Next, create a directory that will be the shared public drive, and set its ownership:
sudo mkdir -p /srv/samba/public sudo chown nobody:nogroup /srv/samba/public sudo chmod 777 /srv/samba/public
Now it’s time to configure Samba. There’s two basic things that need to be configured: setting the user security, and adding the public drive.
To set the user security, set security = user
in the [global]
section of /etc/samba/smb.conf
.
Enable the per-user drive in /etc/samba/smb.conf
:
[homes] comment = Home Directories browseable = no read only = no
To add the public drive, add this section to the end of /etc/samba/smb.conf
:
[public] comment = Public Files path = /srv/samba/public browsable = yes guest ok = yes read only = no create mask = 0755
Now, restart the Samba services to pick up these configuration changes:
sudo systemctl restart smbd.service nmbd.service
Since Samba doesn’t use the linux login credentials for a user, you must add each user that needs access to a shared drive using the smbpasswd
command:
sudo smbpasswd -a <unix username>
Also, if you’re running a firewall on your linux machine, you’ll probably have to allow access for your local network. You can allow specific machines, or a subnet. I use ufw to control my firewall configuration, so for me I simply allowed all access for my internal network:
sudo ufw allow from 192.168.0.0/16
To connect to a drive from Windows, I right-click on the Network
item in File Explorer
and select Map network drive...
, and use \\<hostname>\public
or \\<hostname>\<unix username>
as the Folder.
To connect to a drive from the Mac, I use Go -> Connect to Server...
in the Finder, then use smb://<hostname>/public
or smb://<hostname>/<unix username>
as the address.