如何从 BASH 访问 Windows 共享?

如何从 BASH 访问 Windows 共享?

这可能是个完全菜鸟的问题。我在 VMWare Player 中安装了 Ubuntu。运行良好。我通常在终端中工作,直到今天才意识到我可以使用文件图标连接到我的 Windows 主机(实际上是我的办公室网络)。太棒了!

但是...那么...我该如何从 bash 内部访问这些新共享?从我的默认提示符中,我不应该看到一些 \my-windows-share

或者我需要以某种方式在终端内“手动”安装这些驱动器吗?如果是这样,怎么做?

我看到了很多关于 VirtualBox 的回答。不知道这是否适用于我。我想我假设一旦我通过文件连接,我就会自动连接到终端。

答案1

首先您需要安装 samba 和 cifs-utils:

sudo apt-get install samba cifs-utils

然后使用 Bash 脚本通过 samba 在 Linux 中挂载 Windows 共享文件夹:

$ mkdir /mnt/smb

$ touch smb.sh

chmod +x smb.sh

$ vi smb.sh

使用 vi 将以下内容写入 smb.sh 文件:

#/bin/bash



SERVER_IP="192.168.1.1"

SHARE_NAME="c$"

USERNAME="samba user name"

PASSWD="samba password"

DOMAIN="domain"


mount.cifs //$SERVER_IP/$SHARE_NAME /mnt/smb/ -o username=$USERNAME,password=$PASSWD,dom=$DOMAIN

最后运行脚本来挂载你的 Windows 共享并将 cd 放入共享中:

./smb.sh

$ cd /mnt/smb/

在我看来,另一种方法更直接、更简单:它涉及创建挂载点、编辑 fstab,然后使用一个命令挂载 fstab 中的所有文件系统。

创建文件夹:sudo mkdir /mnt/myDirectory

编辑 fstab:sudo vi /etc/fstab

将以下内容附加到 fstab 文件:

//server/Share /mnt/myDirectory cifs domain=myDomain,username=myUserName,password=myPassword 0 0

确保在这些占位符的位置填写所有适当的信息。然后使用wq“写入并退出”保存 fstab 文件。

最后挂载 fstab 中列出的所有文件系统:

sudo mount -a

现在,您可以通过以下方式验证共享是否可用:

ls /mnt/myDirectory

您应该会看到 Windows 共享顶层目录中的文件。

答案2

看起来这是一篇旧文章,但仍然非常相关。我发现自 WannaCry 勒索软件(2017 年 5 月)发布以来,许多 Windows 共享都拒绝使用旧的 SMB V1。

这就是我最终要做的,
我安装了以下内容:

sudo apt install samba-common samba-common-bin cifs-utils

然后在 [global] 下添加行 - vi /etc/samba/smb.conf

server min protocol = SMB2_10
client min protocol = SMB2
client max protocol = SMB3

然后允许以下命令:

mount -t cifs -o vers=2.1 -o username=<username>,sec=ntlmssp //server/path /mnt/smb

相关内容