Simple way to create and manage samba shares in RHEL 7
Simple way to Create and Manage Samba Shares in RHEL 7. We can also call this as CIFS (Common Internet File System) shares, Sharing the directories / Folders across the corporate network. Sharing the Directories / Folders from Linux to Windows and Windows to Linux wise versa we have to use SMB (samba) protocol. Samba is not only used for sharing directories, we can also use it for sharing printing services (printing server). I will explain you in detailed simple way to create and manage samba shares in RHEL 7.
Samba Server Profile
- Packages Required: samba*
- Port Number: 445
- Daemon Name: smb
- Config File Location: /etc/samba/smb.conf
Advantages
- Accessing CIFS shares across the multiple environments
- Sharing Printer using SMB
- Mount windows CIFS shares to Linux
- Fully Secured shares using user authentication
Steps to Configure samba server
Install required Packages, Start & Enable Service, Create users and convert them as samba users, Create New Directory and Share the directory using SMB Service, Apply SELinux context and Open Firewall Ports.
Installation of Samba Server in RHEL 7
# yum install samba*
Enabling and Starting SMB services
To Enable the SMB and its dependant service NMB, we have to use below command
# systemctl enable smb ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service' # systemctl enable nmb ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'
Starting SMB and NMB services, use below mentioned commands to start required services
# systemctl start nmb # systemctl start smb # systemctl status smb
Create Directory and apply SELinux Policy
If your SELinux is in enforcing mode then in RHEL 7 SELinux will allow any content to be access from other servers / clients. We have to apply SELinux context or keep SELinux in disabled / permissive mode.
before applying SELinux context
[root@desktop ~]# ls -ldZ /arkit_share
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /arkit_share
After Applied SELinux context
# mkdir /arkit_share
# semanage fcontext -a -t samba_share_t "/arkit_share(/.*)?"
# restorecon -vRF /arkit_share
# ls -ldZ /arkit_share
drwxr-xr-x. root root system_u:object_r:samba_share_t:s0 /arkit_share
As shown above when you applied an SELinux context to particular directory you can see using ls -ldZ command. Change directory permissions for user
# ls -ld /arkit_share/ # chown arkit:root /arkit_share/ # ls -ld /arkit_share/
Create users and convert them as Samba Users
[root@desktop ~]# useradd arkit -s /sbin/noshell [root@desktop ~]# smbpasswd -a arkit New SMB password: Retype new SMB password: Added user arkit.
Create an normal user with restricted shell access then convert the same user as samba user. Below is the command to verify samba user is correctly created or Not
# pdbedit -L -v
Configuring samba / CIFS shares
Edit the configuration file to share directory using SMB / SAMBA server. /etc/samba/smb.conf
# vim /etc/samba/smb.conf
[CIFS_Share]
comment = CIFS share for windows clients
path = /arkit_share
browseable = yes
valid users = arkit
writable = yes
Save the file and Exit
- [CIFS_Share] – Share Name
- Path – Directory path which directory you would like to share
- Valid Users – User Name which user we are providing the access
- writable – Providing Write permissions to share ( this permission will be overwritten by Actual Directory permissions)
Enabling Firewall to access from Client
# firewall-cmd --permanent --add-service=samba success # firewall-cmd --reload success
Restart the Samba service to reflect changes
# systemctl restart smb.service # systemctl restart nmb.service
Accessing from Client Side SMB /CIFS Share
Install required packages to access SMB share from Linux client
# yum install cifs-utils Installed: cifs-utils.x86_64 0:6.2-7.el7 Complete!
Create directory for mount point
# mkdir /cifs
# mount -t cifs -o username=arkit //192.168.4.21/CIFS_Share /cifs/ Password for arkit@//192.168.4.21/CIFS_Share: ******
That’s it about simple way to create and manage samba shares in RHEL 7. We will in next article how to auto mount CIFS /SMB share and adding entry into /etc/fstab file. Simple way to create and manage samba Simple way to create and manage samba Simple way to create and manage samba Simple way to create and manage samba Simple way to create and manage samba
Please provide your valuable feedback on the same
Thanks for your wonderful Support and Encouragement