How to Mount Windows Share on Linux using CIFS
In this article, we will perform steps on How we can mount the Windows Shared folder on Linux Server using CIFS rpm or use smbclient command to get (for download) or put (for upload) files between Windows and Linux Server.
Please note we will be using OEL (Oracle Enterprise Linux) 7.9 & yum and wget command line utility and it requires internet access on your Linux Server.
[root@test-machine01 winshare]# cat /etc/oracle-release
Oracle Linux Server release 7.9
Verify if you already have cifs-utils and samba-client rpm installed in your Linux Server using the below commands.
[root@test-machine01 samba]# rpm -qa |grep cifs-utils
[root@test-machine01 samba]# rpm -qa |grep smbclient
If the above commands return no results that means no rpm is installed on the machine. Here we are using yum command to install required rpm packages since we have an internet enabled.
[root@test-machine01 samba]# yum install cifs-utils*
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
cifs-utils x86_64 6.2-10.el7 ol7_latest 84 k
Installed:
cifs-utils.x86_64 0:6.2-10.el7
Complete!
[root@test-machine01 samba]#
[root@test-machine01 samba]# rpm -qa |grep cifs
cifs-utils-6.2-10.el7.x86_64
[root@test-machine01 samba]# yum install samba-client*
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
samba-client x86_64 4.10.16-9.el7_9 ol7_latest 645 k
Installing for dependencies:
libarchive x86_64 3.1.2-14.el7_7 ol7_latest 319 k
libsmbclient x86_64 4.10.16-9.el7_9 ol7_latest 144 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package (+2 Dependent packages)
Installed:
samba-client.x86_64 0:4.10.16-9.el7_9
Dependency Installed:
libarchive.x86_64 0:3.1.2-14.el7_7 libsmbclient.x86_64 0:4.10.16-9.el7_9
Complete!
[root@test-machine01 samba]# rpm -qa |grep samba-client
samba-client-4.10.16-9.el7_9.x86_64
samba-client-libs-4.10.16-9.el7_9.x86_64
Suppose on Windows Server we have Shared Folder by name of Test_Share. Same shared folder, we need to mount on our Linux Server, here we have already provided userid jkhan read-write access on this shared folder. Refer to below images.
As shown in the above images, the Window Shared folder is visible from Linux Server using smbclient command, Please replace IP as your Windows Server’s IP and then enter Windows Server’s password when prompted.
[root@test-machine01 winshare]# smbclient -L //192.168.XXX.XXX -U jkhan
Enter WORKGROUP\jkhan's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
D$ Disk Default share
E$ Disk Default share
IPC$ IPC Remote IPC
Test_Share Disk
Reconnecting with SMB1 for workgroup listing.
Create winshare folder in the Linux Root directory and mount the Window Shared folder using the below mount -t cifs command, You need to replace the IP address same as your Windows Server’s IP and enter a password for your Windows Server’s userid.
[root@test-machine01 ~]# cd /
[root@test-machine01 /]# mkdir winshare
[root@test-machine01 /]# mount -t cifs -o username=jkhan //192.168.XXX.XXX/Test_Share /winshare
Password for jkhan@//192.168.XXX.XXX/Test_Share: ********
[root@test-machine01 /]# df -h /winshare
Filesystem Size Used Avail Use% Mounted on
//192.168.XXX.XXX/Test_Share 466G 404G 63G 87% /winshare
[root@test-machine01 /]#
[root@test-machine01 /]# ls -ld /winshare
drwxr-xr-x. 2 root root 0 Dec 27 15:05 /winshare
[root@test-machine01 /]# cd /winshare
[root@test-machine01 winshare]# ls -ltr
total 1
-rwxr-xr-x. 1 root root 21 Dec 27 14:59 Test_File1.txt
drwxr-xr-x. 2 root root 0 Dec 27 15:11 Test_Dir
-rwxr-xr-x. 1 root root 58 Dec 27 15:14 Test_File2.txt
[root@test-machine01 winshare]#
Below are the same files exist in Windows Shared Folder.
Alternatively to mount you can use smbclient commands to get (download file from Windows to Linux Server) & put (upload file from Linux to Windows Server) files between Linux and Windows server. Follow the below command, in smb command prompt, type help to get a full list of available options.
[root@test-machine01 ~]# smbclient //192.168.XXX.XXX/Test_Share -U jkhan
Enter WORKGROUP\jkhan's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Sun Dec 27 14:59:22 2020
.. D 0 Sun Dec 27 14:59:22 2020
Test_file1.txt A 21 Sun Dec 27 14:59:30 2020
122096383 blocks of size 4096. 16435054 blocks available
smb: \> pwd
Current directory is \\192.168.XXX.XXX\Test_Share\
smb: \> get Test_file1.txt
getting file \Test_file1.txt of size 21 as Test_file1.txt (10.3 KiloBytes/sec) (average 10.3 KiloBytes/sec)
[root@test-machine01 ~]# ls -ltr
total 8
-rw-------. 1 root root 1529 Nov 1 10:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 21 Dec 27 15:00 Test_file1.txt
-rw-r--r--. 1 root root 0 Dec 27 15:06 Test_File5.txt
-rw-r--r--. 1 root root 0 Dec 27 15:06 Test_File6.txt
smb: \Test_Dir\> put Test_File5.txt
putting file Test_File5.txt as \Test_Dir\Test_File5.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \Test_Dir\> put Test_File6.txt
putting file Test_File6.txt as \Test_Dir\Test_File6.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \Test_Dir\>
smb: \Test_Dir\> ls Test_File*
Test_File3.txt A 21 Sun Dec 27 14:59:30 2020
Test_File4.txt A 0 Sun Dec 27 15:05:25 2020
Test_File5.txt A 0 Sun Dec 27 15:10:57 2020
Test_File6.txt A 0 Sun Dec 27 15:11:01 2020
This document is just for learning purpose and always validate in the LAB environment first before applying in the LIVE environment.
Hope so you like this article!
Please share your valuable feedback/comments/subscribe and follow us below and don’t forget to click on the bell icon to get the most recent update. Click here to understand more about our pursuit.