rsync 备份远程服务器维护组和所有者

rsync 备份远程服务器维护组和所有者

这似乎是一个应该被覆盖数百万次的问题,但我遇到的问题经过几天的网络搜索后仍然可以解决。

我有一台远程服务器,我想将其全部备份。我正在本地计算机上运行 rsync,用户为塞布可以使用公共 rsa 密钥通过 ssh 访问服务器。远程有两个用户,塞布git每个都有自己的文件夹。用户塞布远程计算机上是否有 sudoer。

我从本地主机运行的命令

sudo rsync -av --rsync-path="sudo /usr/bin/rsync" seb@remote:/ /path/to/backup/

就身份验证和权限而言,运行良好。我必须使用 sudo 以 root 身份远程运行,否则我会被拒绝访问git

我在本地运行使用 sudo,因为rsync手册指出,为了像使用标志一样保留组和所有者设置-a,接收用户应该

然而rsync完成后组和所有者git拥有的文件分别更改为rtkitbluetooth。现在我假设它只会失败git用户,而不是塞布因为后两个用户在两台机器上都存在。

有没有办法在不创建用户的情况下保留组和所有者设置git在本地机器上?

为了全面披露,因为我不确定这是否重要,但我不认为如此,我正在rsync使用非标准端口运行-e "ssh -p PORT"

答案1

最有可能的是,用户“git”和用户“rtkit”在两台机器上共享相同的 UID(或 GID)。因此,文件使用正确的 UID/GID 保存,但在每台机器上映射到不同的用户名。检查两台机器上的 /etc/passwd 和 /etc/group,查看 UID/名称映射重叠的位置。

如果这只是一个备份,那么 UID / GID 映射是什么并不重要,当您必须将备份恢复到原始机器时,映射将恢复为您在机器 1 上使用的名称。

要修复此问题,您必须在两台机器之间同步您的用户/组。或者切换到使用 LDAP 或 NIS 或 SMB 的集中登录。

相关内容