How to setup SAMBA in Linux

In this post I am going to share steps to configure Samba in Linux.

For this I have created 2 virtual machines out of which once will act as client and other will act as server.

1) Centos1home.lab--Server Machine for Samba
2) Centos2home.lab--Client Machine which will access Samba Shared file system.

Setup on Server Machine:

• Install samba packages
# Become root user
# yum install samba samba-client samba-common

Samba Server

• Enable samba to be allowed through firewall (Only if you have firewall running)
# firewall-cmd --permanent --zone=public --add-service=samba

[root@centos1home ~]# firewall-cmd --permanent --zone=public --add-service=samba

# firewall-cmd --reload

[root@centos1home ~]# firewall-cmd --reload

• To stop and disable firewall or iptables(Optional)
# systemctl stop firewalld
# systemctl stop iptables
# systemctl disable firewalld
# systemctl disable iptables

• Create Samba share directory and assign permissions
# mkdir -p /funoracleapps/samba
# chmod a+rwx /funoracleapps/samba
# chown -R nobody:nobody /funoracleapps

[root@centos1home ~]# ls -ld /funoracleapps/samba
drwxrwxrwx. 2 nobody nobody 6 Jun  1 13:18 /funoracleapps/samba

• We need to change the SELinux security context for the samba shared
directory as follows: (Only if you have SELinux enabled)
# chcon -t samba_share_t /funoracleapps/samba

• If you want to disable SELinux, follow these instructions(Optional)
# sestatus (To check the SELinux status)

# vi /etc/selinux/config

# reboot

• Modify /etc/samba/smb.conf file to add new shared filesystem (Make sure to
create a copy of smb.conf file)
Delete everything from smb.conf file and add the following parameters
workgroup = WORKGROUP
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
path = /funoracleapps/samba
browsable = yes
writable = yes
guest ok = yes
guest only = yes
read only = no

• Verify the Samba Configuration setting
# testparm

[root@centos1home ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.

Press enter to see a dump of your service definitions

# Global parameters
	dns proxy = No
	map to guest = Bad User
	netbios name = CENTOS
	security = USER
	idmap config * : backend = tdb

	guest ok = Yes
	guest only = Yes
	path = /funoracleapps/samba
	read only = No

• Once the packages are installed, enable and start Samba services
# systemctl enable smb
# systemctl enable nmb
# systemctl start smb
# systemctl start nmb

Server is configured successfully

Mount on Windows client

  • Go to start
  • Go to search bar
  • Type \\ (This is my server IP, you can check in CentOS IP by running the command ifconfig)

Mount on Linux client

Become root
# yum -y install cifs-utils samba-client

Samba Client

Create a mount point directory

# mkdir -p /him/funsambashare/

Mount the samba share
# mount -t cifs // /him/funsambashare/
# Enter root  password

Samba Filesystem