如果不在目标计算机上以root身份运行rsync(存储备份),是否可以这样做?@H_403_3@
一些想法……@H_403_3@
>有没有办法以允许非root用户chown的方式挂载文件系统(FUSE?)? (我想它可能需要noexec才能禁止提升.)
>某种方式来存储和恢复元数据文件中的所有权而不是文件系统本身?
> tar可以存储文件所有权,虽然让它与rsync或增量备份一起使用会涉及更多.能够像常规文件系统一样浏览备份也很好.
>也许某种假根环境?虚拟机可以工作,但是可以避免相关的维护和性能开销.@H_403_3@
解决方法
但是,您至少有两种解决方法可以在保留所有权的同时避免root访问:@H_403_3@
>使用–fake-super rsync选项.从手册页:@H_403_3@
When this option is enabled,rsync simulates super-user activities by
saving/restoring the privileged attributes via special extended
attributes that are attached to each file (as needed)@H_403_3@
这意味着所有权不是直接保留在经典的Unix风格中,而是所有权信息存储在一个特殊的扩展属性中(即:一种附加到文件的“标记”).还原时,rsync可以使用此EA /标记正确重建原始文件所有者.@H_403_3@
>不要让rsync保留所有权信息,而是使用getfacl实用程序保留它们.例如,发出getfacl -R MNTPOINT> acls.txt可以有效地将所有权(和ACL)信息保存在文本文件中,以后可以使用setfacl –restore命令恢复此类信息.@H_403_3@