更新后 FSTAB 中的 CIFS 挂载不起作用

Gre*_*408 11 fstab mount cifs

几个小时前,我通过软件中心进行了全面更新。已安装的共享已正常工作,但更新后我只收到此错误消息:

mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)

这是我的共享在 fstab 中的安装方式:

//IP-of-server/samba-directory  /Path-to-mount-point/ cifs users,noauto,uid=1000,gid=1000,credentials=/path-to-credentials,iocharset=utf8,sec=ntlm   0       0
Run Code Online (Sandbox Code Playgroud)

使用

mount -a
Run Code Online (Sandbox Code Playgroud)

不显示任何错误。尝试使用 File-Explorer 直接访问共享(使用 smb://path-to-server)也可以正常工作。我已经尝试使用“vers”选项,但没有成功。

使用

tail -f /var/log/kern.log

返回

CIFS VFS: Unable to select appropriate authentication method!
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助和回复

Gre*_*408 18

我实际上不知道为什么,但是更新后sec=ntlmfstab 中 cifs的选项不再起作用并迫使我使用该选项vers=1.0。删除后sec=ntlm它再次工作。我认为新版本的 cifs 使用了更安全的方言。

  • 我将 sec=ntlm 更改为 sec=ntlmssp(因此是新的默认值?),现在它对我有用。我还有 vers=3.0。 (13认同)
  • 根据`man mount.cifs`,默认值(即,如果你根本不指定这些选项,你会得到什么)是`vers=1.0` 和`sec=ntlmssp`。 (2认同)
  • `sec=ntlmssp` 在 `fstab` 中设置这个选项对我有用。 (2认同)

Zef*_*iro 12

fstab在升级 Ubuntu中和之后,我在这条线上遇到了同样的问题

//10.0.0.10/D$ /mnt/toruk/d  cifs credentials=/etc/winpassword.txt,iocharset=utf8,sec=ntlm,ro 0 0
Run Code Online (Sandbox Code Playgroud)

这让我在命令行上得到了相同的错误消息:

# mount /mnt/toruk/d
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)

并在 /var/log/syslog

Sep 14 22:48:13 truhe kernel: [67664.396524] CIFS VFS: Unable to select appropriate authentication method!
Sep 14 22:48:13 truhe kernel: [67664.396529] CIFS VFS: Send error in SessSetup = -22
Sep 14 22:48:13 truhe kernel: [67664.396658] CIFS VFS: cifs_mount failed w/return code = -22
Run Code Online (Sandbox Code Playgroud)

添加参数vers=1.0确实使它再次工作,但是由于某种原因更改了默认值,并且必须有比回退到不安全的弃用协议更好的方法。

多亏了这个答案和评论,我可以通过不使用vers而是改变来让它再次工作sec=ntlmssp

//10.0.0.10/D$ /mnt/toruk/d  cifs credentials=/etc/winpassword.txt,iocharset=utf8,sec=ntlmssp,ro 0 0
Run Code Online (Sandbox Code Playgroud)