forked from pool/pam_dbus
51 lines
1.5 KiB
Plaintext
51 lines
1.5 KiB
Plaintext
---
|
|
data/pam_dbus.conf | 3 +--
|
|
src/pam_dbus.c | 12 ++++++++++++
|
|
2 files changed, 13 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">
|
|
<busconfig>
|
|
|
|
- <!-- <policy at_console="true">-->
|
|
- <policy context="default">
|
|
+ <policy at_console="true">
|
|
<allow own="de.nomeata.pam_dbus"/>
|
|
</policy>
|
|
<policy user="root">
|
|
--- src/pam_dbus.c
|
|
+++ src/pam_dbus.c 2021-08-19 07:33:23.113478347 +0000
|
|
@@ -24,6 +24,7 @@
|
|
#include <glib.h>
|
|
#include <dbus/dbus.h>
|
|
#include <dbus/dbus-glib.h>
|
|
+#include <syslog.h>
|
|
|
|
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,12 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
|
return login_ok ? PAM_SUCCESS : PAM_AUTH_ERR;
|
|
}
|
|
+
|
|
+PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc __attribute__((unused)), const
|
|
+ char **argv __attribute__((unused))) {
|
|
+ int rc = ((flags & PAM_ESTABLISH_CRED) ? PAM_SUCCESS :
|
|
+ (flags & PAM_REINITIALIZE_CRED) ? PAM_SUCCESS :
|
|
+ (flags & PAM_REFRESH_CRED) ? PAM_SUCCESS :
|
|
+ (flags & PAM_DELETE_CRED) ? PAM_SUCCESS : PAM_SUCCESS);
|
|
+ return rc;
|
|
+}
|