View | Details | Raw Unified | Return to bug 186545 | Differences between
and this patch

Collapse All | Expand All

(-)b/files/patch-src__man__pam_sss.8.xml (+43 lines)
Added Link Here
1
From 1a7794d0e3c9fa47f7b0256518186ce214e93504 Mon Sep 17 00:00:00 2001
2
From: Lukas Slebodnik <lslebodn@redhat.com>
3
Date: Sat, 22 Mar 2014 15:09:34 +0100
4
Subject: [PATCH 1/2] patch-src__man__pam_sss.8.xml
5
6
---
7
 src/man/pam_sss.8.xml | 13 +++++++++++++
8
 1 file changed, 13 insertions(+)
9
10
diff --git src/man/pam_sss.8.xml src/man/pam_sss.8.xml
11
index 72b497ab34a520d21964824080c7f276b26706f4..5b4e456e2b0b7469a233d7bd98d296bec2d8e739 100644
12
--- src/man/pam_sss.8.xml
13
+++ src/man/pam_sss.8.xml
14
@@ -37,6 +37,9 @@
15
             <arg choice='opt'>
16
                 <replaceable>retry=N</replaceable>
17
             </arg>
18
+            <arg choice='opt'>
19
+                <replaceable>ignore_unknown_user</replaceable>
20
+            </arg>
21
         </cmdsynopsis>
22
     </refsynopsisdiv>
23
 
24
@@ -103,6 +106,16 @@
25
                     <option>PasswordAuthentication</option>.</para>
26
                 </listitem>
27
             </varlistentry>
28
+            <varlistentry>
29
+                <term>
30
+                    <option>ignore_unknown_user</option>
31
+                </term>
32
+                <listitem>
33
+                    <para>If this option is specified and the user does not
34
+                    exist, the PAM module will return PAM_IGNORE. This causes
35
+                    the PAM framework to ignore this module.</para>
36
+                </listitem>
37
+            </varlistentry>
38
         </variablelist>
39
     </refsect1>
40
 
41
-- 
42
1.8.5.3
43
(-)b/files/patch-src__sss_client__pam_sss.c (-8 / +46 lines)
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
- 

Return to bug 186545