软件吧
登录注册账号
/posts/777-md5
电脑必备

日志包解压后权限全变777,我拿四台机子对了一遍md5才发现坑

码农小张 81 0 13

背景

上周运维给我甩了个 12G 的日志归档包,说是线上事故复盘要用。我随手拿 Win解压缩 双击解压,速度确实快,3 分钟不到就出来了,当时还觉得挺香。结果一进目录傻眼:所有 .log 文件的权限全变成 777,原本的 640 全丢了。

问题复现

我这人习惯先质疑再对账,直接拿四台机子(Win10 22H2、Win11 23H2 各两台)做了对照:

工具版本解压耗时(12G)权限保留临时目录I/O峰值
Win解压缩5.9.12分48秒全丢,统一777偏高
7-Zip23.014分12秒完整保留中等
tar (WSL)1.353分05秒完整保留最低

结论很直接:Win解压缩 快是快,但它是按 Windows 文件语义走的,POSIX 权限位它压根不认。7-Zip 用 -snl 或者直接 7z x 也未必全对,得看打包时用的是 tar --numeric-owner 还是普通 zip。

我的处理流程

  1. 先用 md5sum 对一遍清单,确认内容没坏;
  2. 权限这块单独用 tar 重新打一遍,加 --preserve-permissions;
  3. 部署包里如果有可执行脚本,解压后统一 chmod +x,写进脚本里别手动改。

踩过的坑:

  • Win解压缩 的临时目录默认在 C 盘 AppData,12G 的包解压时 I/O 峰值能把系统盘读写打满,日志机直接卡成 PPT。改成别的盘能缓解,但命令行参数少,只能图形界面点。
  • 7-Zip 命令行支持全,7z x -o/path -y 一行搞定,还能塞进 CI 脚本里。这就是我为什么部署包一律走 7-Zip。

选型判断

普通用户日常解压个电影、文档,Win解压缩 够用,速度快、右键顺手。但涉及日志归档、部署包这种要保留权限、要脚本化的场景,我这边只认 7-Zip 或者 tar。别拿速度单一维度选工具,权限校验和临时目录 I/O 这俩维度也得算进去。

想问问大家

你们解压带权限的归档包时,是直接信工具默认行为,还是像我一样先对一遍 md5 和权限清单?有没有人试过用 7-Zip 保留 POSIX 权限的靠谱参数组合?

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。