Ubuntu18.04 smb 使用 SMB3 强制用户不起作用(所有文件均由 root 而不是强制用户拥有)与 vers=1.0 一起工作

Ubuntu18.04 smb 使用 SMB3 强制用户不起作用(所有文件均由 root 而不是强制用户拥有)与 vers=1.0 一起工作

我刚刚从 ubuntu16.04 升级到 18.04.1

之前我使用 autofs 自动挂载了一些 CIFS/SMB 共享,并且其中一个共享在 smb 服务器上配置为强制用户和组使用“av:av”

这在 16.04 中运行良好,但在 18.04 中,相同的配置导致挂载的共享显示所有文件都归 root:root 所有,即使他们在服务器上的用户 ID 是 av:av(Ubuntu 客户端上存在具有相同 ID 的相同用户 ID)

(服务器端没有任何变化,其他 ubuntu16 机器仍然可以自动挂载相同的共享并获取 av:av 所有权)

如果我关闭 autofs 并手动挂载,也会出现同样的问题,所以问题与 smb/cifs 有关,而与 autofs 有关。

如果我强制将 auto.cifs mount 命令中的方言版本设置为 vers=1.0,我就可以解决这个问题,就像这样...

av -fstype=cifs,vers=1.0,rw,credentials=/home/myuser/.smbcredentials ://fileserver/av

并且相同的解决方法可以像这样手动进行,例如...

mount -t cifs -o vers=1.0,username=myuser,password=mypassword //fileserver/av /fileserver

因此,这似乎与 ubuntu18 上 > 1.0 版的 smb 方言有关

有谁知道如何正确修复这个问题,因为我不想使用 smb 方言 1.0?

非常感谢您的帮助/建议。

答案1

18.04 附带的 Linux 内核改变了 cifs 处理 smb 方言的方式。它过去(如在 16.04 中)默认为 1.0。现在它要么将其设置为 3.0,要么根据您使用的内核版本协商 2.1 到 3.0 之间的版本。

除非您的 Samba 服务器非常旧,否则这没什么关系。如果您的 Samba 服务器非常旧,那么在 cifs 中将其设置为 1.0 只是将其设置回 16.04 中的位置。

不过,我不确定这一切与客户端从挂载点看到的权限有何关系。您可以考虑在客户端上控制它:

删除vers=1.0并添加uid=av或者uid=1000如果您的 uid 号码是 1000:

av -fstype=cifs,uid=av,rw,credentials=/home/myuser/.smbcredentials ://fileserver/av

或许可以添加nounix

av -fstype=cifs,uid=av,nounix,rw,credentials=/home/myuser/.smbcredentials ://fileserver/av

相关内容