Operating system users might have different egoistic opinions on which operating system distribution is better but always find a common ground when it comes to issues like finding ideal file sharing solutions.
Samba is such a solution. Whether you are on a Windows or Linux operating system environment, Samba makes it possible to flexible share files among remote operating system users.
[ You might also like: How to Reset Forgotten Root Password in RHEL 8 ]
Samba’s GPL license attributes it as an open-source project. Through the SMB (Server Message Block) protocol, users not only benefit from Samba’s remote file-sharing capabilities but also its file printing services. Samba is packaged as both server and client software making it compatible with any operating system architecture.
This article is going to take us through installing, configuring, and testing Samba on RHEL and CentOS Stream and also figure out how to share some files if possible from Windows machine.
Installing Samba on RHEL 8
To install Samba and its client software on RHEL 8, execute the following command on the terminal.
$ sudo dnf install -y samba samba-client
Note that this installation does not necessarily need samba-client but its consideration comes with some very useful utilities.
Once the two samba packages are installed successfully, take note of some daemons we need to start and enable. The first daemon; smb, handles file transfer and sharing operations.
The second daemon; nmb, handles NetBIOS name resolutions. It makes it possible for a shareable resource to be visible for users who want to browse them.
The command for enabling these two daemons is as follows:
$ sudo systemctl enable --now {smb,nmb}
Enable Samba on FirwallD in RHEL 8
Firewall configuration is necessary for users on remote machines to easily and flexibly access samba-shared resources through appropriate ports. We can achieve this objective through firewalld.
We can query firewalld to tell us what info it has on Samba file-sharing service.
$ sudo firewall-cmd --info-service samba
The above screen capture tells us that Samba only recognizes ports 137/udp, 138/udp, 139/tcp, and 445/tcp for file-sharing traffic. To permanently add Samba service to firewalld, execute the following command:
$ sudo firewall-cmd --permanent --add-service=samba
For the above-implemented change to be effective, reload the system firewall.
$ sudo firewall-cmd --reload
Verify Samba’s inclusion by the firewall.
$ sudo firewall-cmd --list-services
Configuring Samba Users Shared Directory
For any user to access a shareable directory via Samba without passing through user authentication (password), open the file /etc/samba/smb.conf and trace the [global]
section.
$ sudo nano /etc/samba/smb.conf
Add the line:
map to guest = bad user
An access attempt with the default username nobody will grant anyone passwordless access to shareable files.
A new stanza is needed to define the path to shareable files. We have also added the writeable limitation so that the guest users can only read shared files.
[linuxshelltips] path = /home/dnyce/Desktop/shareable guest only = yes writeable = no
The final piece of this setup is restarting the smb and nmb daemons.
$ sudo systemctl restart {smb,nmb}
Creating Samba Users for Shared Directory
Since this user requires access credentials to read and write shared files, it is advisable to create a dedicated user credential.
$ sudo adduser -M samba_user -s /sbin/nologin $ sudo smbpasswd -a samba_user
The above command also enables you to assign this Samba user his/her password. We also need to make some additional edits on the file /etc/samba/smb.conf.
Changing the line guest only = yes
to guest ok = no
permits access to registered users only.
Finally, execute testparm to be certain there is no syntax error in your Samba configuration.
$ testparm
Accessing Samba Shares from Windows Machine
Once you log in on your Windows OS, right-click anywhere on its Desktop to create a shortcut.
When asked for the location of the item, it should adhere to the following syntax:
\\RHEL8_IP_Address\SHARE_NAME
The SHARE_NAME in this case is linuxshelltips.
\2.168.1.144\linuxshelltips
In the next interface, you can decide to create a custom name for this Samba shortcut.
You will be asked to enter your Samba username and password. Finally, the shortcut to shareable files on RHEL 8 will be created. All files and directories you add on this RHEL8 shareable folder will be accessible to valid Samba users on Windows operating systems.
This article guide has successfully covered Samba installation, configuration, and testing. You can now comfortably add and share files with guests and registered users on other operating system environments like Windows OS at the comfort of your RHEL 8 system.