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

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

答案1

rsync必须以root目标机器上的权限运行。

选项一:为root用户启用SSH登录,然后指定root@<IP>登录。

选项 2:rsync使用sudoas在这个问题中描述

相关内容