1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-21 03:17:08 +03:00

106 Commits

Author SHA1 Message Date
Andrew Tridgell
87f3151047 s4-dsdb: pass parent request to dsdb_module_*() functions
this preserves the request hierarchy for dsdb_module_*() calls inside
dsdb ldb modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-01-17 05:23:04 +01:00
Matthias Dieter Wallnöfer
37c4ced9bd s4:acl LDB module - "acl_rename" - memory contexts fixup
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Thu Dec 23 22:49:41 CET 2010 on sn-devel-104
2010-12-23 22:49:41 +01:00
Matthias Dieter Wallnöfer
e30299eabd s4:acl LDB module - add a missing "talloc_free(tmp_ctx)" in an error path
Just for consistency.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Thu Dec 23 21:46:38 CET 2010 on sn-devel-104
2010-12-23 21:46:37 +01:00
Nadezhda Ivanova
3ba42be7c1 s4-acl: Implementation of Validated-SPN validated write
If this right is granted to a user, they may modify the SPN of an object with some value restrictions
serviceName can be set only if the object is a DC, and then only to the default domain and netbios name, or ntds_guid._msdsc_.forest_domain. If the serviceType is GC, only to the forest root domain. If the serviceType is ldap, then to forest_domain or netbiosname.
InstanceType can be samAccountName or dnsHostName.
2010-12-22 12:29:14 +02:00
Matthias Dieter Wallnöfer
e3017e6411 s4:acl LDB module - it's more correct to count the password attributes using "unsigned int"
Since these are derived from a LDB result.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Sat Nov 20 11:29:07 CET 2010 on sn-devel-104
2010-11-20 11:29:07 +01:00
Matthias Dieter Wallnöfer
d451ac1f3a s4:acl LDB module - use also here "dsdb_find_nc_root" to implement the NC-specific checks
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Tue Nov 16 15:12:13 UTC 2010 on sn-devel-104
2010-11-16 15:12:13 +00:00
Matthias Dieter Wallnöfer
7f171a9e0f s4:password_hash and acl LDB modules - handle the "userPassword" attribute according to the "dSHeuristics" 2010-11-11 10:03:39 +01:00
Matthias Dieter Wallnöfer
d4c9a34cf8 s4:acl LDB module - define the delete passwords special case a bit better 2010-11-08 11:27:03 +00:00
Andrew Tridgell
9103047782 s4-ldb: enable version checking in dsdb ldb modules 2010-11-01 13:05:04 +00:00
Andrew Tridgell
7eb2eed156 s4-dsdb: convert the rest of the ldb modules to the new module type 2010-11-01 18:55:19 +11:00
Matthias Dieter Wallnöfer
c291858199 s4:dsdb - fix unsigned integer save problems using the "%u" specifier
The issue here is that we have not yet first cast to int32_t explicitly,
before we cast to an signed int to printf() into the %d or cast to a
int64_t before we then cast to a long long to printf into a %lld.

There are *no* unsigned integers in Active Directory LDAP, even the RID
allocations and ms-DS-Secondary-KrbTgt-Number are *signed* quantities.
(See the schema, and the syntax definitions in schema_syntax.c).

The failure has been detected by Matthieu Patou on the buildfarm host "tridge"
due to a malformed "groupType" attribute.

The solution is to use the "%d" specifier. Either to use it directly - or better
(when possible) use the call "samdb_msg_add_uint" (which encapsulates it).

This patch changes such problematic situations.
2010-10-16 10:54:46 +02:00
Jelmer Vernooij
2bff55f5de dsdb/modules: Split up helpers a bit to prevent recursive dependencies.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 10 23:47:54 UTC 2010 on sn-devel-104
2010-10-10 23:47:54 +00:00
Matthias Dieter Wallnöfer
e3081b92c1 s4:dsdb - substitute the "show_deleted" with the "show_recycled" control
We intend to see always all objects with the "show_deleted" control specified.
To see also recycled objects (beginning with 2008_R2 function level) we need to
use the new "show_recycled" control.

As far as I see this is only internal code and therefore we don't run into
problems if we do substitute it.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-10-03 15:23:18 +00:00
Nadezhda Ivanova
b77edca7f8 s4-dsdb: Moved some helper functions to a separate file
We need these to be accessible to the aclread module as well.
2010-09-26 15:36:09 -07:00
Andrew Tridgell
5568fcd88b s4-dsdb: added tagging of requests in dsdb modules
this allows you to call dsdb_req_chain_debug() in gdb or when writing
debug code to see the request chain
2010-09-25 10:38:45 -07:00
Andrew Bartlett
6cf29b3e4f s4:security Change struct security_token->sids from struct dom_sid * to struct dom_sid
This makes the structure much more like NT_USER_TOKEN in the source3/
code.  (The remaining changes are that privilages still need to be merged)

Andrew Bartlett
2010-08-23 08:50:55 +10:00
Andrew Bartlett
7c6ca95bec s4:security Remove use of user_sid and group_sid from struct security_token
This makes the structure more like Samba3's NT_USER_TOKEN
2010-08-18 09:50:38 +10:00
Matthias Dieter Wallnöfer
23bd3a7417 s4:acl LDB module - support password changes over the DSDB_CONTROL_PASSWORD_CHANGE_OID control
This control is used from the SAMR and "kpasswd" password changes. It is
strictly private and means "this is a password change and not a password set".
2010-08-17 18:45:33 +02:00
Andrew Tridgell
6baa834ebe s4-ldb: use LDB_FLAG_MOD_TYPE() to extract element type from messages
The flags field of message elements is part of a set of flags. We had
LDB_FLAG_MOD_MASK for extracting the type, but it was only rarely
being used (only 1 call used it correctly). This adds
LDB_FLAG_MOD_MASK() to make it more obvious what is going on.

This will allow us to use some of the other flags bits for internal
markers on elements

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-08-17 21:21:50 +10:00
Nadezhda Ivanova
d50a9e8d9e s4-dsdb: Removed kludge_acl as it is no longer necessary
Moved the access check on extended operations to acl module and removed kludge_acl
2010-08-04 15:22:17 +03:00
Matthias Dieter Wallnöfer
f824e459f0 s4:acl LDB module - remove the "forest DN" check
After some reading I've discovered that this isn't really true. The forest
partition does exist on one or more DCs and is there the same as the default
base DN (which is already checked by the module).
And if we have other DCs which contain child domains then they never contain
data of the forest domain beside the schema and the configuration partition
(which are checked anyway) since a DC can always contain only one domain!

Link: http://www.informit.com/articles/article.aspx?p=26896&seqNum=5
2010-08-01 21:30:28 +02:00
Matthias Dieter Wallnöfer
149f4251c5 s4:acl LDB module - remove unused call "is_root_base_dn" 2010-08-01 21:30:27 +02:00
Andrew Tridgell
6b266b85cf s4-loadparm: 2nd half of lp_ to lpcfg_ conversion
this converts all callers that use the Samba4 loadparm lp_ calling
convention to use the lpcfg_ prefix.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-16 18:24:27 +10:00
Matthias Dieter Wallnöfer
6b7e436871 s4:acl LDB module - password attributes - check also the "dBCSPwd" attribute
It's also a possible password change/set attribute candidate.
2010-07-08 21:52:15 +02:00
Matthias Dieter Wallnöfer
921308f1e8 s4:acl LDB module - move a "mem_ctx" creation to the place where it is actually checked
Memory allocations and their result checks should be as tight as possible.
2010-07-08 19:28:44 +02:00
Kamen Mazdrashki
62a0f11dcb s4-source4/dsdb/samdb/ldb_modules/acl.c Use DSDB_FLAG_NEXT_MODULE flag 2010-07-08 02:38:35 +03:00
Andrew Tridgell
87df785a68 s4-dsdb: use ldb_operr() in the dsdb code
this replaces "return LDB_ERR_OPERATIONS_ERROR" with "return ldb_operr(ldb)"
in places in the dsdb code where we don't already explicitly set an
error string. This should make is much easier to track down dsdb
module bugs that result in an operations error.
2010-07-07 20:14:55 +10:00
Nadezhda Ivanova
81240b13b3 s4-dsdb: Implementation of User-Change-Password and User-Force-Password-Change
These CARs need to be checked on password change and password reset operations.
    Apparently the password attributes are not influenced by Write Property.
    Single detele operations and modifications of dBCSPwd are let through to the
    password_hash module. This is determined experimentally.
2010-07-05 00:17:38 +03:00
Nadezhda Ivanova
845e7a609d Fixed incorrect use of cn instead of lDAPDisplayName 2010-06-29 11:46:22 +03:00
Matthias Dieter Wallnöfer
fc2d8fcb83 s4:acl LDB module - fix counter type 2010-06-28 14:51:09 +02:00
Nadezhda Ivanova
5a18fc2b2a Implementation of self membership validated right.
When this right is granted, the user can add or remove themselves from a group even
if they dont have write property right.
2010-06-28 10:43:50 +03:00
Matthias Dieter Wallnöfer
ee278bf0c4 s4:acl LDB module - LDB attribute names should be compared using "ldb_attr_cmp" or "strcasecmp" 2010-06-07 14:47:24 +02:00
Matthias Dieter Wallnöfer
566d13c5d1 s4:acl LDB module - adaption for "objectclass_attrs" module
Since the attribute schema checking code moved back we need to give here the
"LDB_ERR_NO_SUCH_ATTRIBUTE" error.
2010-06-07 14:47:24 +02:00
Matthias Dieter Wallnöfer
787a42ef99 s4:acl LDB module - fix counter types where appropriate 2010-06-06 20:43:38 +02:00
Matthias Dieter Wallnöfer
e2806f9e4d s4:acl ldb module - fix typos 2010-05-10 12:39:44 +02:00
Nadezhda Ivanova
eef184301a s4:Replaced dsdb_get_dom_sid_from_ldb_message() with samdb_result_dom_sid() 2010-04-16 14:28:35 +03:00
Matthias Dieter Wallnöfer
a894d6cc37 s4:acl/descriptor LDB module - distinguish between root and default basedn
The first is the forest base DN, the second the domain base DN. At the moment
we assume that they are both the same but it hasn't to be so.

Nadia, I would invite you to fix the outstanding parts regarding this (I added
comments).
2010-04-13 09:32:34 +02:00
Andrew Bartlett
a7ec946ced s4:dsdb/acl Reduce calls to dsdb_get_schema() and add memory context
dsdb_get_schema() isn't a very cheap call, due to the use of LDB
opaque pointers.  We need to call it less, and instead pass it as a
parameter where possible.

This also changes to the new API with a talloc context.

Andrew Bartlett
2010-03-16 19:25:55 +11:00
Nadezhda Ivanova
be79f572ed Split the dsdb_access_check_on_dn.
Split the dsdb_access_check_on_dn so it can be reused for checks
from both within the module stack and outside it.
2010-03-12 03:13:51 +02:00
Nadezhda Ivanova
4b256c6d8e Fixed ACL module to use dsdb_module_* API. 2010-03-12 02:21:16 +02:00
Nadezhda Ivanova
222b955237 Moved access_check_on_dn from acl module as an utility.
Made this an utility function so it can be used for access checking
outside of the acl ldb module, such as checking validated writes and
control access rights in other protocols (e. g drs)
2010-03-12 00:20:15 +02:00
Nadezhda Ivanova
f742623b7b Added a check for permissions to modify the RDN attribute on rename.
Necessary because rdn module will be moved lower than acl in the stack.
2010-03-09 13:07:18 +02:00
Matthias Dieter Wallnöfer
77e1497a7b s4:acl LDB module - change counter variable to "unsigned" 2010-03-07 19:20:02 +01:00
Andrew Tridgell
5549190b37 s4-dsdb: use TYPESAFE_QSORT() in dsdb code 2010-02-13 22:36:12 +11:00
Matthias Dieter Wallnöfer
259ba3ab87 s4:mark the SYSTEM control always as non-critical
It is needed to not break the various LDAP backends. For reference look at
bug #7040.
2010-02-04 11:08:58 +01:00
Andrew Tridgell
8b8bb15a54 s4-dsdb: fixed const misuse in acl module 2010-01-08 13:03:06 +11:00
Andrew Tridgell
baa8793a94 s4-dsdb: use dsdb_module_am_system() in acl module 2010-01-08 13:03:06 +11:00
Nadezhda Ivanova
35b8808b94 Adapted acl module to skip checks if as_system control is provided.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-12-21 23:45:06 +11:00
Brendan Powers
2ad086e7f6 s4-dsdb: Add a check to prevent acl_modify from debuging a NULL message
Check to see if there were any messages passed to acl_modify before
debugging the first one. I think I caused this by some malformed
LDIF.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2009-12-18 14:27:43 +11:00
Nadezhda Ivanova
c0883fb451 Fixed incorrect checking of PRINCIPAL_SELF permissions.
If an ace has the PRINCIPAL_SELF as trustee, this sid has to be replaced with
the onjectSid of the object being checked. PRINCIPAL_SELF is the way to grant rights
to an account over itself.
2009-12-17 17:25:11 +02:00