如何使用CIFS在Linux上挂载Windows共享

时间:2020-03-05 15:27:26  来源:igfitidea点击:

在Linux和UNIX操作系统上,可以使用“ mount”命令的“ cifs”选项将Windows共享安装在本地目录树中的特定安装点上。

通用Internet文件系统(CIFS)是一种网络文件共享协议。
CIFS是SMB的一种形式。

在本教程中,我们将说明如何在Linux系统上手动和自动安装Windows共享。

安装CIFS实用程序包

要在Linux系统上挂载Windows共享,首先需要安装CIFS实用程序包。

  • 在Ubuntu和Debian上安装CIFS实用程序:
sudo apt updatesudo apt install cifs-utils
  • 在CentOS和Fedora上安装CIFS实用程序:
sudo dnf install cifs-utils

软件包名称在Linux发行版之间可能有所不同。

挂载CIFS Windows共享

挂载远程Windows共享类似于挂载常规文件系统。

首先,创建一个目录作为远程Windows共享的安装点:

sudo mkdir /mnt/win_share

以超级用户或者具有sudo特权的用户身份运行以下命令来挂载共享:

sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share

系统将提示我们输入密码:

Password:

成功时,不会产生任何输出。

要验证是否成功安装了远程Windows共享,请使用'mount'或者'df -h'命令。

挂载共享后,挂载点将成为已挂载文件系统的根目录。
我们可以像处理本地文件一样使用远程文件。

密码也可以在命令行中提供:

sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share

如果用户位于Windows工作组或者域中,则可以如下设置:

sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share

为了提高安全性,建议使用凭据文件,其中包含共享用户名,密码和域。

凭证文件具有以下格式:

/etc/win-credentials

username = user
password = password
domain = domain

用户不得读取该文件。
要设置正确的权限和所有权,请运行:

sudo chown root: /etc/win-credentialssudo chmod 600 /etc/win-credentials

要使用凭证文件,请如下定义:

sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share

默认情况下,已挂载的共享由root拥有,并且权限设置为777.

使用“ dir_mode”选项设置目录许可权,使用“ file_mode”设置文件许可权:

sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share

可以使用'uid'和'gid'选项更改默认的用户和组所有权:

sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share

要设置其他选项,请在'-o'选项之后将它们添加为以逗号分隔的列表。

要获取所有安装选项的列表,请在终端中输入“ man mount”。

自动安装

使用“ mount”命令手动挂载共享时,重新启动后该持久性不会持久。

“/etc/fstab”文件包含一个条目列表,这些条目定义了系统启动时在何处以及如何挂载文件系统。

要在Linux系统启动时自动挂载Windows共享,请在“/etc/fstab”文件中定义挂载。
该行必须包含Windows PC的主机名或者IP地址,共享名以及本地计算机上的安装点。

使用文本编辑器打开“/etc/fstab”文件:

sudo nano /etc/fstab

将以下行添加到文件中:

/etc/fstab

# <file system>             <dir>          <type> <options>                                                   <dump>  <pass>
//WIN_SHARE_IP/share_name  /mnt/win_share  cifs  credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0       0

运行以下命令来安装共享:

sudo mount /mnt/win_share

“挂载”命令将读取“/etc/fstab”的内容并挂载共享。

下次重新启动系统时,将自动安装Windows共享。

卸载Windows共享

'umount'命令从目录树中分离(卸载)已安装的文件系统。

要分离已挂载的Windows共享,请使用'umount'命令,后跟已被挂载的目录或者远程共享:

sudo umount /mnt/win_share

如果CIFS安装在“ fstab”文件中有一个条目,请将其删除。

使用共享时,“ umount”命令将无法分离共享。
要找出哪些进程正在访问Windows共享,请使用“ fuser”命令:

fuser -m MOUNT_POINT

找到进程后,可以使用“ kill”命令将其停止并卸载共享。

如果仍然无法卸载共享,请使用'-l'('--lazy')选项,该选项使我们可以在不再繁忙的文件系统后立即将其卸载。

sudo umount -l MOUNT_POINT