.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 700
https://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 创建新文件,并在不更改其权限的情况下更新文件 - 也就是说,只有在现有文件权限不变的情况下它才会起作用。