---
id: "unix_shadow_entry"
kind: "datatype"
status: "draft"
is_pii: true
categories: ["secrets"]
langs: ["common"]
quality: 85
url: "http://registry.apicrafter.io/datatype/unix_shadow_entry"
---

# Unix shadow password file entry (`unix_shadow_entry`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

One line of /etc/shadow on Linux and other Unix systems: nine colon-separated fields with the login name, the hashed password (or ! or * for a locked account), and the password ageing and expiry dates, counted in days since 1970-01-01.

- Personal data (PII): yes
- Categories: Secrets and credentials (passwords, keys, tokens) (secrets)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^[^:\s]+:[^:\s]*:[0-9]*:[0-9]*:[0-9]*:[0-9]*:[0-9]*:[0-9]*:[^:\s]*$
```

## Examples

- `daemon:*:19000:0:99999:7:::` — System account without a password
- `example:$1$examples$9syBlMva027I.Vd2Z0JGl1:19000:0:99999:7:::` — MD5-crypt hash of the word "example"
- `root:x:0:0:root:/root:/bin/bash` (invalid example) — Line of /etc/passwd, which has seven fields

## Supported by tools

- `semgrep`

## Sources

- doc: <https://man7.org/linux/man-pages/man5/shadow.5.html>

## Quality

Score 85/100. Missing: mapping (Wikidata, Schema.org, ...), translation.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/unix_shadow_entry.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/secrets/unix_shadow_entry.yaml>
