我问了几个人,只是想在这里问一下。我们从一家国际公司以 zip 格式收到用于设计工作的文件。好吧,当我运行脚本来解压缩终端中的文件时,我只在 Linux 中收到 zip 错误。我们可以整天用7zip和winzip测试、解压、浏览和修改文件。运行 7zip 或 Winzip 时,它们也不表示任何安全性。
终端错误:
compressed WinNT security missing (-7 bytes)
Run Code Online (Sandbox Code Playgroud)
我到处搜索,但没有找到解决方案或更正。一位同事建议,
“使用不同语言版本的 Unzip 可能会改变解压缩文件所需的 Unicode。把它想象成一个密码,没有正确的代码,你就无法进入。”
为什么在 Ubuntu 终端解压会显示错误?
小智 2
我对源代码进行了一些挖掘(从 Ubuntu raring 中解压缩60,尽管我怀疑旧版本没有太大区别)。有问题的错误在内部调用TruncNTSD
和定义extract.c:295
。正如预期的那样,此消息的大多数用途都在win32/win32.c
并且确实引用了 NTFS 安全数据,但是代码中只有一处您应该在 win32 系统之外遇到此错误(因为您报告在 ubuntu 上看到了它)。
有问题的地方 ( extract.c:2118
) 位于名为 的函数中TestExtraField
。正如维基百科解释的那样:
.ZIP 文件格式包括文件头中的额外字段功能,可用于存储现有 .ZIP 规范未定义的额外数据,并允许不识别字段的合规归档程序安全地跳过这些字段。
这确实是 NT 存储安全信息的方式。重要的是,该函数打印错误注释
/* we know the regular compressed file data tested out OK, or else we
* wouldn't be here ==> print filename if any extra-field errors found
*/
Run Code Online (Sandbox Code Playgroud)
因此,如果您可以很好地解压缩文件本身,那么似乎可以安全地忽略此错误。进一步看,win32 代码之外唯一引发此错误的地方(假设这不是解压缩中的可怕错误)是test_compr_eb:extract.c:2227
,从代码看,它似乎是在压缩文件具有标记为压缩的关联额外字段时发生的,但字段数据的长度为0字节。
我不知道这是怎么发生的——也许创建 zip 文件的程序是偶然这样做的,也许额外的字段被安全软件过滤掉了。无论如何,它看起来无害,并且可能与 NT 安全性完全无关。总之,如果您的文件解压正常,则忽略.
归档时间: |
|
查看次数: |
2771 次 |
最近记录: |