Skip to content
Novus Examples
zip552 B

ZIP - Unix Permission Bits in External Attributes

Unix permissions ride in the top 16 bits of the ZIP external attributes field, and are only meaningful when the version-made-by byte says Unix. This archive carries 0444, 0600, 0664 and a 0750 directory, plus the MS-DOS read-only bit on the 0444 member so the two conventions can be seen disagreeing. Nothing here is marked executable.

Archive contents — 4 entrieszip
  • read-only.txt
  • private.txt
  • group-shared.txt
  • bin

Specifications

Seed
20260807
Members
4
Version Made By
0x031E (Unix, spec 3.0)
Modes
0444, 0600, 0664, directory 0750
Encoding
Unix mode in the high 16 bits, MS-DOS attributes in the low 16
Note
no executable bit is set on any member

Testing contract

Expected to pass
Scenario
Extract with permissions preserved on a POSIX filesystem and stat each member.
Expected result
bin/ is 0750 and the three files are 0444, 0600 and 0664; a reader that ignores the version-made-by byte reads the same field as MS-DOS attributes and gets none of them.

What is a .zip file?

ZIP is a widely supported archive format that bundles multiple files and directories into one container, typically with per-file DEFLATE compression and a central directory index. It supports random access to individual entries without decompressing the whole archive. It underlies many document formats such as DOCX and EPUB.

How to use this file

Use an example ZIP to test archive extraction, central-directory parsing, per-entry decompression, and protection against path-traversal (zip-slip) during unpacking.

How to use this file for testing

“ZIP - Unix Permission Bits in External Attributes” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807 · Unix mode in the high 16 bits, MS-DOS attributes in the low 16. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l unix-modes.zip     # list members
unzip unix-modes.zip -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.