在开始之前,我应该注意,我所要求的与添加到 mount.cifs 的“vers=1.0”标志完美配合。但在服务器上进行操作系统升级(将 samba 升级到 )后Version 4.13.17-Ubuntu
,这显然不再受支持。
另请注意,这里不涉及 Windows - 我只处理 Linux 用户、组和权限信息。
我有一个运行 smbd 并共享 /data 卷的 Ubuntu 20.04 服务器,以及一个与 mount.cifs 共享的 Ubuntu 20.04 客户端安装。在客户端上,ls -l
显示 root/root 拥有的所有内容:
# mount.cifs //server/data /data -o username=username,password=password
# ls -l /data
total 0
drwxr-xr-x 2 root root 0 Mar 29 14:07 directory-a
drwxr-xr-x 2 root root 0 Feb 13 16:43 directory-b
drwxr-xr-x 2 root root 0 May 17 2012 etc
drwxr-xr-x 2 root root 0 Apr 21 2014 lost+found
drwxr-xr-x 2 root root 0 Feb 13 16:43 shared
我想要的是是让客户端看到与服务器上相同的用户、组和权限,例如:
server# ls -l /data
total 0
drwxr-xr-x 2 fred fred 4096 Mar 29 14:07 directory-a
drwxr-xr-x 2 barney barney 4096 Feb 13 16:43 directory-b
drwxr-xr-x 2 wilma wilma 4096 May 17 2012 etc
drwx------ 2 root root 16384 Apr 21 2014 lost+found
drwxrwxr-x 2 fred users 4096 Feb 13 16:43 shared
所有用户和组帐户都存在,并且在两个系统上都具有相同的 UID 和 GUI(正如我上面所说,这一切以前都运行良好)。以下是服务器升级之前在客户端上使用的旧 fstab 条目:
//server/data /data cifs _netdev,username=username,password=password,noexec,noacl,vers=1.0 0 0
现在出现错误:
# mount /data
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
并删除“vers=1.0”标志修复了此错误,但结果如上所示(丢失所有用户/组/权限信息)。
服务器上的 smb.conf 包含:
[global]
workgroup = WORKGROUP
server string = Server
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = smbpasswd
obey pam restrictions = no
unix password sync = no
pam password change = no
map to guest = Never
# defaults for shares
guest ok = no
create mask = 0775
directory mask = 0775
case sensitive = yes
map archive = no
[data]
comment = Data
path = /data
writeable = no
browseable = yes
write list = fred
问题
有没有办法让新版本的 Samba 保持旧的 vers=1.0 行为?谢谢!
答案1
好吧,我终于找到了。将其添加到 smb.conf 允许再次使用 vers=1.0 选项:
server min protocol = NT1
我在一份不起眼的错误报告中发现了它: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1883234
Unix 扩展仅适用于 SMB1 协议,该协议已被弃用并且默认情况下不再使用。正在开发以在 SMB3 中支持它们。
您可以通过将其添加到服务器 smb.conf 中的 [global] 来重新启用 SMB1:
服务器最小协议 = NT1
您可以再次尝试上述设置并报告吗?
列出目录时还会有一个新的副作用,即权限字段中会出现一个额外的 +(加号),而以前的版本中没有此功能。它看起来像这样:
# ls -l /data
total 0
drwxr-xr-x+ 2 fred fred 4096 Mar 29 14:07 directory-a
drwxr-xr-x+ 2 barney barney 4096 Feb 13 16:43 directory-b
drwxr-xr-x+ 2 wilma wilma 4096 May 17 2012 etc
drwx------ 2 root root 16384 Apr 21 2014 lost+found
drwxrwxr-x+ 2 fred users 4096 Feb 13 16:43 shared
我找不到任何有关它的文档,但它似乎对应于我有写入权限的文件和目录。