改写:
我有一个具有权限的目录755
,使用 samba 共享。我有一个 samba 用户abc:abc
,它也是该目录的所有者。 Windows samba 客户端写入该目录被拒绝。当我将目录 chmod 到 时775
,Windows 客户端现在可以在其中写入。
从上面,我得出的结论是,目录正在检查 samba 用户的组权限,即使该用户是该目录的所有者。为什么?
原始细节:
如果我有任何错别字,请道歉,我是从空中打字的。
drwxr-xr-x abc abc 4096 DirectoryName
我已经smb.conf
分享了。
[something] comment = something browseable = yes path = /something/something guest ok = no read only = no create mask = 0775 valid user = abc
在 Windows 10 上,我使用用户 abc 访问 samba 共享。我注意到我没有写入该文件夹的权限。这对我来说很奇怪,因为它abc
是目录的所有者,并且应该具有完全访问权限。我使用 chmod 775 更改了权限,abc
现在可以写入,因此我得出的结论是它正在使用组权限进行访问。
为什么?我认为所有者权限优先于组。这是它的工作原理还是 samba 处理权限的方式?
directory mask
smb.conf 中还需要吗?它与目录权限本身有何不同?
答案1
如果不配置,directory mask
则使用默认值。该值相当于umask
进程的值。它会影响新创建的目录的权限。
新目录具有以下权限:
- 目录掩码000
- 000
- 目录掩码 755
- 第755章
- 目录掩码 777
- 第777章
答案2
我刚刚经历过这些确切的症状。 Centos 8、Samba 4.11.2。结果发现是缓存有问题。我改编了在以下位置找到的命令行(自然是作为超级用户)此康比茨页面我的具体设置如下:
systemctl stop nmb
systemctl stop smb
net cache flush
cd /var/lib/samba
rm *.tdb
systemctl start nmb
systemctl start smb
这样做之后,问题就消失了; Samba 开始正确应用用户权限而不是用户的组权限。无需重新启动。