pwconv(8) on Solnix vs Linux and the BSDs
On Solnix, pwconv is the illumos command (/usr/bin/pwconv and /usr/sbin/pwconv) that builds or updates /etc/shadow from /etc/passwd. It takes no options and has no sibling commands in the page, unlike Linux shadow-utils, where pwconv takes -h and -R and is documented together with pwunconv, grpconv and grpunconv. The BSD systems have no counterpart page in the bundle.
The manual pages
- Solnix: pwconv(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: pwconv(8) shadow-4.19.4
What Solnix runs
A default Solnix system runs the illumos pwconv, found at both /usr/bin/pwconv and /usr/sbin/pwconv. No other variants are shipped. The page is published by pkgs.solnix.illumos-world-man. Only a Linux counterpart page is in the bundle. It has no FreeBSD, OpenBSD or NetBSD counterpart, so the manuals here say nothing about those systems.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | options | Solnix pwconv has the synopsis 'pwconv' and takes no options. Linux pwconv takes [options]: -h/--help and -R/--root CHROOT_DIR, which applies changes under a chroot directory and uses that directory's configuration files.Source: Solnix pwconv(8) SYNOPSIS; Linux pwconv(8) SYNOPSIS, OPTIONS -h, -R |
| Linux | companion commands | The Linux page also covers pwunconv, grpconv and grpunconv, which convert back to plain files and handle group/gshadow. The Solnix page documents only pwconv, with no reverse conversion and no group-file equivalent. Source: Linux pwconv(8) NAME, DESCRIPTION; Solnix pwconv(8) NAME, SEE ALSO |
| Linux | how existing entries are synced | Solnix adds entries missing from shadow, removes entries not in passwd, and moves password attributes from a passwd entry into the matching shadow entry. Linux removes stale entries, updates entries whose passwd password is not 'x', adds missing entries, then replaces passwords in passwd with 'x'. The Solnix page does not say it rewrites passwd. Source: Solnix pwconv(8) DESCRIPTION; Linux pwconv(8) DESCRIPTION |
| Linux | aging defaults for new entries | Linux pwconv takes PASS_MIN_DAYS, PASS_MAX_DAYS and PASS_WARN_AGE from /etc/login.defs when it adds entries. The Solnix page names no such file. It says only that aging information is copied if present in /etc/passwd, and otherwise none is added. The last-changed field is always updated.Source: Linux pwconv(8) DESCRIPTION; Solnix pwconv(8) DESCRIPTION |
| Linux | locking and USE_TCB | Linux pwconv acquires the necessary locks before conversion and does not work with USE_TCB enabled. The Solnix page says nothing about locking or tcb. Source: Linux pwconv(8) DESCRIPTION; Solnix pwconv(8) DESCRIPTION |
| Linux | privilege and warnings | The Solnix page says only the super-user can run pwconv. The Linux page does not state that restriction. It warns instead that errors in passwd or group may make the programs loop forever or fail, and advises running pwck and grpck first. The Solnix page has no such warning. Source: Solnix pwconv(8) DESCRIPTION (last paragraph); Linux pwconv(8) BUGS |
| FreeBSD, OpenBSD, NetBSD | no counterpart page | The bundle has no FreeBSD, OpenBSD or NetBSD page for pwconv, so the manuals here do not say whether those systems have an equivalent. Source: Bundle header: only a linux COUNTERPART is listed |
Standards
- POSIX: pwconv is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not assume pwconv exists or takes
-Ron every system. Check that the command is present, and on Solnix call it with no arguments as root. - Do not rely on pwunconv, grpconv or grpunconv being documented on Solnix; the Solnix page covers only pwconv.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.