我应该使用 Rsync 与共享文件夹来保留组文件权限吗

我应该使用 Rsync 与共享文件夹来保留组文件权限吗

我将使用 Rsync 复制 Mac 上的所有用户数据。有 6 个用户。我还设置了一个共享目录,即用户 7,但这并不是真正共享的,如所解释的这里。我按照建议解决了这个问题这里与一群人。这似乎有效。

将来我将不再使用 Mac OS X(原因不在主题中)。当我现在进行备份并保留所有权限时,这将如何影响将数据从副本恢复到新系统(例如 Ubuntu)上的共享目录?我可以在新系统上重新创建组吗?我想这行不通,因为我认为在后台,组不会有相同的 ID,因此权限不匹配。我应该/可以复制群组信息吗?我可以只忽略组权限吗?恢复数据,创建一个新组并将其应用于某个文件夹的所有包含的文件似乎是可行的。

我有一种感觉,使用 NAS 并在那里控制访问将使这个问题消失,但我现在没有。所以现在我只想知道使用 Rsync 复制文件时需要使用哪些参数。我应该添加保留文件权限参数吗?我确实希望将所有用户的所有数据分开,但我不想因为现在做出的错误选择而在将来遇到可访问性问题。在我看来,现在保留文件权限将使恢复每个用户的数据变得更容易。

答案1

您的期望通常是正确的。

当我现在进行备份并保留所有权限时,这将如何影响将数据从副本恢复到新系统(例如 Ubuntu)上的共享目录?

当您使用 rsync 保留所有权和权限时,所有者/组将作为 ID 号写入文件系统。执行ls -ln查看数字而不是用户名。

当我现在进行备份并保留所有权限时,这将如何影响将数据从副本恢复到新系统(例如 Ubuntu)上的共享目录?

如果

  1. 您正在将文件复制到 Ubuntu 可以读取的文件系统,并且
  2. 文件系统支持所有权,并且
  3. 恢复时再次保留所有权(例如 rsync),

然后,它会将 uid 编号复制到您的恢复设备。如果不存在具有该 uid 的用户,您只会看到一个数字。

然后,您可以使用类似于find /path -uid OLD_ID -exec chown USERNAME "{}" \;Ubuntu 的方法来使文件归正确的用户所有。

我可以在新系统上重新创建组吗?我想这行不通,因为我认为在后台,组不会有相同的 ID,因此权限不匹配。我应该/可以复制群组信息吗?我可以只忽略组权限吗?恢复数据,创建一个新组并将其应用于某个文件夹的所有包含的文件似乎是可行的。

您可以确保它具有相同的 gid(创建组时的选项),或者您可以通过检查并确保它们都与新组 ID 匹配来迁移文件数据,例如find /path -gid GROUP_ID -exec chgrp GROUPNAME "{}" \;

所以现在我只想知道使用 Rsync 复制文件时需要使用哪些参数。我应该添加保留文件权限参数吗?

用于-a保存大多数东西(“存档”)。-H如果有硬链接, 请考虑将其创建为硬链接。

相关内容