Including the pwdb_public.h header in userhelper.c lets it
#define getlogin() to pwdb_posix_getlogin() (and similar
things with getpw* and getgr*), which breaks that wonderful
"can shut down as non-root user" function that showed up in
6.0, but hasn't gone away in Rawhide.
pwdb_public.h has always, since the first version, been
included in userhelper.c...
Furthermore, I just tested shutdown -r now as a normal user
and it worked fine. So something else is wrong, or there
was some transient bug in an earlier RawHide that is now
As pointed out by Nalin in private email, *using hesiod or ldap or
other authentication services that pam supports but pwdb does not,*
the wrapper functions break.
pwdb will be changed not to define those functions, and we'll
rebuild usermode, and then things should work correctly. So this
is really a bug in pwdb, but we'll keep it filed against usermode
because usermode needs to be rebuilt after pwdb is changed before
the problem goes away.
In the long term, pwdb is just going to disappear. Improvements
in nss have rendered it redundant.
This will be fixed in usermode-1.12 and later, which will appear
in the next RawHide and in Red Hat Linux 6.1.