How to mount CIFS share in CentOS 7?

In this article, we’ll learn about how to mount CIFS share in CentOS 7. Server Message Block (SMB) of which the version SMB1 is also known as Common Internet File System (CIFS). It is a network file system protocol.

A network file system provides access to the local directories and files of the server remotely to a different server as if they were locally attached to the server.

The CIFS VFS was added to mainline Linux kernels in 2.5.42. 

Most of the CIFS code is implemented as part of the Linux kernel. There are some userspace pieces that are maintained separately as part of the cifs-utils project. 

Source: https://wiki.samba.org/index.php/LinuxCIFS

If you want to simply mount a CIFS share on a Linux platform you must able to mount it out of the box without any need for installation of any package. But for more options to mount CIFS share will require cifs-utils package to be installed which is recommended.

Steps to Mount CIFS share

To simply mount CIFS share, execute mount command with sudo command:

sudo mount -t cifs -o username=shareusername,password=sharepassword //server/share /mnt

You can also execute df -h command check your mount.

Checking Mount
Checking cifs share mount with df -h command

Now you can simply go to your mount location (in our case it is /mnt) to access the remote files and directories.

Successfully Mounted Cifs Share
Successfully mounted cifs share

For more options to mount cifs share, you’ll need to install cifs-utils package which can be easily installed using the yum command with sudo command:

sudo yum install cifs-utils

From here you’ll require cifs-utils package. Instead of mentioning credentials in the command, you can use a file containing credentials in the following format,

username=value
password=value
domain=value

You can leave domain=value as domain= if you don’t want to specify the domain. Like in our case we stored credentials in /etc/cifs-share and then you can execute the command:

sudo mount -t cifs -o credentials=/location/to/credentials //server/share /mnt
Using Credentials File
Using credentials file with mount

To make your credentials file only readable by the root user and not anyone else we can make use of chown and chmod command to set permissions:

sudo chown root:root /etc/cifs-share
sudo chmod 700 /etc/cifs-share

By default cifs share is mounted with full permissions in Linux, you can change these permissions by file_mode and dir_mode,

sudo mount -t cifs -o credentials=/location/to/credentials,file_mode=0777,dir_mode=0777 //server/share /mnt

You can read more about it’s options at https://linux.die.net/man/8/mount.cifs or, execute man mount.cifs in terminal.

Auto Mounting CIFS share

To mount cifs share automatically up on reboots, add the follow line with your own cifs share details in /etc/fstab file.

//server/share    /mnt   cifs  credentials=/location/to/credentials,file_mode=0777,dir_mode=0777 0 0

To test it out execute:

sudo mount -a

It should automatically mount your cifs share.

Unmounting CIFS share

To unmount your CIFS share, simply execute:

sudo umount /mnt

You can also read more about umount at https://linux.die.net/man/8/umount or, simply execute man umount in terminal.

Conclusion

Since the Linux kernel has native support for cifs, you can directly mount the cifs share without any installation. But it is recommended to install cifs-utils for more options to mount cifs share (like using credentials file, setting modes, etc..) and, to automount your cifs share every time you boot or reboot, you can add it to the /etc/fstab file. We hope this article was helpful to you. Happy Learning!