rsync --fake-super备份恢复后所有者未保留的问题求助
问题分析与解决办法
出现恢复后文件所有者变成UID而非root的问题,核心原因是跨平台(macOS Monterey vs Synology DSM)的用户/组ID映射差异,加上rsync的--fake-super在不同版本间的解析逻辑导致名称解析失效。以下是针对性的参数调整方案:
1. 优化备份命令
在原备份命令中添加--numeric-ids参数,强制rsync直接传输原始的UID/GID数值,跳过用户名/组名的解析步骤,避免跨系统的名称不匹配问题:
rsync -ahX --delete --numeric-ids -M--fake-super $src $dest
说明:--numeric-ids会让rsync忽略用户名/组名,只保留数字形式的ID,确保备份的权限信息准确对应root(UID 0)和wheel(GID 0,macOS下)。
2. 调整恢复命令
恢复时必须以root权限执行(普通用户无法设置文件所有者为root),同时保留--numeric-ids参数:
sudo rsync -ahX --delete --numeric-ids -M--fake-super $dest $restore
说明:sudo赋予root权限,确保rsync有权限将文件所有者设置为UID 0(即root);--numeric-ids保证直接应用备份中存储的数字ID,不会因为跨平台名称解析失败而显示为UID数值。
3. 额外检查项
- 确认群晖端的RSync服务已启用,若使用RSync模块而非SSH连接,需在群晖的RSync模块配置中添加
fake super = yes(SSH连接模式下由客户端的-M--fake-super参数处理即可)。 - 备份完成后,可在群晖端用
ls -ln查看备份文件的UID/GID,确认是否为0(对应root/wheel),验证备份的权限信息是否准确。
内容的提问来源于stack exchange,提问作者ric982
相关产品推荐
相关产品推荐

