Lines 1-25
Link Here
|
1 |
From 68fcd5f830b6451de5fd9d697fa6602dc3ca9972 Mon Sep 17 00:00:00 2001 |
1 |
From 18bce9f12311c6e7a7fe4350150120a98b3ec106 Mon Sep 17 00:00:00 2001 |
2 |
From: Lukas Slebodnik <lukas.slebodnik@intrak.sk> |
2 |
From: Lukas Slebodnik <lukas.slebodnik@intrak.sk> |
3 |
Date: Sat, 27 Jul 2013 15:02:31 +0200 |
3 |
Date: Wed, 6 Nov 2013 22:01:21 +0100 |
4 |
Subject: [PATCH 2/2] patch-src__sss_client__pam_sss.c |
4 |
Subject: [PATCH 2/2] patch-src__sss_client__pam_sss.c |
5 |
|
5 |
|
6 |
--- |
6 |
--- |
7 |
src/sss_client/pam_sss.c | 13 +++++++++++++ |
7 |
src/sss_client/pam_sss.c | 24 ++++++++++++++++++++++++ |
8 |
1 file changed, 13 insertions(+) |
8 |
1 file changed, 24 insertions(+) |
9 |
|
9 |
|
10 |
diff --git src/sss_client/pam_sss.c src/sss_client/pam_sss.c |
10 |
diff --git src/sss_client/pam_sss.c src/sss_client/pam_sss.c |
11 |
index 5fd276ccba15da1f689b1939a02288dda7a09d89..4cb976cf28eba5c14168a91eb23fe4101d2268f3 100644 |
11 |
index 5fd276ccba15da1f689b1939a02288dda7a09d89..e35552f7e612d3e68f957845998a8105437af301 100644 |
12 |
--- src/sss_client/pam_sss.c |
12 |
--- src/sss_client/pam_sss.c |
13 |
+++ src/sss_client/pam_sss.c |
13 |
+++ src/sss_client/pam_sss.c |
14 |
@@ -52,6 +52,7 @@ |
14 |
@@ -52,6 +52,8 @@ |
15 |
#define FLAGS_USE_FIRST_PASS (1 << 0) |
15 |
#define FLAGS_USE_FIRST_PASS (1 << 0) |
16 |
#define FLAGS_FORWARD_PASS (1 << 1) |
16 |
#define FLAGS_FORWARD_PASS (1 << 1) |
17 |
#define FLAGS_USE_AUTHTOK (1 << 2) |
17 |
#define FLAGS_USE_AUTHTOK (1 << 2) |
18 |
+#define FLAGS_IGNORE_UNKNOWN_USER (1 << 3) |
18 |
+#define FLAGS_IGNORE_UNKNOWN_USER (1 << 3) |
|
|
19 |
+#define FLAGS_IGNORE_AUTHINFO_UNAVAIL (1 << 4) |
19 |
|
20 |
|
20 |
#define PWEXP_FLAG "pam_sss:password_expired_flag" |
21 |
#define PWEXP_FLAG "pam_sss:password_expired_flag" |
21 |
#define FD_DESTRUCTOR "pam_sss:fd_destructor" |
22 |
#define FD_DESTRUCTOR "pam_sss:fd_destructor" |
22 |
@@ -125,10 +126,12 @@ static void free_exp_data(pam_handle_t *pamh, void *ptr, int err) |
23 |
@@ -125,10 +127,12 @@ static void free_exp_data(pam_handle_t *pamh, void *ptr, int err) |
23 |
|
24 |
|
24 |
static void close_fd(pam_handle_t *pamh, void *ptr, int err) |
25 |
static void close_fd(pam_handle_t *pamh, void *ptr, int err) |
25 |
{ |
26 |
{ |
Lines 32-47
Link Here
|
32 |
|
33 |
|
33 |
D(("Closing the fd")); |
34 |
D(("Closing the fd")); |
34 |
sss_pam_close_fd(); |
35 |
sss_pam_close_fd(); |
35 |
@@ -1292,6 +1295,8 @@ static void eval_argv(pam_handle_t *pamh, int argc, const char **argv, |
36 |
@@ -1292,6 +1296,10 @@ static void eval_argv(pam_handle_t *pamh, int argc, const char **argv, |
36 |
} |
37 |
} |
37 |
} else if (strcmp(*argv, "quiet") == 0) { |
38 |
} else if (strcmp(*argv, "quiet") == 0) { |
38 |
*quiet_mode = true; |
39 |
*quiet_mode = true; |
39 |
+ } else if (strcmp(*argv, "ignore_unknown_user") == 0) { |
40 |
+ } else if (strcmp(*argv, "ignore_unknown_user") == 0) { |
40 |
+ *flags |= FLAGS_IGNORE_UNKNOWN_USER; |
41 |
+ *flags |= FLAGS_IGNORE_UNKNOWN_USER; |
|
|
42 |
+ } else if (strcmp(*argv, "ignore_authinfo_unavail") == 0) { |
43 |
+ *flags |= FLAGS_IGNORE_AUTHINFO_UNAVAIL; |
41 |
} else { |
44 |
} else { |
42 |
logger(pamh, LOG_WARNING, "unknown option: %s", *argv); |
45 |
logger(pamh, LOG_WARNING, "unknown option: %s", *argv); |
43 |
} |
46 |
} |
44 |
@@ -1429,6 +1434,9 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
47 |
@@ -1429,6 +1437,13 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
45 |
ret = get_pam_items(pamh, &pi); |
48 |
ret = get_pam_items(pamh, &pi); |
46 |
if (ret != PAM_SUCCESS) { |
49 |
if (ret != PAM_SUCCESS) { |
47 |
D(("get items returned error: %s", pam_strerror(pamh,ret))); |
50 |
D(("get items returned error: %s", pam_strerror(pamh,ret))); |
Lines 48-57
Link Here
|
48 |
+ if (flags & FLAGS_IGNORE_UNKNOWN_USER && ret == PAM_USER_UNKNOWN) { |
51 |
+ if (flags & FLAGS_IGNORE_UNKNOWN_USER && ret == PAM_USER_UNKNOWN) { |
49 |
+ ret = PAM_IGNORE; |
52 |
+ ret = PAM_IGNORE; |
50 |
+ } |
53 |
+ } |
|
|
54 |
+ if (flags & FLAGS_IGNORE_AUTHINFO_UNAVAIL |
55 |
+ && ret == PAM_AUTHINFO_UNAVAIL) { |
56 |
+ ret = PAM_IGNORE; |
57 |
+ } |
51 |
return ret; |
58 |
return ret; |
52 |
} |
59 |
} |
53 |
|
60 |
|
54 |
@@ -1467,6 +1475,11 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
61 |
@@ -1467,6 +1482,15 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
55 |
|
62 |
|
56 |
pam_status = send_and_receive(pamh, &pi, task, quiet_mode); |
63 |
pam_status = send_and_receive(pamh, &pi, task, quiet_mode); |
57 |
|
64 |
|
Lines 59-68
Link Here
|
59 |
+ && pam_status == PAM_USER_UNKNOWN) { |
66 |
+ && pam_status == PAM_USER_UNKNOWN) { |
60 |
+ pam_status = PAM_IGNORE; |
67 |
+ pam_status = PAM_IGNORE; |
61 |
+ } |
68 |
+ } |
|
|
69 |
+ if (flags & FLAGS_IGNORE_AUTHINFO_UNAVAIL |
70 |
+ && pam_status == PAM_AUTHINFO_UNAVAIL) { |
71 |
+ pam_status = PAM_IGNORE; |
72 |
+ } |
62 |
+ |
73 |
+ |
63 |
switch (task) { |
74 |
switch (task) { |
64 |
case SSS_PAM_AUTHENTICATE: |
75 |
case SSS_PAM_AUTHENTICATE: |
65 |
/* We allow sssd to send the return code PAM_NEW_AUTHTOK_REQD during |
76 |
/* We allow sssd to send the return code PAM_NEW_AUTHTOK_REQD during |
66 |
-- |
77 |
-- |
67 |
1.8.5.3 |
78 |
1.9.3 |
68 |
|
79 |
|