SHADOW
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
/etc/shadow Preview.
At a glance
| Purpose | A Unix /etc/shadow file: one account per line with its password hash and ageing fields. |
| Extensions | .shadow |
| Poka parser | poka-shadow |
| Viewer | poka-table-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B2 Broad (see Breadth tiers) |
How much Poka reads
B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-shadow/src/main.rs (214 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has no .shadow, .shadowfile and .etc-shadow sample. Covers .shadow, .shadowfile and .etc-shadow. The table lists every account with user, status (locked, no password, hash), hash algorithm, a redacted hash, and the last-change, minimum, maximum and expiry fields. Judgement: B2: every entry is shown; the gaps are limits, redaction by design and fields left raw.
What Poka does not read
- Hashes are redacted (by design)
- The warning, inactive and reserved fields are not shown
- Day counts are shown raw, not as dates (judgement from the code)
- Only the first 1,000 accounts are listed
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- pgs-files (candidate; MIT OR Apache-2.0; Rust; https://docs.rs/pgs-files) — Reads /etc/passwd, /etc/group and /etc/shadow; has a shadow module. Early 0.0.x release depending on libc, so wasm suitability is doubtful.
- jk_etcpasswd (candidate; Apache-2.0; Python; https://pypi.org/pypi/jk-etcpasswd/json) — Parses and models /etc/passwd, /etc/shadow, /etc/group and /etc/gshadow (v0.2025.6.12). Licence from classifier; metadata licence field empty.
Sources
- parsers/poka-shadow/src/main.rs
- parsers/poka-shadow/plugin.json