Samba 4.10 服务器配置:使用模块“vfs_fruit”更改 Mac 客户端的文件创建掩码,我无法控制它

Aks*_*vig 5 permissions macos ubuntu samba vfs

TLDR;随着vfs objects = catia fruit streams_xattr我的smb.conf,使用苹果电脑的股票中创建的文件不继承权限,并得到扩展ACL。

背景

我正在为我们的办公室设置一个带有 Samba 共享的 NAS,这是一个 50/50 macOs/Windows 10 商店。每个人都应该可以使用专用用户帐户访问共享。

在 Mac 的性能和 TimeMachine 支持方面,我想利用 Samba 4 中的最新增强功能,因此我启用了这些模块 vfs objects = catia fruit streams_xattr

问题

权限不会被继承,并且这些vfs objects集合不尊重掩码。我已经尝试了多种force createcreate masks的组合,并且(如下例所示)inherit permissions 如果没有设置vfs objects模块,权限也符合预期。

我的smb.conf(相关摘录):

[global]

   server string = %h server (Samba, Ubuntu)
   server role = standalone server
   client signing = disabled
   unix password sync = yes
   vfs objects = catia fruit streams_xattr   
   fruit:aapl = yes
   map to guest = bad user
   spotlight = yes
   unix extensions = no
   browseable = yes
   read only = no
   inherit permissions = yes

[OurShare]
   path = /storage/OurShare
   valid users = @office
Run Code Online (Sandbox Code Playgroud)

OurShare2770权限:

ls -al /storage/OurShare
drwxrws---  adminuser  office  4096 Oct 22 03:56
Run Code Online (Sandbox Code Playgroud)

在 Windows 机器上,如预期的那样,在OurSharegets 中创建的任何新目录drwxrws---。然而,从 Mac 创建的目录获取drwxr-xr-x+,所以它们不能被组写入,这是这里的主要问题

$ getfacl 在这样的目录上告诉我

# file: OurShare/testfile
# owner: someuser
# group: office
user::rwx
user:someuser:rwx                 #effective:r-x
group::rwx                        #effective:r-x
group:office:rwx                  #effective:r-x
mask::r-x
other::r-x
Run Code Online (Sandbox Code Playgroud)

如果我vfs objects = catia fruit streams_xattr从 中删除模块smb.conf,那么从 Mac 创建的文件/文件夹的权限与从 Windows 创建的文件/文件夹的权限相匹配 - 即。没有问题。

但是如果没有这些模块,我就失去了fruit:time machine对 Mac 备份目的的支持,以及fruit:aapl一个“在从 Mac 连接时增强了几个缺陷”的扩展(man vfs Fruit)。

这是一个 Ubuntu 19.04 系统,带有 Samba v4.10.0

我的问题

如何在 Samba 中保留这些 Mac 优化,同时仍然能够从服务器端控制创建的文件和文件夹的权限?

谢谢大家的建议!这让我发疯

Aks*_*vig 13

事实证明这是(已经回答)[ https://unix.stackexchange.com/questions/486919/creating-a-directory-in-samba-share-from-osx-client-always-has-acl-maskr-x ]在 Unix stackexchange 中。

回答:设置全局选项fruit:nfs_aces = no将阻止 macOS 客户端使用 NFS ACE 修改目录的 UNIX 模式。访问控制条目是访问控制列表 (ACL) 的一部分。该选项默认为yes- 请参阅vfs_fruit 联机帮助页

我可以确认,禁用此选项会导致权限继承在 Mac 客户端上按预期工作,就像在 Windows 客户端上一样。

很高兴弄清楚了!