TAR - Owner Names Longer Than the Header Field
The uname and gname fields in a tar header are 32 bytes. This archive's second member is owned by a 44-character service-account name, which only fits because PAX moves it into an extended header. A USTAR writer would have truncated it to 31 characters and lost the distinction between two similarly-named accounts.
- README.txt
- artifact.txt
Specifications
- Seed
- 20260807
- Tar Format
- PAX (POSIX.1-2001)
- Members
- 2
- Owner Name Chars
- 44
- Header Field Bytes
- 32
- Mechanism
- uname=/gname= records in an 'x' extended header
- Ustar Behaviour
- would truncate to 31 characters plus NUL
Testing contract
Expected to pass- Scenario
- List the archive with owner names shown.
- Expected result
- build/artifact.txt reports the full 44-character owner and group name, not a 31-character truncation.
What is a .tar file?
TAR (Tape Archive) is a Unix archive format that concatenates files with their metadata into a single uncompressed stream of fixed-size blocks. It preserves permissions, ownership, and directory structure but applies no compression itself. It is usually paired with a compressor such as gzip or xz.
How to use this file
Use an example TAR to test archive extraction, metadata and permission preservation, streaming block parsing, and pipelines that combine tar with external compression.
How to use this file for testing
“TAR - Owner Names Longer Than the Header Field” 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. 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
tar -tf long-owner-names.tar # list
tar -xf long-owner-names.tar -C out/ # extractRelated files
- tarTAR - Directory Members and an Empty DirectoryThree directory records with distinct modes, one of which - tree/empty/ - has no members underneath it and therefore exists only because the record does. A reader that synthesises directories from member paths alone silently loses it, and loses the 0750 and 0700 modes on the other two.

- tarTAR - FIFO and Device Node RecordsA FIFO, a character device and a block device, each a header with no data blocks and with the device numbers in the devmajor/devminor fields. Unprivileged extraction cannot create the two device nodes, so the correct behaviour is to skip them with a warning rather than to abort the whole archive or to create empty regular files in their place.

- tarTAR - Hard Link Membershare/backup/records.csv is a hard link to a member that appears earlier in the stream, so its content is stored exactly once. Order matters: a reader that extracts members out of sequence, or that copies content instead of linking, changes both the on-disk byte count and the inode relationship the archive is describing.

- tarTAR - Symlink Membershare/current.csv is a symbolic link: typeflag '2', size 0, and the target carried in the header's 100-byte linkname field rather than in any data blocks. The target is relative and stays inside the archive, so extraction is safe with or without symlink support.

- txtConvert v2 Archive SHA-256 ListGNU-style SHA-256 list for the two canonical TAR members, preserving relative paths and full lowercase digests. Stable P8 artifact p8-convert-archive-sha256.

- jarJAR With a Nested Library JARThe nested-JAR layout an executable fat jar uses: a manifest with a Class-Path entry and a second JAR stored uncompressed under BOOT-INF/lib so it can be read in place without being extracted first. It contains resources only - properties, JSON and text, no compiled bytecode - and the manifest uses the CRLF line endings the JAR specification requires.

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