diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-09-08 11:09:02 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-09-08 11:09:02 +1000 |
commit | fa3f3bab33001770a9d7e33875bf212636f6c128 (patch) | |
tree | 8a2168040eb0233fd2c89d55c77f73b4d29577a7 /source/dsdb | |
parent | d87b655e20b7c38756774cec2e5898af38c46786 (diff) | |
download | samba-fa3f3bab33001770a9d7e33875bf212636f6c128.tar.gz |
Don't expose passwords, even to the administrator.
This ensures they don't leak over LDAP, but does not prevent access,
as ldbsearch locally still bypasses these controls.
Andrew Bartlett
Diffstat (limited to 'source/dsdb')
-rw-r--r-- | source/dsdb/samdb/ldb_modules/kludge_acl.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/dsdb/samdb/ldb_modules/kludge_acl.c b/source/dsdb/samdb/ldb_modules/kludge_acl.c index 2c01594722a..bc998a835a9 100644 --- a/source/dsdb/samdb/ldb_modules/kludge_acl.c +++ b/source/dsdb/samdb/ldb_modules/kludge_acl.c @@ -238,7 +238,6 @@ static int kludge_acl_callback(struct ldb_context *ldb, void *context, struct ld { switch (ac->user_type) { case SECURITY_SYSTEM: - case SECURITY_ADMINISTRATOR: if (ac->allowedAttributesEffective) { ret = kludge_acl_allowedAttributes(ldb, ares->message, "allowedAttributesEffective"); if (ret != LDB_SUCCESS) { @@ -252,6 +251,20 @@ static int kludge_acl_callback(struct ldb_context *ldb, void *context, struct ld } } break; + case SECURITY_ADMINISTRATOR: + if (ac->allowedAttributesEffective) { + ret = kludge_acl_allowedAttributes(ldb, ares->message, "allowedAttributesEffective"); + if (ret != LDB_SUCCESS) { + return ret; + } + } + if (ac->allowedChildClassesEffective) { + ret = kludge_acl_childClasses(ldb, ares->message, "allowedChildClassesEffective"); + if (ret != LDB_SUCCESS) { + return ret; + } + } + /* fall though */ default: /* remove password attributes */ for (i = 0; data->password_attrs[i]; i++) { |