如何正确使用rsync来保留所有文件权限和所有权?

问题描述 投票:0回答:2

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

我所做的是在 PopOS 上本地运行此命令:

sudo rsync -avz /home/user1/test/ [email protected]:/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 [email protected]:/home/user23/rrr

该命令无法复制到根目录,因此我必须将远程目标更改为 user23 的主文件夹。但结果是一样的。

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

linux permissions backup rsync ownership
2个回答
1
投票

看看(目标)文件系统是如何挂载到 Rocky(目标)系统上的。

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


0
投票

您需要

-p
标志。

Grep 中的“保留权限”。或者在在线手册页中:

https://linux.die.net/man/1/rsync

© www.soinside.com 2019 - 2024. All rights reserved.