Ubuntu 17.10与mount 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一起运行。

升级到Ubuntu 17.10后我遇到了同样的问题。 突然间,我的CIFS股票将不再增加。 将vers=1.0添加到mount选项中为我修复了它。 不可否认,这有点像一个小屋,但有些网络共享访问比没有网络共享访问更好。

我的/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 

解决了这个问题。

试试这个:

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

也就是说,与第一次尝试相同,但没有空间。 选项中不允许使用它们。 这可能是mount无法看到用户名和密码的原因。

在2018年2月5日Ubuntu 17.0上为我工作的挂载选项的组合是:

username = guessmyusername,password = guessmypassword,iocharset = utf8,sec = ntlmv2,vers = 2.1

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

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

关于旧post的许多建议表明你应该有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 …(现在也可以使用)

这对我有用。 经过多次尝试。

  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//myfiles/

我的罪魁祸首是路径(Windows服务器上的驱动器)。 例如。 c $,g $,f $ ,然后是文件路径。 Ubuntu文档声明你应该使用\040\例如new\040Folder来转义空格,但它对我失败了。 所以我选择了传统的Unix空间逃逸。