rsync未在目标文件上设置正确的UID和GID

我正在测试我是否在rsync上使用了正确的选项,因为我想将旧服务器中的大量文件复制到新服务器,保留了确切的权限。

在旧服务器上,该文件存在如下:

 $ ll -n total 0 -rw-r--r-- 1 1002 1000 0 Jan 9 22:56 testfile 

然后我使用rsync来复制文件,如下所示:

 $ rsync -e ssh -avP . 10.10.10.254:/home/someuser/test Enter passphrase for key 'newserver.key': sending incremental file list ./ testfile 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2) sent 125 bytes received 34 bytes 28.91 bytes/sec total size is 0 speedup is 0.00 

在新服务器上,没有ID为1002的用户,也没有具有相同名称的用户。 该文件创建如下:

 $ ll -n total 0 -rw-r--r-- 1 10001 10001 0 Jan 9 23:56 testfile 

我想知道为什么文件不是用ID 1002 1000创建的,因为-a (存档)选项包括-o (所有者), – -g (组)和-p (权限),并且手册页说

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

即使我手动添加--numeric-ids开关(我实际上不想要),结果也是如此

 $ ll -n total 0 -rw-r--r-- 1 10001 1000 0 Jan 9 23:56 testfile 

所以它只保留了GID,而不是UID

rsync必须在目标计算机上以root权限运行。

选项1:为root用户启用SSH登录,然后指定root@进行登录。

选项2: 在此问题中使用与sudo一起使用rsync