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

152 Commits

Author SHA1 Message Date
Fernando J V da Silva
086fa79d4d s4-drs: Removes stored parentGUID's creation and renaming
parentGUID is now created on demand in operational.c

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-11-20 13:58:31 +11:00
Andrew Bartlett
07953142a4 s4:dsdb Rework samdb code to use 'storage format' DNs for defaultObjectCategory
It is important to always ensure that this attribute has an extended
DN if the rest of the database stores things that way.

The knowlege of what format the DN is stored on disk with is passed
around in an LDB opaque.

Andrew Bartlett
2009-11-17 10:38:02 +11:00
Andrew Tridgell
932cda330a s4-samdb: remove the rDN size constraint of 64
This size constraint is not correct in it's current form, as windows
does send us rDN values for CN with lengths longer than 64. Once we
know how this constraint really works we can add it back in.
2009-11-09 22:19:52 +11:00
Andrew Tridgell
fdeeafb481 s4-dsdb: implement limit on rDN length
w2k8 imposes a limit of 64 characters on the rDN
2009-10-15 15:54:20 +11:00
Matthias Dieter Wallnöfer
8b67e1ab70 s4:objectclass ldb module - Check for empty messages
I think the check for empty messages fits best here.
2009-10-12 17:35:52 +02:00
Matthias Dieter Wallnöfer
24422fae24 s4:objectclass - Free unused memory from responses 2009-10-03 15:49:40 +02:00
Andrew Bartlett
4bc9a39eed s4:dsdb Use possibleInferiors to restrict creation of child objects
This also uses systemPossibleInferiors when the 'relax' control is
specified, which is done by the provision.

Andrew Bartlett
2009-10-03 12:37:55 +02:00
Andrew Bartlett
f86beaaad9 s4:dsdb Add objectClass and RDN constraints to objectClass module
These additional constraints are applied, found by the Microsoft testsuite.

 - When the parent is not present, we now return 'NO_SUCH_OBJECT'.
 - Restrict the choice of RDN to the correct one per the schema
 - Honour the allowedChildClasses attribute from the parent's objectClass.

Andrew Bartlett
2009-10-03 12:37:49 +02:00
Matthias Dieter Wallnöfer
90828cc702 s4:dsdb Don't allow creation of systemOnly objectclasses
(except as part of the provision, which specifies the 'relax' control)

Andrew Bartlett
2009-10-03 10:52:53 +02:00
Andrew Bartlett
e6d8226745 s4:dsdb Return correct error on invalid attribute
This error per the Microsoft testsuite
2009-10-02 17:57:12 +02:00
Andrew Bartlett
1c71c09645 s4:dsdb Don't allow creating of new objects with an isDefunct schema class 2009-10-02 12:45:07 +02:00
Andrew Bartlett
642dd95d81 s4:Ensure the selected RDN is the right one per the schema
The relative DN must be the one that the most specific structural
objectclass specifies.

Andrew Bartlett
2009-10-02 12:44:58 +02:00
Nadezhda Ivanova
f54ef5f20f s4:dsdb Fix of double addition of SD-s
Also add error strings in descriptor module
2009-09-21 20:50:34 -07:00
Nadezhda Ivanova
d70e171719 Owner and group defaulting.
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2009-09-16 07:52:05 -07:00
Andrew Bartlett
cda99a202d s4:dsdb Use helper function to add 'show deleted' control
This revises tridge's commit 61ca4c491e1c13eb7d97847f743b0f540f1117c4
to use ldb_request_add_control() instead of a manual construction.

Andrew Bartlett
2009-08-26 11:10:51 +10:00
Andrew Tridgell
61ca4c491e fixed DRS rename of deleted objects
The objectclass module checks that the target parent exists, and
refuses renames if it doesn't exist. For this to work for deleted
objects we have to do the search in the objectclass module with the
"show deleted" control enabled.
2009-08-25 17:00:27 +10:00
Andrew Bartlett
43aa546ecc s4:dsdb Don't cast an ldb_val into a const char * for schema lookups
This removes a number of cases where we did a cast into a const char *
of an ldb_val.  While convention is to alway have an extra \0 at
data[length] in the ldb_val, this is not required, and does not occour
at least on build farm host 'svart'.

Andrew Bartlett
2009-08-05 08:56:06 +10:00
Andrew Tridgell
a1ebb85020 added support for parentGUID
This is made up of 4 parts:

  1) change our schema to include the parentGUID attribute type

  2) in the add hook in the objectclass module, get the objectGUID of
  the parent and add it to the message as parentGUID

  3) in the rename hook in the objectclass module, get the objectGUID
  of the new parent, and insert an async modify request after the
  renmam is done

  4) added a simple test suite
2009-03-17 14:18:53 +11:00
Simo Sorce
1cd7fe7194 Fix headers, ldb_includes.h is a private header,
do not reference it from ldb.h
2009-02-23 17:38:11 -05:00
Simo Sorce
d4aeed879b Fix all other modules to use ldb_module.h instead of ldb_private.h
The only 2 modules escaping the rule so far are rootdse and partitions
2009-01-30 17:07:25 -05:00
Stefan Metzmacher
327d2be452 s4:dsdb/samdb: don't allow objects without objectClass
We're using @ROOTDSE instead of CN=ROOTDSE.

metze
2008-11-17 11:37:58 +01:00
Andrew Bartlett
7c88ea8aad Create a 'straight paper path' for UTF16 passwords.
This uses a virtual attribute 'clearTextPassword' (name chosen to
match references in MS-SAMR) that contains the length-limited blob
containing an allegidly UTF16 password.  This ensures we do no
validation or filtering of the password before we get a chance to MD4
it.  We can then do the required munging into UTF8, and in future
implement the rules Microsoft has provided us with for invalid inputs.

All layers in the process now deal with the strings as length-limited
inputs, incluing the krb5 string2key calls.

This commit also includes a small change to samdb_result_passwords()
to ensure that LM passwords are not returned to the application logic
if LM authentication is disabled.

The objectClass module has been modified to allow the
clearTextPassword attribute to pass down the stack.

Andrew Bartlett
2008-10-16 12:48:16 +11:00
Jelmer Vernooij
9565999755 Fix include paths to new location of libutil. 2008-10-11 21:31:42 +02:00
Simo Sorce
51baa8deec LDB ASYNC: samba4 modules 2008-09-29 04:22:20 +02:00
Andrew Bartlett
c222f8196a Try to implement the right logic for systemFlags
The MS-ADTS document has quite detailed instrucitons on how these
flags should be processed.  This change also causes the correct
sign-wrapping to occour, as these are declared as signed integers.

Andrew Bartlett
(This used to be commit 5c3d237a6d721dc75166bdc5ac0c6e76a4495bf7)
2008-09-08 11:10:24 +10:00
Andrew Bartlett
4a2ba0c047 Bail out, rather than segfault on no domain sid.
Andrew Bartlett
(This used to be commit 7e85f318b571d1a909dffad0ecd661468ed497ca)
2008-03-13 14:12:50 +11:00
Andrew Bartlett
58edd6d179 Don't segfault on invalid objectClass input.
If the objectClass found does not include a defaultSecurityDescriptor,
then we should not segfault in the SDDL parser.

Andrew Bartlett
(This used to be commit 5a92771fb55149fcf24f21f30e4c6a622bef44f8)
2008-03-13 10:27:09 +11:00
Jelmer Vernooij
39a817d310 Fix use of some modules (needed _PUBLIC_).
(This used to be commit ce332130ea77159832da23bab760fa26921719e2)
2008-02-20 04:33:43 +01:00
Jelmer Vernooij
16109a40c0 Use struct-based rather than function-based initialization for ldb modules everywhere.
(This used to be commit 85c96a325867f7bcdb412ebc53f8a47dbf7cd89b)
2008-02-20 01:54:32 +01:00
Andrew Bartlett
7e2ea67b21 Only set showOnlyInAdvancedView: TRUE when adding default values.
False is the default, so only set this when the schema requires the
hiding behaviour.

Andrew Bartlett
(This used to be commit 45f6ccefda39e8f0a9820ba55b1924b7cfb12262)
2008-01-18 18:08:49 +11:00
Andrew Bartlett
391f089d71 Add showInAdvancedViewOnly to every new object
Unless already set, the default value for this comes from the
defaultHidingValue in the schema.

Andrew Bartlett
(This used to be commit 673f1805006f879fa5302aab8411767a22488e64)
2008-01-18 16:56:41 +11:00
Jelmer Vernooij
86dc05e99f r26638: libndr: Require explicitly specifying iconv_convenience for ndr_struct_push_blob().
(This used to be commit 61ad78ac98937ef7a9aa32075a91a1c95b7606b3)
2008-01-01 16:12:11 -06:00
Jelmer Vernooij
0500b87092 r26540: Revert my previous commit after concerns raised by Andrew.
(This used to be commit 6ac86f8be7d9a8c5ab396a93e6d1e6819e11f173)
2007-12-21 05:52:06 +01:00
Jelmer Vernooij
3e75f222bc r26539: Remove unnecessary statics.
(This used to be commit e53e79eebef3ece6978f0a2b4a1ee0a0814bb5d2)
2007-12-21 05:52:05 +01:00
Andrew Bartlett
6d2f6f1aae r26297: Correct error message. This function verifies attributes, not
objectclasses.

Andrew Bartlett
(This used to be commit 47422b5e59027461efd7bc45534f9da8e37e3f48)
2007-12-21 05:48:14 +01:00
Andrew Bartlett
d4fbd381fa r26282: These modules expect errors, but if we don't wipe the error string, we
get phony error strings at the caller, which is very confusing.

Andrew Bartlett
(This used to be commit 9ac7f4f6098b392dbe4a883a802d2417e074586a)
2007-12-21 05:48:07 +01:00
Andrew Bartlett
5d4f507a65 r25942: Make various ldb modules handle an LDB backend that enforces validity
of Base DNs in searches (returning an error of LDB_ERR_NO_SUCH_ENTRY).

We need to handle this if ldb_tdb is to behave correctly compared with
LDAP, as well as if we are using an LDAP backend.

In doing so, I realised that subtree_rename and subtree_delete
(prevention) need rather different wait loops, so it seemed easier to
split it out into it's own module.

I've fixed the licence on both of these modules to be GPLv3.

Andrew Bartlett
(This used to be commit d3894c90f31fb45e038ab478cd9d7d34962d069b)
2007-12-21 05:45:11 +01:00
Stefan Metzmacher
529763a9aa r25920: ndr: change NTSTAUS into enum ndr_err_code (samba4 callers)
lib/messaging/
lib/registry/
lib/ldb-samba/
librpc/rpc/
auth/auth_winbind.c
auth/gensec/
auth/kerberos/
dsdb/repl/
dsdb/samdb/
dsdb/schema/
torture/
cluster/ctdb/
kdc/
ntvfs/ipc/
torture/rap/
ntvfs/
utils/getntacl.c
ntptr/
smb_server/
libcli/wrepl/
wrepl_server/
libcli/cldap/
libcli/dgram/
libcli/ldap/
libcli/raw/
libcli/nbt/
libnet/
winbind/
rpc_server/

metze
(This used to be commit 6223c7fddc972687eb577e04fc1c8e0604c35435)
2007-12-21 05:45:02 +01:00
Andrew Bartlett
a4c79f06ae r25762: This test belongs best with the other checks for a valid parent, in
the objectclass module.

Andrew Bartlett
(This used to be commit 16a292fcb134adec110cbc4c8f0fb03323750a45)
2007-12-21 05:43:47 +01:00
Andrew Bartlett
2de30ecd94 r25755: Fix a couple of memory leaks, in particular a new leak onto the NULL
context caused by my objectclass module work.

Andrew Bartlett
(This used to be commit 2a835d900fee71e4461d5d18e39b4358fa6fdfba)
2007-12-21 05:43:46 +01:00
Andrew Bartlett
46210e11f1 r25754: More work on normal forms for ldb input.
This patch is to ensure that all attributes are in the same case as
the schema specifies.  In the process, I ensure that all attributes
are indeed in the schema.

This ensures we use the schema case, not the user supplied case for
future responses, which assists any (incorrect, but possible) case
sensitive processing on a client.

I've also removed more of the subtle 'schema &&' that metze objected
to in the for loops, moving to a much more explicit 'if (schema)'.

Andrew Bartlett
(This used to be commit bfc96fff063e7cc278755c043b9da0ed4b75a615)
2007-12-21 05:43:45 +01:00
Andrew Bartlett
16d0395047 r25750: Update the objectclass module to improve consistency in Samba4.
The aim here is to ensure that if we have

CN=Users,DC=samba,DC=example,DC=com

that we cannot have a DN of the form

cn=admin ,cn=useRS,DC=samba,DC=example,DC=com

This module pulls apart the DN, fixes up the relative DN part, and
searches for the parent to copy the base from.

I've used the objectclass module, as I intend to also validate the
placement of child objects, by reading the allowedChildClasses virtual
attribute.

In the future, I'll also force the attribute names to be consistant
(using the case from the schema).

Andrew Bartlett
(This used to be commit c0a0c69ac5a81cfcb7c7d5ba38db59f8686c30ab)
2007-12-21 05:43:43 +01:00
Andrew Bartlett
c2e5cf6e31 r25705: Ensure we return the out value to the caller.
Andrew Bartlett
(This used to be commit 3434262ad74c366ac58319c70880ca50898fa78c)
2007-12-21 05:43:22 +01:00
Andrew Bartlett
35dc4d9999 r25704: Handle the chicken-and-egg problem of setting up the LDB before we get
a schema.  perhaps i need to look into metze's 'load a schema from
ldif' code.

Andrew Bartlett
(This used to be commit f350ef5f19ec755c93c6c09210cdf276d1b66877)
2007-12-21 05:43:22 +01:00
Andrew Bartlett
c4ebf9587f r25702: Clarify comments and make this module more strict on objectclasses.
This is becoming the schema module...

Andrew Bartlett
(This used to be commit ecea817a3e793f8ac0187dd83a29e62a7d645868)
2007-12-21 05:43:21 +01:00
Andrew Bartlett
8294016a1b r24914: In response to bug #4892 by Matthias Wallnöfer <mwallnoefer@yahoo.de>,
allow the objectclass module to reconstruct the objectclass hierarchy,
rather than using templates.

The issue being fixed in particular is that 'top' was not being set on
containers.

This should ensure we do this right for all objects.

Andrew Bartlett
(This used to be commit d17a0058ba8492b8b3f81b6f10fc34b3e45bb8a6)
2007-10-10 15:03:37 -05:00
Andrew Bartlett
714c5c92ef r24731: Remove unused code - if we hit these error conditions, then we are
dead anyway, and a segfault would leave us with more infomation.

Andrew Bartlett
(This used to be commit 62320616ff8795ff18c8f49029d81f12558c10ed)
2007-10-10 15:03:00 -05:00
Andrew Bartlett
0eb3ee3204 r24459: Fix up ldap.js and test_ldb.sh to test the domain_scope control, and
to test the behaviour of objectCategory=user searches.

It turns out (thanks to a hint on
http://blog.joeware.net/2005/12/08/147/) that objectCategory=user maps
into objectCategory=CN=Person,... (by the defaultObjectCategory of
that objectclass).

Simplify the entryUUID module by using the fact that we now set the DN
as the canoncical form of objectCategory.

Andrew Bartlett
(This used to be commit b474be9507df51982a604289215bb1868124fc24)
2007-10-10 15:01:53 -05:00
Andrew Bartlett
9fd3416452 r24277: Tidyup as requested by metze.
Andrew Bartlett
(This used to be commit 43d62181f204fb32e487b7689729c1a91b8d23ad)
2007-10-10 15:01:35 -05:00
Andrew Bartlett
c4e5fcc349 r24263: Fix bug 4846 (unable to copy users in MMC Active Directory Users and
Computers).

We now generate a security descriptor for each object, when it is
created.  This seems to keep MMC happy.  The next step is to honour
it.

Andrew Bartlett
(This used to be commit 72f4ae82463c5c1f9f6b7f18f125c4c8fb56ae4f)
2007-10-10 15:01:32 -05:00