当uid / gid不同时,rsync如何保留所有权?

时间:2018-08-28 23:36:23

标签: rsync ownership

在部署新服务器并使用/home迁移rsync的全部内容后,我注意到实际上组和用户所有权已保留,尽管两个服务器之间的ID有所不同。

具体来说,我运行的命令是:

rsync -avz oldserver:/home/ /home

尽管我已经在新服务器上重新创建了所有相同的用户和组,但是它们中大多数具有与旧服务器不同的ID,但是以某种方式,此命令神奇地保留了正确的所有权(基于名称)并分配了新的GID和uid适用时。我可以通过ls -n /home进行验证。

这怎么可能? rsync是否进行某种名称查找?

1 个答案:

答案 0 :(得分:1)

是的,默认情况下,rsync按名称匹配所有者和组。有关详细信息,请参见--numeric-ids的文档。

  

-数字ID

     

使用此选项,rsync将传输数字组和用户ID,而不是使用用户名和组名并在两端进行映射。

     

默认情况下,rsync将使用用户名和组名来确定授予文件的所有权。即使未指定--numeric-ids选项,也不会通过用户/组名称映射特殊uid 0和特殊组0。

     

如果用户或组在源系统上没有名称,或者在目标系统上不匹配,则使用源系统中的数字ID。

rsync大概使用getpwnamgetgrnam查找与用户名和组名关联的uid和gid。