Sephiroth1s'blog

The quieter you became,the more you are able to hear.

一、guest属性坑

1坑、smb.conf 配置

建议调整smb.conf配置的时候关闭 map to guest 属性
这个属性会,在认证失败的时候自动切换到guest用户登录。

但是在win10中默认使用当前用户名登录,如果失败,根据上面这个属性,会使用guest用户登录,
win10中启用不安全的来宾登录选项未配置,或者被禁用,则会导致在文件管理器无法访问共享目录,如下图主要原因

2坑、获取更多错误信息

如果使用文件管理器直接访问搜索到的共享文件夹,会无法访问,并且疑难解答也不能获得更多信息,不方便排查错误。
但如果使用WIN+r \\ip\\主机名这种方式访问,则可以获得更多错误信息。我通过这个方式获得如下信息,报错查找依据,结合搜索结果调整本地策略设置中的来并登录选项

3、排错补充

在linux 中smb服务端中的错误信息可以从 /var/log/samba/目录中的log文件中获取

4、如果有其它nas 的使用需求,建议开启这个属性,map to guest 不动。

参考链接1
参考链接2

二、ls显示+权限问题及ios相关设置

为了ios 系统正确使用,需要在smb配置中加入了acl_xattr 属性,无该配置ios使用异常,windows 无影响,具体现象见参考链接

1、偷懒方案

直接在smb.conf文件的global节点 添加下面这个属性,

1
2
[global]
vfs objects = acl_xattr catia fruit streams_xattr

但会有一点副作用,新建的文件除了你设置的权限外,会多出个 + 权限,可以通过ls -l命令观察到,

  • 不带+号

无权限+

  • 带加号权限

有权限+

这个属于指定的某个用户/组的权限,是由于设置了acl_xattr扩展属性导致的。ACL的全称是 Access Control List (访问控制列表) 。也可以用getfacl/setfacl来手动获取/设置+权限

2、正规解决方案

在global中加入如下属性更好的支持苹果中使用samba,这个方案不会产生+权限问题,具体如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Global]
min protocol = SMB2
vfs objects = fruit streams_xattr
fruit:metadata = stream
fruit:model = MacSamba
fruit:posix_rename = yes
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes

[TimeMachineBackup]
vfs objects = fruit streams_xattr
fruit:time machine = yes
# fruit:time machine max size = SIZE

需要详细信息可以参考这个