summaryrefslogtreecommitdiff
path: root/source3/nsswitch/winbindd_group.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2006-10-12 13:29:01 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:15:26 -0500
commit7399ab779d7100059475ed196e6e4435b2b33bbd (patch)
tree94eaff54327d75fdc6cfbb0c62710533c049528e /source3/nsswitch/winbindd_group.c
parent96869053a5abe37efee679f524beb83da0191caa (diff)
downloadsamba-7399ab779d7100059475ed196e6e4435b2b33bbd.tar.gz
samba-7399ab779d7100059475ed196e6e4435b2b33bbd.tar.bz2
samba-7399ab779d7100059475ed196e6e4435b2b33bbd.zip
r19255: Add blacklist of accounts when NSS initgroups calls are coming in and
"winbind use default domain" is set. Defaults to "root, nobody, lp" currently. Guenther (This used to be commit b5b42196a6f2869deefc700dc98060f5ab832e40)
Diffstat (limited to 'source3/nsswitch/winbindd_group.c')
-rw-r--r--source3/nsswitch/winbindd_group.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/source3/nsswitch/winbindd_group.c b/source3/nsswitch/winbindd_group.c
index de19ee02b5..676bf918b4 100644
--- a/source3/nsswitch/winbindd_group.c
+++ b/source3/nsswitch/winbindd_group.c
@@ -1018,6 +1018,30 @@ void winbindd_getgroups(struct winbindd_cli_state *state)
DEBUG(3, ("[%5lu]: getgroups %s\n", (unsigned long)state->pid,
state->request.data.username));
+ /* when using "winbind use default domain" we need to avoid that
+ * initgroups() requests from NSS hit our DC too badly for accounts
+ * that will never be on the remote DC */
+
+ if (lp_winbind_use_default_domain()) {
+
+ const char **list = lp_winbind_initgroups_blacklist();
+ int i;
+
+ if (!list || !list[0]) {
+ goto parse;
+ }
+
+ for (i=0; list[i] != NULL; i++) {
+
+ if (strequal(state->request.data.username, list[i])) {
+ DEBUG(3,("ignoring blacklisted user [%s] for getgroups\n",
+ state->request.data.username));
+ request_ok(state);
+ return;
+ }
+ }
+ }
+ parse:
/* Parse domain and username */
s = TALLOC_P(state->mem_ctx, struct getgroups_state);