Lines 1-17
Link Here
|
1 |
From 86816db5982df0c1b0c5f5722e23111c62ff362e Mon Sep 17 00:00:00 2001 |
1 |
From 68fcd5f830b6451de5fd9d697fa6602dc3ca9972 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: Sat, 27 Jul 2013 15:02:31 +0200 |
4 |
Subject: [PATCH 31/34] 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 | 2 ++ |
7 |
src/sss_client/pam_sss.c | 13 +++++++++++++ |
8 |
1 file changed, 2 insertions(+) |
8 |
1 file changed, 13 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 3734c8f..7110d38 100644 |
11 |
index 5fd276ccba15da1f689b1939a02288dda7a09d89..4cb976cf28eba5c14168a91eb23fe4101d2268f3 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 |
@@ -125,10 +125,12 @@ static void free_exp_data(pam_handle_t *pamh, void *ptr, int err) |
14 |
@@ -52,6 +52,7 @@ |
|
|
15 |
#define FLAGS_USE_FIRST_PASS (1 << 0) |
16 |
#define FLAGS_FORWARD_PASS (1 << 1) |
17 |
#define FLAGS_USE_AUTHTOK (1 << 2) |
18 |
+#define FLAGS_IGNORE_UNKNOWN_USER (1 << 3) |
19 |
|
20 |
#define PWEXP_FLAG "pam_sss:password_expired_flag" |
21 |
#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) |
15 |
|
23 |
|
16 |
static void close_fd(pam_handle_t *pamh, void *ptr, int err) |
24 |
static void close_fd(pam_handle_t *pamh, void *ptr, int err) |
17 |
{ |
25 |
{ |
Lines 24-29
index 3734c8f..7110d38 100644
Link Here
|
24 |
|
32 |
|
25 |
D(("Closing the fd")); |
33 |
D(("Closing the fd")); |
26 |
sss_pam_close_fd(); |
34 |
sss_pam_close_fd(); |
|
|
35 |
@@ -1292,6 +1295,8 @@ static void eval_argv(pam_handle_t *pamh, int argc, const char **argv, |
36 |
} |
37 |
} else if (strcmp(*argv, "quiet") == 0) { |
38 |
*quiet_mode = true; |
39 |
+ } else if (strcmp(*argv, "ignore_unknown_user") == 0) { |
40 |
+ *flags |= FLAGS_IGNORE_UNKNOWN_USER; |
41 |
} else { |
42 |
logger(pamh, LOG_WARNING, "unknown option: %s", *argv); |
43 |
} |
44 |
@@ -1429,6 +1434,9 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
45 |
ret = get_pam_items(pamh, &pi); |
46 |
if (ret != PAM_SUCCESS) { |
47 |
D(("get items returned error: %s", pam_strerror(pamh,ret))); |
48 |
+ if (flags & FLAGS_IGNORE_UNKNOWN_USER && ret == PAM_USER_UNKNOWN) { |
49 |
+ ret = PAM_IGNORE; |
50 |
+ } |
51 |
return ret; |
52 |
} |
53 |
|
54 |
@@ -1467,6 +1475,11 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, |
55 |
|
56 |
pam_status = send_and_receive(pamh, &pi, task, quiet_mode); |
57 |
|
58 |
+ if (flags & FLAGS_IGNORE_UNKNOWN_USER |
59 |
+ && pam_status == PAM_USER_UNKNOWN) { |
60 |
+ pam_status = PAM_IGNORE; |
61 |
+ } |
62 |
+ |
63 |
switch (task) { |
64 |
case SSS_PAM_AUTHENTICATE: |
65 |
/* We allow sssd to send the return code PAM_NEW_AUTHTOK_REQD during |
27 |
-- |
66 |
-- |
28 |
1.8.0 |
67 |
1.8.5.3 |
29 |
|
68 |
|
30 |
- |
|
|