summaryrefslogtreecommitdiff
path: root/source/dsdb
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-09-08 11:09:02 +1000
committerAndrew Bartlett <abartlet@samba.org>2008-09-08 11:09:02 +1000
commitfa3f3bab33001770a9d7e33875bf212636f6c128 (patch)
tree8a2168040eb0233fd2c89d55c77f73b4d29577a7 /source/dsdb
parentd87b655e20b7c38756774cec2e5898af38c46786 (diff)
downloadsamba-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.c15
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++) {