Samba is an open-source tool through which files can be shared between Linux and Windows systems. It’s an SMB (Server Message Block)/CIFS (Common Internet File System) protocol with open-source implementation.

It is a client-server communication protocol that uses (SMB) Server Message Block Protocol. Samba is used for sharing folders, and printers over the network.

Samba was developed for sharing of files and folders between Linux and Windows/Linux. With the help of Samba, we can set up file sharing between Linux to Windows systems and Linux to Linux systems.

  [Will use samba server as ‘samba server’ and two client machines ‘win_client’ and ‘linux_client’ for smb configuration]

Features of Samba

  • Microsoft Windows (CIFS) protocol for networking.
  • Samba is an open-source tool.
  • Samba uses TCP/IP protocol.
  • Samba allows interoperability between Windows and Linux.
  • Samba provides file and print-sharing services between Windows and Linux systems.

Samba Configuration Files



Network configuration

Need to configure network settings. Will assign a Name and ip address.

Samba Server: –   samba_server.demo.local  with     IP-

Samba Clients: –   win_client.demo.local with            IP-

                              Linux_client.demo.local with         IP-



/etc/hosts file       à Edit on all server and client machines   [ Linux machines]        samba_server.demo.local   samba_server    win_client.demo.local          win_client   linux_client.demo.local        linux_client


c:\Windows\System32\Drivers\etc\hosts file   — > Edit on Windows machine        samba_server.demo.local   samba_server    win_client.demo.local          win_client   linux_client.demo.local        linux_client

 Samba Server Configuration

#dnf install samba

#dnf install samba-client

#dnf install samba-common


Will create a share as /sales and will give access to owner & groupowner sales as rw.

# groupadd sales

# useradd salesuser

# usermod -G sales salesuser

# mkdir /sales

# chmod 770 /sales

# chgrp sales /sales



Configure SELinux

# chcon  -R  -t samba_share_t   /sales

# semanage fcontext –a  -t samba_share_t  “/sales(/.*)?”

# restorecon /sales

# setsebool  -P  samba_enable_home_dirs    on


Configure Firewall


# firewall-cmd –permanent –add-service=samba

# firewall-cmd –reload


Add Workgroup/Domain in /etc/samba/smb.conf

Name of Workgroup should match with windows machine


workgroup = WORKGROUP


Create entry for shared directory in /etc/samba/smb.conf file


comment=Shared director for the sales team




valid users=@sales, salesuser


create mask=0760


Export the shared data

#exportfs –r


Test samba configuration




Add Samba user

# smbpasswd -a salesuser


Finally, restart Samba, and check its availability to network clients:

 # systemctl start smb

# systemctl enable smb

# smbclient -L localhost –U sales user

Windows as Samba client:-   Check how to access samba share on Windows machine

  • Open run dialog box


  • Use authentication for sales user


Linux as Samba client: – Check how to access Samba share on Linux machine

  • # smbclient  -L   \\  -U  sales user
 What we can do with Samba:
  • Share directories and printers to UNIX, Linux, and Windows clients.
  • Network browsing (with or without NetBIOS)
  • Authenticate Windows domain logins.
  • Act as a Primary Domain Controller (PDC).

For Information & classes Call:  7370000325
Registration Link: Click Here!



Amol Shende
AWS Trainer

IT Education Centre Placement & Training Institute

© Copyright 2023 | IT Education Centre.