--- data/pam_dbus.conf | 3 +-- src/pam_dbus.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) --- data/pam_dbus.conf +++ data/pam_dbus.conf 2017-07-11 08:43:18.343905071 +0000 @@ -3,8 +3,7 @@ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> - - + --- src/pam_dbus.c +++ src/pam_dbus.c 2021-08-19 07:33:23.113478347 +0000 @@ -24,6 +24,7 @@ #include #include #include +#include PAM_EXTERN int pam_sm_authenticate(pam_handle_t *ph, int flags, int argc, const char **argv) { DBusGConnection *connection; @@ -32,7 +33,9 @@ PAM_EXTERN int pam_sm_authenticate(pam_h gboolean login_ok; +#if !GLIB_CHECK_VERSION (2,35,0) g_type_init (); +#endif error = NULL; connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); @@ -78,3 +81,20 @@ PAM_EXTERN int pam_sm_authenticate(pam_h return login_ok ? PAM_SUCCESS : PAM_AUTH_ERR; } + +/* logging function ripped from pam_listfile.c */ +static void _pam_log(int err, const char *format, ...) { + va_list args; + + va_start(args, format); + openlog("pam_dbus", LOG_CONS|LOG_PID, LOG_AUTH); + vsyslog(err, format, args); + va_end(args); + closelog(); +} + +PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc, const + char **argv) { + _pam_log(LOG_ERR, "not a credentialator"); + return PAM_IGNORE; +}