修复自动复制到 Samba 共享的文件的权限

修复自动复制到 Samba 共享的文件的权限

所以我有一个 Samba 共享,其中有多个组和用户。就我而言:

名为CEO将成为团体的成员伙伴用户

虽然用户办事员只是团体的一员用户

有 2 个共享文件夹,CommonPartners-only。 公共文件夹归用户所有,合作伙伴专属文件夹归合作伙伴所有。 因此CEO可以访问CommonPartners-Only,而办事员只能访问Common

现在的问题是,当 CEO 复制某些内容时Partners-OnlyCommon文件仍然归属于伙伴组和任何常规用户都无法访问该文件。

我使用 crontab 修复了这个问题,如下所示:

*/5 * * * * /usr/bin/chgrp  -R Users /mnt/Common/ >> /var/log/permissions/Common.log 2>&1
*/5 * * * * /usr/bin/chmod  -R g+rw /mnt/Common >> /var/log/permissions/partners.log 2>&1

并且它起作用了,但是问题在于,由于有许多不同的组和共享,我有太多次类似的 cronjob,这会给服务器带来太大的压力。

有没有办法让 Samba 在复制文件时自行调整权限?谢谢

答案1

那么像这样...假设我在 /mnt/Common 有一个文件夹:

更改所有权并将 setgid 位应用到该文件夹​​:

sudo chown :users /mnt/Common
sudo chmod 2775 /mnt/Common

setgid 位将强制服务器本身添加到此目录的每个新文件继承父级的组。

然后在 smb.conf 中创建一个如下所示的共享定义:

[Common]
path = /mnt/Common
valid users = @users @partners
force group = users
writeable = yes
create mask = 0664
force directory mode = 2775

当任一组的成员将文件添加到共享时,它将以组 = 用户和权限 664 保存。添加的任何新子目录都将以组 = 用户保存,将文件夹权限设置为 775,并将 setgid 位应用于该子目录。

相关内容