Ubuntu 17.10 安装 cifs 时出现问题

Ubuntu 17.10 安装 cifs 时出现问题

自从更新到 Ubuntu 17.10 以来,我的用于从 NAS 挂载共享的脚本不再起作用。在旧版本的 Ubuntu 上,我可以使用以下行:

mount -t cifs -o username=t0b1,password=$pw //server.local/shared/ /media/shared

添加另一个选项来指定版本似乎并没有改变任何东西:

mount -t cifs -o vers=1.0, username=t0b1,password=$pw //server.local/shared/ /media/shared

当我在 Ubuntu 17.10 上运行脚本时,我得到的唯一输出是“mount”选项列表,但它没有挂载我的共享。有人知道 17.10 上的 cifs 到底发生了什么变化吗?知道我可以在这里更改什么吗?

编辑:这一行确实有效:

mount -t cifs -o  username=t0b1,password=$pw,vers=1.0 //server.local/shared/ /media/shared

但我认为使用 1.0 版本只是一种临时解决办法,因为它存在一些已知的安全问题。应该还有一种方法可以让它与 3 版本一起运行。

答案1

升级到 Ubuntu 17.10 后,我遇到了同样的问题。突然,我的 CIFS 共享无法再挂载。添加vers=1.0挂载选项后,这个问题就解决了。诚然,这有点儿不妥,但有网络共享访问总比没有网络共享访问好。

我的/etc/fstab文件底部之前有以下 4 行:

# Network File Shares
//phc.imsu.ox.ac.uk/phc     /mnt/PHC        cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777 0   0
//phc.imsu.ox.ac.uk/departments /mnt/DEPARTMENTS    cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777 0   0
//femur.imsu.ox.ac.uk/phc_cprd  /mnt/PHC_CPRD       cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777 0   0

将其更改为:

# Network File Shares
//phc.imsu.ox.ac.uk/phc     /mnt/PHC        cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777,vers=1.0    0   0
//phc.imsu.ox.ac.uk/departments /mnt/DEPARTMENTS    cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777,vers=1.0    0   0
//femur.imsu.ox.ac.uk/phc_cprd  /mnt/PHC_CPRD       cifs    credentials=/home/benjamin/.smbcredentials,iocharset=utf8,sec=ntlm,dir_mode=0777,file_mode=0777,vers=1.0    0   0

问题已解决。

答案2

尝试这个:

mount -t cifs -o vers=1.0,username=t0b1,password=$pw //server.local/shared/ /media/shared

也就是说,和你第一次尝试的一样,但没有空格。选项中不允许使用它们。这可能是挂载看不到用户名和密码的原因。

答案3

2018 年 2 月 5 日,我在 Ubuntu 17.0 上使用的挂载选项组合是:

用户名 = guessmyusername,密码 = guessmypassword,iocharset = utf8,sec = ntlmv2,vers = 2.1

它们与 /etc/fstab 中的挂载点以及 mount-t cifs 命令一起工作。

自从版本 1 以来,CIFS 协议的变化已经让我们中的很多人感到困惑。我怀疑随着时间的推移,sec 和 version 的值将变得陈旧,但是当您无法从 Linux 连接到 Windows 共享但可以从 Windows 连接时,更新它们可能是答案。

旧帖子中的许多建议都表明您应该使用 sec=ntlm。我花了一段时间才找到提到 ntlmv2 的内容。其他人说您应该使用 vers=1.0(非常过时且不安全)

该服务器是一台运行 Windows 10 的笔记本电脑。检查后发现,服务器使用的是 CIFS 3.1.1。当然,我尝试了。但没有成功。我使用 ntlmv2 恢复到 2.1,一切开始正常工作。

不起作用的不同 sec 和 version 参数组合会显示不同的错误消息,有些会产生误导,有些已经过时,有些则只是隐晦的。

不管挂载失败时出现什么消息,这里唯一的问题是安全协商未完成。指示资源不可用的消息显然是指安全协商的一个组件,而不是您尝试连接的共享。

此外,终端中显示的消息和使用 dmesg|grep CIFS 找到的消息不同。我需要查看两者才能弄清楚发生了什么。

尝试过的事情:

dmesg|grep CIFS 查看错误消息 使用 /etc/fstab 和 sudo mount -a 挂载共享(现在可用) 使用 mount -t CIFS ...(现在也可用)

答案4

这是我尝试过的方法。经过多次尝试。

  1. 彻底清除后,我重新安装了所有客户端

    $ sudo apt install cifs-utils smbclient nfs-common

  2. 然后创建并挂载点。$mkdir ~/myfiles

  3. 然后按如下方式挂载:

    sudo mount -t cifs -o vers=1.0,credentials=/home/username/.smbcredentials,dir_mode=0777,file_mode=0777 //192.168.2.5/g$/shares/Techno\ Files /home/<username>/myfiles/

我的罪魁祸首是路径(Windows 服务器上的驱动器)。例如。加拿大元、加拿大元、加拿大,然后是文件路径。Ubuntu 文档指出您应该使用\040\eg转义空格new\040Folder,但对我来说它失败了。所以我采用了传统的 Unix 空格转义。

相关内容