首页/数据/备份与容灾速查/tar 备份特殊属性

tar 备份特殊属性

备份系统与容器场景要保留 ACL、扩展属性、SELinux 上下文与数字属主:默认行为会丢失这些信息,恢复后可能出现权限或启动异常。

备份与容灾速查数据更新于 2026-10-13

tar 备份特殊属性要注意什么

备份系统目录、容器宿主与多用户环境时,光靠 tar 的默认行为会丢东西:ACL、扩展属性、SELinux 安全上下文与数字属主都需要显式开关。丢失后的表现往往不是报错,而是恢复后服务起不来、用户被拒绝访问,排查起来更费时间。

基本信息

适用平台GNU tar(--acls / --xattrs / --selinux / --numeric-owner 为 GNU 扩展)
关键开关ACL 用 --acls,扩展属性与 SELinux 上下文用 --xattrs(GNU tar 另有 --selinux)
属主处理--numeric-owner 按数字 ID 保留,避免跨机用户名映射错位
权限要求还原属主、设备节点与安全上下文通常需要 root

典型使用场景

  • /etc 等系统目录备份:恢复后要求服务可直接启动,权限与上下文必须保真
  • 容器与虚拟机宿主目录:SELinux 环境下的安全上下文决定容器能否启动
  • 多用户环境:ACL 承载细粒度授权,丢失会导致个别用户被拒或越权
  • 跨主机迁移:用 --numeric-owner 保持属主一致性
  • 合规取证:保留扩展属性与时间戳,保证证据链完整

保留特殊属性的打包与恢复

保留特殊属性的打包与恢复
sudo tar --acls --xattrs --selinux --numeric-owner -czf /backup/etc-$(date +%F).tar.gz /etc
sudo tar --acls --xattrs --selinux --numeric-owner -xzf /backup/etc-2026-10-13.tar.gz -C /
# 恢复后核对安全上下文与 ACL
ls -Z /etc/ssh/sshd_config
getfacl /etc/ssh/sshd_config

开关与遗漏后果

开关保留内容遗漏后果
--aclsPOSIX ACL 与默认 ACL细粒度授权丢失,个别用户被拒或越权
--xattrs扩展属性(含 security.selinux)SELinux 环境服务启动被拒,报错指向上下文
--selinuxSELinux 上下文(GNU tar 专有开关)上下文标签错误,restorecon 之前服务无法正常运行
--numeric-owner按数字 ID 记录属主跨机恢复时按用户名映射,UID 错位导致权限异常
恢复后若 SELinux 上下文异常,用 restorecon -Rv 目录 重新标注,而不是关闭 SELinux;后者会把一套安全机制整体削弱。备份前也建议先确认目标文件系统是否支持 ACL 与 xattr,否则参数加了也无处存放。

与其他工具的选择

场景更合适的工具原因
整目录系统级备份tar 加属性开关保留权限、ACL 与安全上下文
增量与远端同步rsync -aHAX支持差异传输与属性保留
带加密去重的保留restic / borg元数据与内容一并加密保管
单文件交换交付zip对方无需额外工具即可解开
普通用户打包再恢复时属主与设备节点信息无法还原:系统目录恢复建议在 root 下执行,并在隔离环境先验证一次。

易错点

  • 普通用户打包与恢复:属主与设备节点信息丢失,系统目录恢复后权限错乱
  • --xattrs 在部分文件系统或客户端上不被支持:跨系统恢复前先在测试环境验证,不要直接上生产
  • 忽略 SELinux 上下文:恢复后服务启动失败,排查时容易被误判为配置问题
  • 直接关闭 SELinux 绕过问题:安全基线被削弱,且后续审计难以通过

数据来源与参考

  • GNU tar 手册(--acls、--xattrs、--selinux、--numeric-owner)
  • selinux 手册(restorecon)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌