poka.sh

Docs

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