rsync 滥用目标 ACL 来取乐

rsync 滥用目标 ACL 来取乐

.ssh我在rsync 目标目录() 上配置了以下 ACL :

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
user:backup:r-x
group::---
group:backup:r-x
mask::r-x
other::---
default:user::rwx
default:user:backup:r-x
default:group::---
default:group:backup:r-x
default:mask::r-x
default:other::---

我正在使用rsync选项在两台服务器之间-aXzv传输.ssh目录,传输后,目标具有以下 ACL:

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
user:backup:r-x            #effective:---
group::---
group:backup:r-x           #effective:---
mask::---
other::---
default:user::rwx
default:user:backup:r-x
default:group::---
default:group:backup:r-x
default:mask::r-x
default:other::---

源目录具有以下 ACL:

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
group::---
other::---

注意目标已从(rsync 之前)mask更改为(rsync 之后)。r-x---

为什么会发生这种情况,如何使用 rsync 保留源用户、组和其他权限,同时保留目标的扩展 ACL,以便用户backup在 rsync 操作后具有完全执行和写入权限?

编辑:两个服务器都运行 rsync 3.0.9,两个服务器文件系统都启用了 ACL。源服务器使用 ext3,目标服务器使用 ext4。

答案1

目标掩码更改为,---因为您使用-a选项运行 rsync,这意味着-p/ --perms。这意味着将尝试保留源的权限,然后有效地尝试在目标上rsync执行。请参阅chmod 700https://serverfault.com/questions/352783/why-does-chmod1-on-the-group-affect-the-acl-mask/352915#352915解释为什么更改组权限chmod将会更改 ACL 掩码。

至于尊重目标 ACL 并保留对“备份”组的访问,也许可以运行--no-p --chmod=g=rwX?这将使用目录的默认 ACL 创建新文件,并在不更改其权限的情况下更新文件 - 也就是说,只有在现有文件权限不变的情况下它才会起作用。

相关内容