【问题标题】:How to use rsync properly to keep all file permissions and ownership?如何正确使用 rsync 来保留所有文件权限和所有权?
【发布时间】:2022-01-20 04:40:07
【问题描述】:

我正在尝试使用 rsync 将一些数据从一台计算机 (PopOS! 21.04) 备份到另一台计算机 (Rocky 8.4)。但无论我在 rsync 中使用哪些标志,文件权限和所有权似乎永远不会被保存。

我所做的是在 PopOS 上本地运行此命令:
sudo rsync -avz /home/user1/test/ root@192.168.10.11:/root/ttt/

结果我得到了一些链接:

[root@rocky_clone0 ~]# ls -ld ttt/
drwxrwxr-x. 2 user23 user23 32 Dec 17  2021 ttt/
[root@rocky_clone0 ~]# ls -l ttt/
total 8
-rw-rw-r--. 1 user23 user23 57 Dec 17  2021 test1
-rw-rw-r--. 1 user23 user23 29 Dec 17  2021 test2

因此,所有文件所有权都更改为 user23,这是 Rocky 上唯一的常规用户。我不明白这是怎么发生的,我使用 rsync 连接到远程主机上的 root,但是结果文件被复制为 user23.为什么 -a 标志在这种情况下不能正常工作?

我也尝试过这些标志:
sudo rsync -avz --rsync-path="sudo -u user23 rsync -a" /home/user1/test root@192.168.10.11:/home/user23/rrr
该命令无法复制到根目录,因此我不得不将远程目标更改为 user23 的主文件夹。但结果是一样的。

如果有人可以向我解释我做错了什么,以及如何使用 rsync 备份文件以使权限和所有权与本地计算机上的相同,我将不胜感激。

【问题讨论】:

    标签: linux permissions backup rsync ownership


    【解决方案1】:

    看看(目标)文件系统是如何安装在 Rocky(目标)系统上的。

    一些挂载的文件系统(例如许多 FUSE 挂载)不支持经典的 unix 权限,而只是使用挂载文件系统的用户名作为所有者/组。 任何对 chown/chmod/etc 的尝试(无论是您还是 rsync)都将被默默地忽略,但似乎“成功”(未报告错误)。

    【讨论】:

      猜你喜欢
      • 2013-11-16
      • 2018-08-08
      • 2017-02-27
      • 2013-10-08
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      相关资源
      最近更新 更多