This post will show you How to Install & Configure Samba Server on Linux (RHEL7 / CentOS7).
If you are interested in learning, Request you to go through the below recommended tutorial.
DevOps Full Course Tutorial for Beginners - DevOps Free Training Online
Docker Full Course Tutorial for Beginners - Docker Free Training Online
Kubernetes Full Course Tutorial for Beginners - Kubernetes Free Training Online
Ansible Full Course Tutorial for Beginners - Ansible Free Training Online
Openstack Full Course Tutorial for Beginners - Openstack Free Training Online
How to Install & Configure Samba Server on Linux (RHEL7 / CentOS7)
This Tutorial describes you the Step by Step procedure to install and configure the SAMBA server and client on Linux (RHEL7/CentOS7).
Topics involved:
What is Samba?
Uses of Samba?
Samba requirements
How to install the Samba server packages?
How to configure Samba server?
How to start the samba service?
How to add a user to samba?
How to verify the samba share access?
What is Samba?
Samba provides a stable and highly compatible file and print sharing service that allows a Linux node to act as a client, a member server, or even a Primary Domain Controller (PDC) or a member of an Active Directory (AD) service on Microsoft-based networks. Samba interacts with Microsoft's CIFS built on the Server Message Block (SMB) protocol.
Uses of Samba?
1. As a File Server like NFS to share the files but across OS (linux to windows).
2. As a WINS [Windows Internet Name Server] or NBNS server
3. As a PDC [SAM - Security Access Module]
4. As a Print Server using CUPS
Samba details
Package : samba*
Port no : 137,138,139
Script : /etc/init.d/smb
Service name : smb
Daemon : smbd
Configuration file : /etc/samba/smb.conf
Use the following instructions to install and configure the SAMBA Server and Client on Linux (Centos7/RHEL7).
Lab Setup:
RHEL7 or CentOS7 installed server - 2 Nos.
Network enabled
Firewall and selinux are disabled
Hostnames : linux1 (server) and linux2 (client)
Prerequisites:
1. Make sure both server Linux1(192.168.2.61) and client(192.168.2.62) are reachable.
2. Make an entry of each host in /etc/hosts for name resolution or Configure it in DNS to resolve the IP, if you use server name instead of IP address. Read also how to configure DNS Server on RHEL7 But we use IP Address for in this article.
Server end configuration
Login into the server Linux1 (192.168.2.61) and do the following steps to install and configure Samba Server.
Install the Samba server packages
Install the appropriate Samba packages "samba*" using yum to avoid dependencies issue. if yum is not configured, please refer the link Yum Configuration on Linux.
[root@linux1 ~]# yum -y install samba*
Configure the Samba server
Samba server main configuration file name is smb.conf which is located in /etc/samba/. It has many directives which can be used for each purpose.
Assume that, we are going to configure the samba server to share the /mnt directory. Lets edit the main configuration file.
[root@linux1 ~]# vi /etc/samba/smb.conf
Just go to the last line and append the below entries into the file.
[mnt]
comment = Samba test share
path = /mnt
Note : By default samba doesn't allow to write any data. If you want the share to be write-able mode, add the below directive as "yes" and change the file permission (chmod 777 /mnt) to write-able. If file permission is not set to write, samba will allow to write the data, but linux file permission wont allow to write, so you will face an issue as permission denied.
writeable = yes
Finally it should looks like below.
[mnt]
comment = Samba test share
path = /mnt
writeable = yes
Verify the configuration file
Always after changing the configuration file, use the command "testparm" to check the changes for any syntax errors.
[root@linux1 ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[mnt]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = USER
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
[homes]
comment = Home Directories
read only = No
browseable = No
[mnt]
comment = Samba test share
path = /mnt
read only = No
If you dont have any syntax errors, you will get the output as "Loaded services file OK." If you get error as unknown parameter, please use the correct word.
Enable and Start the Samba service
[root@linux1 ~]# systemctl start smb
[root@linux1 ~]# systemctl enable smb
Ensure the samba port listening or not.
[root@linux1 ~]# netstat -lt | grep netbios
Add a valid linux user to samba
Samba need a additional password to provide the access as well as that user should be a valid linux user, which means user should be exist in the server. if not, create a new user using useradd command and add the user to the samba as below. It will prompt to enter the additional new password specially for samba.
[root@linux1 ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
Verify the access locally and remotely
Always first check the access locally and finally check from client end. It will be easy to troubleshoot where the problem exists when the problem occurs to access the samba shares locally or over the network.
Verify the access from samba server end
Use the below samba client utility (smbclient) in which specify the samba server address (-L 192.168.2.61) and user (-U user1). It will prompt to enter the password of the user added to the samba.
[root@linux1 ~]# smbclient -L 192.168.2.61 -U user1
Enter user1's password:
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10]
Sharename Type Comment
--------- ---- -------
mnt Disk Samba test share
IPC$ IPC IPC Service (Samba Server Version 4.2.10)
user1 Disk Home Directories
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10]
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP LEARNITGUIDE
If we get the output as above, then we can access the samba server successfully.
Verify the access from samba client
Execute the same command from the client to ensure the same is working from network also. We should get the same output as we got locally.
[root@linux2 ~]# smbclient -L 192.168.2.61 -U user1
That's all the installation and configuration of Samba server on Linux (RHEL7 / CentOS7).
Hope this post helped you to Install & Configure Samba Server on Linux (RHEL7 / CentOS7).
Related Content on Linux might be useful to you to improve your Linux Skills.
How to Access Linux Server from Windows Remotely
Configure SSH Passwordless Login Authentication (SSH-keygen)
How to Create LVM Partition in Linux – LVM Tutorial
Install & Configure Samba Server on Linux (RHEL7 / CentOS7)
0 Comments