我刚刚从 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