gnupasswd
gnupasswd - gnu change user password
/usr/bin/passwd offers a "safe way" for root to edit /etc/passwd (or shadow). If setuid it allows regular users to change passwd without asking root to do changes for them.
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". These can contact remote computers during login if misconfigured and are complicated to configure (so that one knows what is allowed or not completely).
gnupasswd has none of these (gnu has NIS, off by default)