强制复制 Samba 共享中的文件的权限

强制复制 Samba 共享中的文件的权限

我在使用 Samba 时遇到了一个小问题,我无法解决,但我真的希望没有解决方案。当将具有限制权限的文件从共享上的一个目录复制到另一个目录时,权限也会被复制,而不是设置为父目录的权限。

具体来说,我们有一个具有以下权限的 Samba 共享:

[Global]
comment = Global Space
path = /home/global
valid users = @users
read only = No
create mask = 0760
directory mask = 0770
force directory mode = 0770
inherit permissions = Yes

我刚刚读到,inherit permissions = Yes禁用了它create maskdirectory mask但让我们暂时忽略它。

当用户在共享上创建文件时,权限会正确设置,以便每个人都可以读取和修改每个人的文件,这要归功于inherit permissions。它还适用于将文件从 Windows 复制到 Samba。

但是,为了让事情复杂化,假设我们在某些子文件夹中有一些受限制的文件夹“priv”,例如

+ customers
|  + customer1
|  |  + priv
|  |  |  + restricted stuff ...
|  |   + source
|  |   |  + files etc.
|  + customer2
|     + source
|        + files again
+ other
   + priv
   + doc
   + who cares

普通用户无法读取这些文件,但priv组内的用户可读取。由于权限是继承的,并且在“priv”目录中正确设置,因此在那里创建的文件归priv组所有,而不是所有users。由于权限分别为 760 和 770(分别针对文件和目录),普通用户无法读取它们。我们还有一个 cron 作业,它每晚递归地确保这些权限,这对我们来说是可以接受的。

如果我们现在将文件从“priv”目录复制到另一个开放目录,普通用户将无法修改它,因为 Linux 权限也被复制了。将文件复制到 Windows 客户端并返回共享可按预期工作。

有没有办法在 Samba 上启用此行为?我的系统是 Ubuntu 14.04.2,Samba 版本为 4.1.6-Ubuntu。

相关内容