summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2010-09-16 14:04:14 -0400
committerStephen Gallagher <sgallagh@redhat.com>2010-10-18 13:12:04 -0400
commit9932622f615a783f276a83389a37e65ffcdfc5da (patch)
tree27ae5b967105d27f40948987ab4430221e3e48f4 /src
parent87b8fb42e8cf76883645782273271a85dc2220aa (diff)
downloadsssd-9932622f615a783f276a83389a37e65ffcdfc5da.tar.gz
sssd-9932622f615a783f276a83389a37e65ffcdfc5da.tar.xz
sssd-9932622f615a783f276a83389a37e65ffcdfc5da.zip
Add option to limit nested groups
Diffstat (limited to 'src')
-rw-r--r--src/config/etc/sssd.api.d/sssd-ipa.conf1
-rw-r--r--src/config/etc/sssd.api.d/sssd-ldap.conf1
-rw-r--r--src/man/sssd-ldap.5.xml16
-rw-r--r--src/providers/ipa/ipa_common.c3
-rw-r--r--src/providers/ipa/ipa_common.h2
-rw-r--r--src/providers/ldap/ldap_common.c3
-rw-r--r--src/providers/ldap/sdap.h1
7 files changed, 24 insertions, 3 deletions
diff --git a/src/config/etc/sssd.api.d/sssd-ipa.conf b/src/config/etc/sssd.api.d/sssd-ipa.conf
index 88ff0f058..b559b78dc 100644
--- a/src/config/etc/sssd.api.d/sssd-ipa.conf
+++ b/src/config/etc/sssd.api.d/sssd-ipa.conf
@@ -70,6 +70,7 @@ ldap_group_member = str, None, false
ldap_group_uuid = str, None, false
ldap_group_modify_timestamp = str, None, false
ldap_force_upper_case_realm = bool, None, false
+ldap_group_nesting_level = int, None, false
ldap_netgroup_search_base = str, None, false
ldap_netgroup_object_class = str, None, false
ldap_netgroup_name = str, None, false
diff --git a/src/config/etc/sssd.api.d/sssd-ldap.conf b/src/config/etc/sssd.api.d/sssd-ldap.conf
index 38c75b2eb..75eba5866 100644
--- a/src/config/etc/sssd.api.d/sssd-ldap.conf
+++ b/src/config/etc/sssd.api.d/sssd-ldap.conf
@@ -62,6 +62,7 @@ ldap_group_gid_number = str, None, false
ldap_group_member = str, None, false
ldap_group_uuid = str, None, false
ldap_group_modify_timestamp = str, None, false
+ldap_group_nesting_level = int, None, false
ldap_force_upper_case_realm = bool, None, false
ldap_netgroup_search_base = str, None, false
ldap_netgroup_object_class = str, None, false
diff --git a/src/man/sssd-ldap.5.xml b/src/man/sssd-ldap.5.xml
index 646ef4cff..ff6d4399b 100644
--- a/src/man/sssd-ldap.5.xml
+++ b/src/man/sssd-ldap.5.xml
@@ -578,6 +578,22 @@
</varlistentry>
<varlistentry>
+ <term>ldap_group_nesting_level (integer)</term>
+ <listitem>
+ <para>
+ If ldap_schema is set to a schema format that
+ supports nested groups (e.g. RFC2307bis), then
+ this option controls how many levels of nesting
+ SSSD will follow. This option has no effect on the
+ RFC2307 schema.
+ </para>
+ <para>
+ Default: 2
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>ldap_netgroup_search_base (string)</term>
<listitem>
<para>
diff --git a/src/providers/ipa/ipa_common.c b/src/providers/ipa/ipa_common.c
index 2acd72a60..95d99de84 100644
--- a/src/providers/ipa/ipa_common.c
+++ b/src/providers/ipa/ipa_common.c
@@ -74,7 +74,8 @@ struct dp_option ipa_def_ldap_opts[] = {
{ "ldap_dns_service_name", DP_OPT_STRING, { SSS_LDAP_SRV_NAME }, NULL_STRING },
{ "ldap_krb5_ticket_lifetime", DP_OPT_NUMBER, { .number = (24 * 60 * 60) }, NULL_NUMBER },
{ "ldap_access_filter", DP_OPT_STRING, NULL_STRING, NULL_STRING },
- { "ldap_netgroup_search_base", DP_OPT_STRING, NULL_STRING, NULL_STRING }
+ { "ldap_netgroup_search_base", DP_OPT_STRING, NULL_STRING, NULL_STRING },
+ { "ldap_group_nesting_level", DP_OPT_NUMBER, { .number = 2 }, NULL_NUMBER }
};
struct sdap_attr_map ipa_attr_map[] = {
diff --git a/src/providers/ipa/ipa_common.h b/src/providers/ipa/ipa_common.h
index 144ebf0c6..8cbcaebb6 100644
--- a/src/providers/ipa/ipa_common.h
+++ b/src/providers/ipa/ipa_common.h
@@ -35,7 +35,7 @@ struct ipa_service {
/* the following defines are used to keep track of the options in the ldap
* module, so that if they change and ipa is not updated correspondingly
* this will trigger a runtime abort error */
-#define IPA_OPTS_BASIC_TEST 37
+#define IPA_OPTS_BASIC_TEST 38
/* the following define is used to keep track of the options in the krb5
* module, so that if they change and ipa is not updated correspondingly
diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c
index 6925e694e..ea5f95707 100644
--- a/src/providers/ldap/ldap_common.c
+++ b/src/providers/ldap/ldap_common.c
@@ -64,13 +64,14 @@ struct dp_option default_basic_opts[] = {
/* use the same parm name as the krb5 module so we set it only once */
{ "krb5_kdcip", DP_OPT_STRING, NULL_STRING, NULL_STRING },
{ "krb5_realm", DP_OPT_STRING, NULL_STRING, NULL_STRING },
- { "ldap_pwd_policy", DP_OPT_STRING, { "none" } , NULL_STRING },
+ { "ldap_pwd_policy", DP_OPT_STRING, { "none" }, NULL_STRING },
{ "ldap_referrals", DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE },
{ "account_cache_expiration", DP_OPT_NUMBER, { .number = 0 }, NULL_NUMBER },
{ "ldap_dns_service_name", DP_OPT_STRING, { SSS_LDAP_SRV_NAME }, NULL_STRING },
{ "ldap_krb5_ticket_lifetime", DP_OPT_NUMBER, { .number = (24 * 60 * 60) }, NULL_NUMBER },
{ "ldap_access_filter", DP_OPT_STRING, NULL_STRING, NULL_STRING },
{ "ldap_netgroup_search_base", DP_OPT_STRING, NULL_STRING, NULL_STRING },
+ { "ldap_group_nesting_level", DP_OPT_NUMBER, { .number = 2 }, NULL_NUMBER }
};
struct sdap_attr_map generic_attr_map[] = {
diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h
index bb50db8e5..4506085f1 100644
--- a/src/providers/ldap/sdap.h
+++ b/src/providers/ldap/sdap.h
@@ -177,6 +177,7 @@ enum sdap_basic_opt {
SDAP_KRB5_TICKET_LIFETIME,
SDAP_ACCESS_FILTER,
SDAP_NETGROUP_SEARCH_BASE,
+ SDAP_NESTING_LEVEL,
SDAP_OPTS_BASIC /* opts counter */
};