如何使用Linux Tar-Xp解压时保留文件原始权限和属主,避免应用错误?

2026-05-07 16:260阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计797个文字,预计阅读时间需要4分钟。

如何使用Linux Tar-Xp解压时保留文件原始权限和属主,避免应用错误?

使用 tar -xp 命令进行解压缩。

只保留基础权限和属主(最常见需求)

多数服务启动失败是因为可执行位丢失、目录无 x 权限、或程序被解压成普通用户所有而无法访问 root-only 资源。这时必须:

  • -p:还原读写执行权限、sticky/setuid/setgid 位、时间戳
  • 用 root 用户解压:否则 --same-owner 不生效,属主会强制降级为当前用户(静默失败,不报错)
  • 避免用 -C 切换到非空目录:防止覆盖已有配置文件或触发权限冲突

正确命令示例:
sudo tar -xpf app.tar.gz -C /opt/myapp
注意:不用 --same-owner 也能生效——因为 -p 在 root 下默认启用 --same-owner 行为;普通用户加了也白加。

需要还原 ACL、扩展属性或 capabilities

像数据库二进制、安全工具、容器运行时等,常依赖 ACL(如 getfacl)、chattr 标志(如 i 不可删)、或 getcap 设置的 capability(如 cap_net_raw)。这些 -p 完全不管。

阅读全文
标签:Linux解压

本文共计797个文字,预计阅读时间需要4分钟。

如何使用Linux Tar-Xp解压时保留文件原始权限和属主,避免应用错误?

使用 tar -xp 命令进行解压缩。

只保留基础权限和属主(最常见需求)

多数服务启动失败是因为可执行位丢失、目录无 x 权限、或程序被解压成普通用户所有而无法访问 root-only 资源。这时必须:

  • -p:还原读写执行权限、sticky/setuid/setgid 位、时间戳
  • 用 root 用户解压:否则 --same-owner 不生效,属主会强制降级为当前用户(静默失败,不报错)
  • 避免用 -C 切换到非空目录:防止覆盖已有配置文件或触发权限冲突

正确命令示例:
sudo tar -xpf app.tar.gz -C /opt/myapp
注意:不用 --same-owner 也能生效——因为 -p 在 root 下默认启用 --same-owner 行为;普通用户加了也白加。

需要还原 ACL、扩展属性或 capabilities

像数据库二进制、安全工具、容器运行时等,常依赖 ACL(如 getfacl)、chattr 标志(如 i 不可删)、或 getcap 设置的 capability(如 cap_net_raw)。这些 -p 完全不管。

阅读全文
标签:Linux解压