passwd(1) on Solnix vs Linux and the BSDs
On Solnix, passwd is the illumos /usr/bin/passwd. It changes passwords and also the login shell (-e), gecos (-g) and home directory (-h), and it can target files, ldap or nis with -r. Linux scripts break on flag meaning: Solnix -s shows status, -e and -h are not expire and help, and -S does not exist.
The manual pages
What Solnix runs
A default Solnix system runs the illumos passwd at /usr/bin/passwd; no other variants are shipped. It calls PAM (service name passwd) and reads /etc/default/passwd for PASSLENGTH, complexity and dictionary checks. The -d, -f, -n, -u, -w and -x descriptions are cut off in the bundle, so only their presence in the synopsis is stated here.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | -s meaning and status flag | Solnix passwd -s shows password attributes (-s -a for all users). Linux uses -S for status, and Linux -s is --stdin, which reads the new password from standard input. Solnix has no -S and no --stdin in its synopsis.Source: Solnix passwd(1) SYNOPSIS, OPTIONS -s, -a; Linux passwd(1) -S, -a, -s, --stdin |
| Linux | -e and -h meaning | Solnix -e changes the login shell and -h changes the home directory. On Linux, -e immediately expires the password and -h prints help. Running a Linux passwd -e or passwd -h line on Solnix does something different.Source: Solnix passwd(1) OPTIONS -e, -h; Linux passwd(1) -e, --expire, -h, --help |
| Linux | status output format | Solnix prints 'name status mm/dd/yy min max warn', with status LK, NL, NP or PS. Linux -S prints 7 fields, adding an inactivity period, and its status letters are L, NP or P. Output parsers need changing.Source: Solnix passwd(1) DESCRIPTION (format of the display, status values); Linux passwd(1) -S |
| FreeBSD, NetBSD | -l meaning | Solnix and Linux -l lock the account's password. On FreeBSD and NetBSD, -l updates only the local password file; NetBSD documents it as equivalent to -d files. Do not use -l to lock accounts on the BSDs.Source: Solnix passwd(1) Security (-l); Linux passwd(1) -l; FreeBSD passwd(1) -l; NetBSD passwd(1) -l |
| FreeBSD, OpenBSD, NetBSD | -d meaning and password database selection | NetBSD -d takes a database argument (files, nis or krb5). Solnix selects a repository with -r files, ldap or nis. FreeBSD uses -l for local-only and a yppasswd link for NIS; OpenBSD's synopsis has no options.Source: NetBSD passwd(1) -d database; Solnix passwd(1) OPTIONS -r; FreeBSD passwd(1) SYNOPSIS, NOTES; OpenBSD passwd(1) SYNOPSIS |
| Linux | -d delete password | Linux -d deletes the password and leaves the account passwordless. The Solnix -d description is cut off in the bundle. The page only says a privileged user entering an empty password at the prompt differs from -d because the prompt still appears.Source: Linux passwd(1) -d, --delete; Solnix passwd(1) DESCRIPTION (null password paragraph) |
| Linux | effect of locking | Solnix -l blocks password login and delayed execution (at, batch, cron); -N blocks password login only. Linux -l prefixes the hash with '!' and notes that an SSH key may still work. The Solnix page documents no '!' mechanism.Source: Solnix passwd(1) Security; Linux passwd(1) -l |
| FreeBSD, OpenBSD, NetBSD | shell, gecos and home directory | Solnix passwd changes the login shell (-e), gecos (-g) and home directory (-h) itself. The BSD passwd pages document none of these options and list chpass(1) under SEE ALSO.Source: Solnix passwd(1) OPTIONS -e, -g, -h; FreeBSD, OpenBSD, NetBSD passwd(1) SYNOPSIS and SEE ALSO |
| FreeBSD, OpenBSD, NetBSD | password policy configuration | Solnix reads /etc/default/passwd (PASSLENGTH 6, complexity, dictionary). OpenBSD uses the passwordcheck variable in login.conf(5). NetBSD sets the cipher in passwd.conf(5). FreeBSD uses the passwordtime login-class capability for the next change date.Source: Solnix passwd(1) DESCRIPTION (requirements list); OpenBSD passwd(1); NetBSD passwd(1); FreeBSD passwd(1) |
| Linux | options absent on Solnix | Linux has -R/--root, -P/--prefix, -q, -i, -k and long options. None of these appears in the Solnix synopsis. Solnix has -N, -f and the -r files|ldap|nis repository list, which Linux lacks.Source: Linux passwd(1) OPTIONS; Solnix passwd(1) SYNOPSIS |
| all four | name services and AD | Solnix updates repositories from nsswitch.conf passwd and passwd_compat entries, only for the listed configurations. It ignores ad, so an Active Directory password must be changed with kpasswd(1). The counterpart pages describe no nsswitch.conf lookup. Source: Solnix passwd(1) DESCRIPTION (password update configurations, ad keyword) |
Everyday tasks
| Task | Solnix | Linux | FreeBSD | OpenBSD | NetBSD |
|---|---|---|---|---|---|
| lock a user's password | passwd -l name | passwd -l LOGIN | — | — | — |
| show status of one user | passwd -s name | passwd -S LOGIN | — | — | — |
| show status of all users | passwd -s -a | passwd -S -a | — | — | — |
| change login shell | passwd -e [name] | — | see chpass(1) | see chpass(1) | see chpass(1) |
| change password in one repository | passwd -r files|ldap|nis [name] | passwd -r REPOSITORY | passwd -l [user] (local only) | — | passwd -d files|nis|krb5 [user] |
Standards
- POSIX: passwd is not a POSIX.1-2024 utility.
- Solnix: The visible part of the Solnix page has no STANDARDS or ATTRIBUTES section; the bundle text is trimmed.
- Linux: The Linux page in the bundle has no STANDARDS section.
Writing portable scripts
- Only plain 'passwd [user]' behaves the same everywhere. Avoid
-s,-S,-e,-h,-land-din portable scripts, since their meaning differs between Solnix, Linux, FreeBSD and NetBSD. - Branch on the OS for locking and status: Solnix passwd
-land-s, Linux passwd-land-S. The BSD pages in the bundle document neither.
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.