How To Configure Samba File Sharing on Linux Mint 22

In this guide, we are going to show Linux users how to install and configure Samba for sharing files on Linux Mint. Samba is an open-source implementation of the Server Message Block (SMB) and Common Internet File System (CIFS) protocols that provides file and print services between clients across various operating systems. Samba makes it possible to share files between Linux and Windows operating systems. In our case here, Linux Mint will be Samba server.

Install Samba on Linux Mint

We start by installing required samba packages on Linux Mint. This is done using apt command line package manager.

sudo apt-get -y update
sudo apt-get -y install samba vim

Configure Samba share on Linux Mint

Samba configuration file is located in /etc/samba/smb.conf. Any changes made to this file requires Samba daemon to be restarted. Let’s start by creating a directory to be shared with Samba. The directory must exist before it can be configured in smb.conf. Let’s create one under /home and allow it to be readable and writable by all users.

sudo mkdir -p /home/share
sudo chmod 777  /home/share

Now open Samba configuration file to make the necessary changes.

sudo vim /etc/samba/smb.conf

Ensure you have the content as shown under global settings.

[global] 

# Configure correct UTP 
  unix charset = UTF-8 
# Change this to the workgroup/NT-domain name your Samba server will be part of 
  workgroup = WORKGROUP 
  server min protocol = NT1
  ntlm auth = yes
  #interfaces = 127.0.0.0/8 eth0 
  bind interfaces only = yes 

# Set share configuration at the end 
[Docs] 
  path =  /home/share
  writable = yes 
  guest ok = yes 
  guest only = yes 
  create mode = 0777 
  directory mode = 0777

Configuration details:

  • Docs – Samba share name
  • path = /home/share – Directory to share
  • guest ok = yes – Turn on guest share
  • guest only = yes – All protected as guests
  • writable = yes – Set share directory as writable
  • create mode = 0777 & directory mode = 0777 – Allow access to all

Configure Secure Samba Share

We need to give group ownership to Samba shared directory to sambashare group:

sudo chgrp sambashare /home/share

Now create samba share user, replacing user1 with your user name:

sudo useradd -M -d /home/share/user1 -s /usr/sbin/nologin -G sambashare user1
sudo mkdir /home/share/user1
sudo chown user1:sambashare /home/share/user1
sudo chmod 2770 /home/share/user1
sudo smbpasswd -a user1
sudo smbpasswd -e user1

We created a user’s home directory inside Samba share parent directory and set ownership to the samba share group. Let’s create another user.

sudo useradd -M -d /home/share/smbadmin -s /usr/sbin/nologin -G sambashare smbadmin
sudo mkdir /home/share/smbadmin
sudo smbpasswd -a smbadmin
sudo smbpasswd -e smbadmin
sudo chown smbadmin:sambashare /home/share/smbadmin
sudo chmod 2770 /home/share/smbadmin

Configure secure sambashare

Open samba configuration file and add the following contents:

sudo vim /etc/samba/smb.conf

Add the following content at the end of the file:

[user1]
path = /home/share/user1
readonly = no
Browseable = yes
force create mode = 0660
force directory mode = 2770
valid user = @user1 @sambashare
[smbadmin]
path = /home/share/smbadmin
readonly = no
Browseable = no
force create mode = 0660
force directory mode = 2770
valid user = @smbadmin @sambashare

Save the file and restart Samba daemon

sudo systemctl restart smbd nmbd

Allow Samba through the firewall

sudo ufw allow samba

Configure Samba client

To be able to access Samba share directory from another machine, we need to install Samba client. I am going install Samba client on Elementary OS.

sudo apt-get install samba-client cifs-utils

To access Samba share temporarily, run the command with syntax as shown below:

smbclient //sambaserver-ip/share-dir -U sambauser

For example in my case:

smbclient //192.168.1.208/gedion -U gedion

Mount the Samba share to a directory for permanent access:

sudo mkdir -p /mounts/shares
sudo mount -t cifs -o username=user1 //192.168.1.208/user1 ~/mounts/shares

Check if the directory is mounted on the client:

$ df -h

Output should be as shown:

To enable persistent mount even on reboot, mount the samba share in fstab file

sudo vim /etc/fstab

Add the following line depending on your mount point.

//server/share /mountpoint cifs username=user1,password=user1_password,uid=user1,gid=user1 0 0
## For Example
//192.168.1.208/gedion /mnt/shares cifs username=gedion,password=Xcqt0689,uid=gedion,gid=gedion 0 0

Create the /mnt/shares directory the mount it:

$ sudo mkdir -p /mnt/shares 
$ sudo mount -a 
$ df -hT | grep cifs
//192.168.1.208/gedion cifs    39G   14G   26G  35% /mnt/shares

You have successfully set up Samba file share on Linux Mint and mount the shared directory on a client. Check more guides below:

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Unlock the Right Solutions with Confidence

At CloudSpinx, we don’t just offer services - we deliver clarity, direction, and results. Whether you're navigating cloud adoption, scaling infrastructure, or solving DevOps challenges, our seasoned experts help you make smart, strategic decisions with total confidence. Let us turn complexity into opportunity and bring your vision to life.

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

NFS, short for Network File Share, is a distributed file system protocol that enables mounting of remote directories on one’s […]

I recently encountered an error message while trying to download Google Chrome on Windows Server using Internet Explorer browser. In […]

What is Enpass and how can I install Enpass on Ubuntu/ Debian Linux System?. When dealing with a lot of […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.