/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.
(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). ...
Zivios is a web based control panel which brings together vital open source technologies needed by medium and large enterprises. Zivios provides identity management,user, group and computer provisioning, as well as remote management of services.