如何使用CIFS在Linux上挂载Windows共享
在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