最近,我决定使用 ssh + rsync 创建从我的主机到小型备份服务器的自动备份。
我已为该任务“backuppc”创建了单独的用户,创建了“共享组”,并将数据的挂载点从主用户主文件夹更改为 /data。因此,现在它看起来像 /data{Media, Work} 等。
然后我尝试根据我的意见设置“正确的权限”。首先,我将我的主用户“serg”和备份任务的用户“backuppc”添加到共享组。我已将共享文件夹的权限更改为如下所示:
# file: data/Media/
# owner: serg
# group: shared
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:shared:rwx
default:mask::rwx
default:other::---
“正确的权限”我看到这样的内容:备份资源组应该是“共享的”,它应该具有读写权限,而“其他”不应该有任何权限。我已经通过 setfacl 实用程序更改了默认掩码和掩码,设置粘性位以从父文件夹继承属性。
完成所有这些步骤后,我认为当我将具有不同组所有者的主目录中的任何文件复制/移动到我的“/data”资源时,组将被“共享”组覆盖,并将获得读写权限。
但是,当我与另一个组所有者复制或移动文件时,它仍然相同,并且不会继承共享资源的默认掩码。即使当我尝试将任何文件从 Firefox 保存到共享资源文件夹时,它也只获得共享组的读取权限。但组的默认掩码是“rwx”。我明白,我可以使用 umask,但我认为这对于这个简单的任务来说太困难了。
现在我觉得我的备份想法有问题。也许我误解了什么,你能给我一些建议吗?我只是希望,任何将在共享资源中放置/复制/移动的文件都继承“共享”组“rwx”权限。或者也许我应该以另一种方式做到这一点?谢谢。
PS 为了更改权限,我使用了 setfacl 实用程序、chown 和 chmod。
chown -R :shared /data/Media
现在,我设置了粘性位并设置了目录的读、写和执行权限。
chmod -R g+swrx /data/media
接下来,我使用 setfacl 为组设置默认权限:
setfacl -R -dm "g:shared:rwx" /data/Media
PS 这里 ls -ld 输出
drwxrws---+ 15 serg shared 4096 авг 16 22:21 /data/Media/