gnupasswd
gnupasswd - gnu change user password
...(note: does have learning curve on args to choose)
gnupasswd - gnu change user password
gnugpasswd - gnu change group password
gnupasswd(1) has a goal to work with older login.c/linux and some newer too, also "getpwent" (any glibc). or help convert.
gnupassd does pass only: leaves all else alone (compat). small, simpler for single admin / small linux bases.
For example: it can make plain /etc/passwd plain text password file (still) or use shadow - (login.c may do both).
A goal is to be old linux and no "depends problems" (ie, some required pam selinux audit kerb (+nis remove hacks) "to work as intended". ...