如何在Linux中装载CIFS Windows共享?

CIFS是一种基于网络的文件共享协议,用于通过网络共享文件、文件夹和数据。Windows、Linux、MacOSX和其他操作系统都支持CIFS,这使得在不同的操作系统上共享文件和文件夹非常有用。SMB和CIFS协议都是由Microsoft开发的,它们可以毫无问题地协同工作。可以使用安装在Linux系统上的CIFS客户端访问Windows SMB共享。在本教程中,我们将学习如何从Linux系统访问和使用SMB或CIFS Windows共享。

null

安装CIFS Client For Linux

默认情况下,像Ubuntu、Debian、CentOS、Fedora和RHEL这样的Linux发行版不提供CIFS客户机和工具。应明确安装CIFS。CIFS客户端和工具随名为CIFS utils的包提供。

Debian、Ubuntu、Mint、Kali:

sudo apt install cifs-utils

Fedora、CentOS、RHEL:

sudo dnf install cifs-utils

如果您使用的发行版不同于上述发行版,则CIFS的包名称可能不同。因此,使用术语“cifs”来搜索并找到发行版的确切包名。

装载Windows SMB共享

安装CIFS客户端和工具后,我们可以使用它装载Windows共享或SMB共享。CIFS是一个文件系统,可以与mount命令一起使用。mount命令用于装载不同类型的文件系统。这个 -t型 选项用于使用CIFS文件系统装载Windows共享。“cifs”是mount命令的文件系统名称。在下面的示例中,我们将位于路径“/D/Backup”中名为FILESERVER的主机中的windows共享装载到本地Linux路径“/mnt/Backup”中。

sudo mount -t cifs -o username=ismail //FILESERVER/D/Backup /mnt/backup

可以使用用户名和密码凭据访问Windows共享。要装载windows共享,可以使用“-o username=”选项指定用户名。在本例中,我们使用用户名“ismail”。运行此命令后,将用以下行提示密码。键入密码时,出于安全原因,字符不显示。所以只需输入并按回车键。

Password:

或者,可以将remove Windows share hostname指定为IP地址。在下面的示例中,共享位于192.168.1.10中。

sudo mount -t cifs -o username=ismail //192.168.1.10/D/Backup /mnt/backup

列出装载的Windows共享

在用CIFS挂载Windows共享之后,我们可以检查挂载并以不同的方式列出挂载路径。最基本的方法是使用ls命令列出本地装载路径。

ls /mnt/backup

或者,可以使用基于GUI的文件管理器列出装载的本地路径。

相关文章: 打印Grep命令的行号

另一个列出当前monuted路径的命令是df命令,它还列出所有本地分区和挂载。使用以下df命令列出已安装的windows共享。

df -l

提供安装Windows共享的密码

可以使用用户名和密码访问windows共享。用户名和密码可以以不同的方式提供。通常通过命令行提供用户名,并在密码提示中输入密码。如果我们需要在批处理模式或非交互模式下装载windows共享,我们应该用mount命令提供密码。通过带有password选项的命令行界面,mount命令可以提供密码。

sudo mount -t cifs -o username=ismail,password=Pss123 //FILESERVER/D/Backup /mnt/backup

设置域名或工作组名

可以使用不同的帐户和不同的身份验证源访问Windows共享。Active Directory/域或工作组可用于指定用户。用户域或工作组可以使用如下所示的域选项指定。

sudo mount -t cifs -o username=ismail,domain=windowstect //FILESERVER/D/Backup /mnt/backup

从文件读取凭据

可以通过命令行界面指定windows共享访问凭据。但这并不安全。执行的命令存储在历史文件中或登录到文件中。凭证很容易被其他人获取。有一种更安全的方法将crendetials(用户名和密码)存储在文件中。凭证文件格式如下所示。

username=ismailpassword=Pass123domain=windowstect

凭证文件提供如下凭证选项。无需显式添加用户名、密码或域。所有这些参数都是从凭证文件读取的。

sudo mount -t cifs -o credentials=/home/ismail/cifs_credentials //FILESERVER/D/Backup /mnt/backup

指定访问权限

windows共享是用sudo命令挂载的,这使得本地共享路径只能由当前用户读取。如果我们想让所有其他Linux用户都可以使用这个共享,我们可以使用名为diru mode和fileu mode的访问权限选项。

  • dir u模式用于指定目录访问权限,如0755。
  • 文件模式用于指定文件访问权限,如0755。
sudo mount -t cifs -o user=ismail,dir_mode=0755,file_mode=0755 //FILESERVER/D/Backup /mnt/backup

指定用户和组ID

通过CIFS协议挂载时,挂载的分区由其当前所有者用户和组拥有。这可能会在访问、修改权限方面产生一些问题。可以为本地共享路径指定不同的用户和组ID。这将更改作为所有者的指定用户和组的本地共享路径。在下面的示例中,我们将用户ID设置为1001,组ID设置为1001。

sudo mount -t cifs -o user=ismail,uid=1001,gid=1001 //FILESERVER/D/Backup /mnt/backup

使用CIFS自动装载SMB共享

到目前为止,我们已经使用mount命令来装载带有CIFS的windows共享。mount命令通常用于通过命令行界面以交互方式装载文件共享和文件系统。如果我们需要在Linux系统启动时自动挂载windows共享,并且不想键入命令,那么可以使用/etc/fstab。/etc/fstab配置文件存储有关引导期间应用的当前Linux系统的装载信息。我们还可以通过CIFS添加基于网络的共享来装载。

相关文章: 如何列出Ubuntu中安装的软件包?

使用sudo命令以root权限使用您的favoritte文本编辑器打开/etc/fstab文件。在本例中,我们使用nano文本编辑器。或者,您也可以是基于GUI的文本编辑器,比如Kwrite。

sudo nano /etc/fstab

在fstab文件中添加以下行。

#WINDOWS SHARE             LOCAL DIR          TYPE    OPTIONS//FILESERVER/D/Backup      /mnt/backup        cifs    username=ismail,uid=1001

卸载Windows共享

安装windows共享后,我们可能也需要卸载此共享。卸载将分离已装载的windows共享,除非再次装载,否则不能在本地使用。umount命令用于卸载windows共享。只需提供umount命令的本地装入点或路径。卸载操作还需要sudo提供的root特权。

sudo umount /mnt/backup

在某些情况下,共享可以被其他用户使用。在这种情况下,无法卸载它以防止数据损坏。首先,可以使用fuser命令列出allready使用过的文件。

fuser -m /mnt/backup

如果您不关心数据损坏或其他问题,可以使用-l选项,该选项用于延迟卸载windows共享。这将在使用结束时卸载文件系统。

sudo umount -l /mnt/backup
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享