我有一台简单的 Puppylinux 服务器,通过 Samba 共享两个文件夹。局域网内有大约 16 台其他 PC,这些 PC 的操作系统版本各不相同,年代也各不相同。
Ubuntu Studio PC 在启动时使用 fstab 条目自动挂载共享文件夹。使用 smbcredentials 文件,权限为 600。
但自从从 20.04 升级到 22.04 后,我收到以下错误:-
mount 错误(22):参数无效请参阅 mount.cifs(8) 手册页(例如 man mount.cifs)和内核日志消息(dmesg)
我理解这可能是由 fstab 条目引起的错误。具体如下:-
//192.168.1.112/vol2 /home/dave/vol1 cifs 用户,exec,dev,suid,rw,凭据=/.smbcredentials,noperm,iocharset=utf8,sec=ntlm,vers=1.0,acl,0 0
dmesg 返回:- [70672.547621] CIFS:VFS:糟糕的安全选项:ntlm
所以我想知道 ntlm 是否已在 22.04 中被弃用、默认被禁用或被赋予不同的名称。
如果是,如何重新启用它?是否可以防止将来的 Ubuntu 版本升级重复此操作?
答案1
mount.cifs 由 Linux 内核控制。
您在 Ubuntu 22.04 中使用的内核已删除 ntlm 选项。
默认情况下,cifs 与服务器协商以确定要使用的最高 smb 方言(vers),从 SMB2.1 开始一直到 SMB 3.X
此外,默认情况下,cifs 使用 sec=ntlmssp,它比旧的 ntlm 值高出很多级别。
答案2
从 fstab 条目中删除 sec=ntlm,vers=1.0 是可行的,但这会用无密码加密取代已弃用的密码加密。
sec=krb5 和 sec=sys 会破坏它,但根据 Morbius 的建议,在 fstab 条目中将 sec=ntlm 替换为 sec=ntlmssp 是可行的