1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00
Commit Graph

246 Commits

Author SHA1 Message Date
Andrew Tridgell
40fa4c4154 we need to return NT_STATUS_INVALID_PARAMETER for bad levels in
lsalookupnames2
2008-09-29 16:50:46 -07:00
Andrew Tridgell
385015f8f2 unmapped SIDs should be rid 0 not rid -1 2008-09-29 16:10:54 -07:00
Andrew Tridgell
750a848d0d added some more well known SIDs - thanks to the WSPP LSAT test suite 2008-09-29 16:01:07 -07:00
Jelmer Vernooij
6925202bde Move source4/lib/crypto to lib/crypto. 2008-09-24 15:30:23 +02:00
Simo Sorce
508527890a Merge ldb_search() and ldb_search_exp_fmt() into a simgle function.
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
2008-09-23 18:17:46 -04:00
Andrew Bartlett
dadd59ba40 Simplfy SetSecrets behaviour in line with RPC-LSA and Win2008.
(This used to be commit 07cb8db799)
2008-09-08 12:46:04 +10:00
Andrew Bartlett
b3cee235f5 More work towards trusted domains support in Samba4's LSA
Make 'lsar_CreateTrustedDomain' consistant with
lsar_CreateTrustedDomainEx{,2} by renaming handle -> policy_handle

Implement LSA server logic to create the cn=users trust account for
incoming trusts.

Andrew Bartlett
(This used to be commit d87b655e20)
2008-09-08 10:55:34 +10:00
Andrew Bartlett
35c8899949 Follow MS-LSAD 3.1.4.7.12 and set defaults when creating a trust.
Also check we get the defaults correct with a query in the torture
suite.

Andrew Bartlett
(This used to be commit b55a1b63cc)
2008-09-01 14:43:00 +10:00
Andrew Bartlett
4eba234a73 More LSA server and testuite work.
- Implement QueryDomainInformationPolicy in Samba4

 - Allow RPC-LSA to pass against Windows 2008 (which does not allow
   the Audit privilage to be removed)

Andrew Bartlett
(This used to be commit d94c7bbcd6)
2008-08-26 12:18:26 +10:00
Andrew Bartlett
a85ee07046 Implement matching logic to Windows 2008 on handling of secrets.
This is enforced by the new RPC-LSA test.

Andrew Bartlett
(This used to be commit da200ac644)
2008-08-26 10:33:41 +10:00
Andrew Bartlett
387cd89af4 Fix LSA server to pass more of RPC-LSA and match Windows 2008
This fixes some info levels in the QueryTrustedDomainInfo call, and
changes from implementing lsa_Delete to lsa_DeleteObject (which has an
explicit close and reutrns a NULL handle).

Andrew Bartlett
(This used to be commit 1f12c368b2)
2008-08-26 10:32:49 +10:00
Andrew Bartlett
e16b2242e5 Remove bogus test in 'enum trusted domains' LSA server.
The change to the RPC-LSA test proves that when the remote server has
0 trusted domains, it will return NT_STATUS_NO_MORE_ENTRIES, not
NT_STATUS_OK.

Andrew Bartlett
(This used to be commit 40a55b34c2)
2008-07-21 12:05:53 +10:00
Simo Sorce
929adc9efa Make up the right dependencies now that ldb depends on libevents
(This used to be commit 3b8eec7ca3)
2008-06-14 11:59:19 -04:00
Jelmer Vernooij
21fc767378 Specify event_context to ldb_wrap_connect explicitly.
(This used to be commit b4e1ae07a2)
2008-04-17 12:23:44 +02:00
Kai Blin
c9fa788ca2 rpc_server: Remove references to sidmap from the lsa pipe code.
(This used to be commit 25cbb1b767)
2008-04-02 23:07:00 +02:00
Andrew Bartlett
9a1bec0801 More kludge ACLs!
Rather than killing off the nasty 'kludge ACLs' stuff, this patch
extends it, to ensure that LSA secrets and the registry are also
protected.

Andrew Bartlett
(This used to be commit 2f2b110fb8)
2008-03-20 12:12:10 +11:00
Andrew Bartlett
8b20113517 Show why a LookupName fails (help debugging)
Andrew Bartlett
(This used to be commit 9bfc475788)
2008-03-13 16:35:11 +11:00
Jelmer Vernooij
41db2ab12c r26319: Split encoding functions out of libcli_ldap.
(This used to be commit 95a6ef7fc8)
2007-12-21 05:48:33 +01:00
Jelmer Vernooij
2f5ca872a8 r26313: Fix more uses of static loadparm.
(This used to be commit 6fd0d9d3b7)
2007-12-21 05:48:25 +01:00
Jelmer Vernooij
57f20ccd24 r26296: Store loadparm context in DCE/RPC server context.
(This used to be commit fc1f4d2d65)
2007-12-21 05:48:13 +01:00
Jelmer Vernooij
7e298580e0 r26234: More global_loadparm fixes.
(This used to be commit 84892d030d)
2007-12-21 05:47:12 +01:00
Jelmer Vernooij
51db4c3f3d r26228: Store loadparm context in auth context, move more loadparm_contexts up the call stack.
(This used to be commit ba75f1613a)
2007-12-21 05:47:05 +01:00
Jelmer Vernooij
f4a1083cf9 r26227: Make loadparm_context part of a server task, move loadparm_contexts further up the call stack.
(This used to be commit 0721a07aad)
2007-12-21 05:47:04 +01:00
Jelmer Vernooij
991ee1aff0 r26205: Pass loadparm_context to secrets_db_connect() rather than using global context.
(This used to be commit 5718b6cfee)
2007-12-21 05:46:51 +01:00
Andrew Bartlett
25143a2648 r26135: Remove samdb_add(), samdb_delete() and samdb_modify(), which were just
wrappers to ldb_add() etc.  samdb_replace() remains, as it sets flags on
all entries as 'replace'.

Andrew Bartlett
(This used to be commit 09c0faa5b7)
2007-12-21 05:46:17 +01:00
Jelmer Vernooij
ca0b72a1fd r26003: Split up DB_WRAP, as first step in an attempt to sanitize dependencies.
(This used to be commit 56dfcb4f2f)
2007-12-21 05:45:40 +01:00
Jelmer Vernooij
05e7c48146 r25553: Convert to standard bool type.
(This used to be commit b7371f1a19)
2007-10-10 15:07:54 -05:00
Jelmer Vernooij
37d53832a4 r25398: Parse loadparm context to all lp_*() functions.
(This used to be commit 3fcc960839)
2007-10-10 15:07:25 -05:00
Andrew Bartlett
905b403adb r25196: Thanks to id10ts on IRC for finding some typos in my well-known names
patch.

Andrew Bartlett
(This used to be commit 99e013207e)
2007-10-10 15:06:51 -05:00
Andrew Bartlett
08c97435d3 r25194: A major rework of the Samba4 LSA LookupNames and LookupSids code, with
a new torture suite to match.

This should fix bug #4954 by Matthias Wallnöfer <mwallnoefer@yahoo.de>

Previously we had no knowlege of BUILTIN or well-known names.

This code needs expansion to check with winbind for trusted domains.

Andrew Bartlett
(This used to be commit e6fc0e1f54)
2007-10-10 15:06:51 -05:00
Jelmer Vernooij
ffeee68e4b r25026: Move param/param.h out of includes.h
(This used to be commit abe8349f9b)
2007-10-10 15:05:38 -05:00
Andrew Bartlett
985c7a0b20 r24987: Clarify error conditions in secrets handling, before I add ACLs to
secrets.ldb

Andrew Bartlett
(This used to be commit 17a61bd569)
2007-10-10 15:05:23 -05:00
Andrew Bartlett
6a92d816a7 r24918: Fix the build (forgot to include dcesrv_lsa.c in the previous commit)
and improve error strings returned from samdb.c

Andrew Bartlett
(This used to be commit a42d0eb531)
2007-10-10 15:03:38 -05:00
Andrew Tridgell
0479a2f1cb r23792: convert Samba4 to GPLv3
There are still a few tidyups of old FSF addresses to come (in both s3
and s4). More commits soon.
(This used to be commit fcf38a38ac)
2007-10-10 14:59:12 -05:00
Günther Deschner
580b49471f r23382: Fill in lsa_lsaRQueryForestTrustInformation.
Guenther
(This used to be commit 54fa6d453c)
2007-10-10 14:53:13 -05:00
Stefan Metzmacher
041b0cfa97 r21518: fix panic, sorry...
metze
(This used to be commit 3c786eb6bd)
2007-10-10 14:48:49 -05:00
Stefan Metzmacher
3d8e7f9cf4 r21499: fill in the correct forest dns name
metze
(This used to be commit c736543b15)
2007-10-10 14:48:45 -05:00
Jelmer Vernooij
64e88a8ccf r20850: Prefix all server calls with dcesrv_
(This used to be commit 76c78b0339)
2007-10-10 14:43:39 -05:00
Andrew Bartlett
6b236024da r20354: Trusted domains don't have a surname, I think we want 'cn' here.
Andrew Bartlett
(This used to be commit 05debeaced)
2007-10-10 14:30:15 -05:00
Andrew Bartlett
d471e52d23 r20149: Remove the smb.conf distinction between PDC and BDC. Now the correct
way to setup a Samba4 DC is to set 'server role = domain controller'.

We use the fSMORoleOwner attribute in the base DN to determine the PDC.

This patch is quite large, as I have corrected a number of places that
assumed taht we are always the PDC, or that used the smb.conf
lp_server_role() to determine that.

Also included is a warning fix in the SAMR code, where the IDL has
seperated a couple of types for group display enumeration.

We also now use the ldb database to determine if we should run the
global catalog service.

In the near future, I will complete the DRSUAPI
DsGetDomainControllerInfo server-side on the same basis.

Andrew Bartlett
(This used to be commit 67d8365e83)
2007-10-10 14:29:15 -05:00
Simo Sorce
ea212eb00f r20034: Start using ldb_search_exp_fmt()
(This used to be commit 4f07542143)
2007-10-10 14:28:51 -05:00
Simo Sorce
a9e31b33b5 r19832: better prototypes for the linearization functions:
- ldb_dn_get_linearized
  returns a const string

- ldb_dn_alloc_linearized
  allocs astring with the linearized dn
(This used to be commit 3929c086d5)
2007-10-10 14:28:22 -05:00
Simo Sorce
4889eb9f7a r19831: Big ldb_dn optimization and interfaces enhancement patch
This patch changes a lot of the code in ldb_dn.c, and also
removes and add a number of manipulation functions around.

The aim is to avoid validating a dn if not necessary as the
validation code is necessarily slow. This is mainly to speed up
internal operations where input is not user generated and so we
can assume the DNs need no validation. The code is designed to
keep the data as a string if possible.

The code is not yet 100% perfect, but pass all the tests so far.
A memleak is certainly present, I'll work on that next.

Simo.
(This used to be commit a580c871d3)
2007-10-10 14:28:22 -05:00
Andrew Bartlett
8539fb3aaa r19682: Fix comments.
Andrew Bartlett
(This used to be commit 4c349f44f8)
2007-10-10 14:25:31 -05:00
Jelmer Vernooij
5a6e2bc9ae r19573: Move secrets.o into param/ (subsystems haven't been integrated yet).
(This used to be commit 8143de855c)
2007-10-10 14:24:55 -05:00
Simo Sorce
7f833458ca r19489: Change ldb_msg_add_value and ldb_msg_add_empty to take a foruth argument.
This is a pointer to an element pointer. If it is not null it will be
filled with the pointer of the manipulated element.
Will avoid double searches on the elements list in some cases.
(This used to be commit 0fa5d4bc22)
2007-10-10 14:24:38 -05:00
Andrew Bartlett
2687eeab57 r18364: Get us closer to schema compliance. The corrent names for "secret"
and "priorSecret" are "currentValue" and "priorValue".

With this, we pass RPC-LSA against OpenLDAP.

Andrew Bartlett
(This used to be commit 4380bcaaee)
2007-10-10 14:18:19 -05:00
Andrew Bartlett
79a1d08324 r18362: Make LookupSids map onto LookupSids2, as they both take a policy
handle.  Avoids a lookup for the basic domain information for every
request.

Andrew Bartlett
(This used to be commit 35b69bc5f4)
2007-10-10 14:18:18 -05:00
Andrew Bartlett
459a2301a5 r18361: Invert the way we handle LookupSids2/LookupSids3 and LookupNames3/LookupNames4
The latter calls don't supply a policy handle

The latter calls now acquire a policy handle, then call the earlier
calls.  This means we still share the codepaths, but don't need to
fetch policy state when it is already provided.

Andrew Bartlett
(This used to be commit 5fa9e96bd0)
2007-10-10 14:18:18 -05:00
Andrew Bartlett
afed7c86a0 r17983: Use the UTF8-correct strcasecmp_m call for sorting these entries,
which has been recently fixed to cope with NULL pointers (fix segfault
on Solaris).

Andrew Bartlett
(This used to be commit ce36069765)
2007-10-10 14:17:01 -05:00
Andrew Bartlett
e117323e2f r17968: Consolidate the DSSETUP and LSA pipes into a single file, as DSSETUP
is just one call.

This simplifies the one remaining DSSETUP call, and removes another
user of the dnsDomain attribute.

Andrew Bartlett
(This used to be commit 6a54711564)
2007-10-10 14:16:59 -05:00
Andrew Bartlett
e905fed4e0 r17956: LSA Cleanup!
This commit cleans up a number of aspects of the LSA interface.

Firstly, we do 2 simple searches on opening the LSA policy, to obtain
the basic information we need.  This also avoids us searching for
dnsDomain (an invented attribute).

While I was at it, I added and tested new LSA calls, including the
enumTrustedDomainsEx call.  I have also merged the identical structures
lsa_DomainInformation and lsa_DomainList.

Also in this commit: Fix netlogon use of uninitialised variables.

Andrew Bartlett
(This used to be commit 3f3fa7f466)
2007-10-10 14:16:57 -05:00
Andrew Tridgell
b21b119cbc r17824: add a wrapper for the common partitions_basedn calculation
(This used to be commit 09007b0907)
2007-10-10 14:16:45 -05:00
Andrew Tridgell
0fd9807942 r17823: get rid of most of the samdb_base_dn() calls, as they are no longer
needed in searches
(This used to be commit a5ea749f0a)
2007-10-10 14:16:45 -05:00
Stefan Metzmacher
6268e2f148 r17788: fix compiler warnings
metze
(This used to be commit 00fcc4f16a)
2007-10-10 14:16:42 -05:00
Andrew Bartlett
a993f53d52 r17529: Simo doesn't like the use of the internal ldb_errstring in functions
not used purely as ldb module helper functions.  This now passes these
strings back as explicit parameters.

Andrew Bartlett
(This used to be commit 9c1cd9c2c6)
2007-10-10 14:15:33 -05:00
Simo Sorce
a23b63a8e5 r17516: Change helper function names to make more clear what they are meant to do
(This used to be commit ad75cf8695)
2007-10-10 14:15:31 -05:00
Andrew Bartlett
f2e8b3202c r16827: Factor out some code into common samdb functions:
- creation of ForeignSecurityPrincipals
 - template duplication code

Rework much of the LSA server to pass the RPC-LSA test.  Much of the
server code was untested.  In implementing the LSA Accounts feature, I
have opted to have it only create entires when privilages are applied,
and not to delete entries, but to delete the privilages.

We skip some parts of the test, but it is much better than not testing
it at all.

Andrew Bartlett
(This used to be commit 10eeea6da4)
2007-10-10 14:09:48 -05:00
Andrew Bartlett
7c3af0d06a r16236: Add a proper baseDN to a large number of queries. Searching the NULL
baseDN won't work once the partitions module is loaded.

Andrew Bartlett
(This used to be commit c4ab9e8a75)
2007-10-10 14:09:07 -05:00
Jelmer Vernooij
e002300f23 r15328: Move some functions around, remove dependencies.
Remove some autogenerated headers (which had prototypes now autogenerated by pidl)
Remove ndr_security.h from a few places - it's no longer necessary
(This used to be commit c19c2b51d3)
2007-10-10 14:05:17 -05:00
Stefan Metzmacher
657325d684 r15319: remove unneeded macros
metze
(This used to be commit 9611c8aa9c)
2007-10-10 14:05:14 -05:00
Stefan Metzmacher
2e894625e7 r14964: - move sidmap code from ntvfs_common to SAMDB
- make ntvfs_common a library
- create sys_notify library

metze
(This used to be commit a3e1d56cf7)
2007-10-10 14:00:47 -05:00
Stefan Metzmacher
1af925f394 r14860: create libcli/security/security.h
metze
(This used to be commit 9ec706238c)
2007-10-10 13:59:44 -05:00
Andrew Tridgell
05c53f70f0 r14838: fix the build. Looks like I still haven't quite got the hang of the
new dependency/proto system :-)
(This used to be commit 63ae3f21e3)
2007-10-10 13:59:25 -05:00
Stefan Metzmacher
ad06a8bd65 r14736: - the ntvfs subsystem should not know about smb_server.h
- the process module subsystem should not know about smb_server.h
- the smb_server module should not know about process models

metze
(This used to be commit bac95bb8f4)
2007-10-10 13:59:17 -05:00
Jelmer Vernooij
8528016978 r14464: Don't include ndr_BASENAME.h files unless strictly required, instead
try to include just the BASENAME.h files (containing only structs)
(This used to be commit 3dd477ca51)
2007-10-10 13:57:27 -05:00
Jelmer Vernooij
e3f2414cf9 r14380: Reduce the size of structs.h
(This used to be commit 1a16a6f1df)
2007-10-10 13:57:16 -05:00
Stefan Metzmacher
d41b55618f r14206: fix warnings, the better fix for that will be to make the sidmap code
independend of ntvfs...(later...)

metze
(This used to be commit 2a34ed7a07)
2007-10-10 13:57:03 -05:00
Jelmer Vernooij
17ae598141 r13938: Around round of splitups
(This used to be commit 2d655f0528)
2007-10-10 13:52:29 -05:00
Jelmer Vernooij
4ac2be9958 r13924: Split more prototypes out of include/proto.h + initial work on header
file dependencies
(This used to be commit 1228358767)
2007-10-10 13:52:24 -05:00
Jelmer Vernooij
dfc517b053 r13658: More moving around of files:
- Collect the generic utility functions into a lib/util/ (a la GLib is
		for the GNOME folks)
 - Remove even more files from include/
(This used to be commit ba62880f5b)
2007-10-10 13:52:05 -05:00
Stefan Metzmacher
a0ca09628b r12793: fix bugs
metze
(This used to be commit 65be02a980)
2007-10-10 13:49:56 -05:00
Jelmer Vernooij
d4de4c2d21 r12608: Remove some unused #include lines.
(This used to be commit 70e7449318)
2007-10-10 13:49:03 -05:00
Jelmer Vernooij
2cd5ca7d25 r12542: Move some more prototypes out to seperate headers
(This used to be commit 0aca5fd513)
2007-10-10 13:47:55 -05:00
Andrew Bartlett
bceca72304 r12361: Add a new function: ldb_binary_encode_string()
This is for use on user-supplied arguments to printf style format
strings which will become ldb filters.  I have used it on LSA, SAMR
and the auth/ code so far.

Also add comments to cracknames code.

Andrew Bartlett
(This used to be commit 8308cf6e04)
2007-10-10 13:47:30 -05:00
Andrew Bartlett
7a7a52948d r11291: Fix implementation of LookupNames4.
Andrew Bartlett
(This used to be commit aef6800548)
2007-10-10 13:45:14 -05:00
Andrew Bartlett
c6f8330098 r11288: Fill out LSA LookupNames4 and LookupSids3, including a server-side
implementation.

Andrew Bartlett
(This used to be commit a6a615cc99)
2007-10-10 13:45:14 -05:00
Volker Lendecke
bf59ef9d72 r11122: Fix some talloc hierarchy errors
(This used to be commit 449cc714b8)
2007-10-10 13:44:53 -05:00
Andrew Tridgell
a599edf04c r10913: This patch isn't as big as it looks ...
most of the changes are fixes to make all the ldb code compile without
warnings on gcc4. Unfortunately That required a lot of casts :-(

I have also added the start of an 'operational' module, which will
replace the timestamp module, plus add support for some other
operational attributes

In ldb_msg_*() I added some new utility functions to make the
operational module sane, and remove the 'ldb' argument from the
ldb_msg_add_*() functions. That argument was only needed back in the
early days of ldb when we didn't use the hierarchical talloc and thus
needed a place to get the allocation function from. Now its just a
pain to pass around everywhere.

Also added a ldb_debug_set() function that calls ldb_debug() plus sets
the result using ldb_set_errstring(). That saves on some awkward
coding in a few places.
(This used to be commit f6818daecc)
2007-10-10 13:39:41 -05:00
Andrew Tridgell
36d73b0e71 r10894: make the handling of dn/distinguishedName much closer to real
ldap. Also ensure we put a objectclass on our private ldb's, so they
have some chance of being stored in ldap if you want to
(This used to be commit 1af2cc067f)
2007-10-10 13:39:40 -05:00
Andrew Bartlett
1377cca5f4 r10810: This adds the hooks required to communicate the current user from the
authenticated session down into LDB.  This associates a session info
structure with the open LDB, allowing a future ldb_ntacl module to
allow/deny operations on that basis.

Along the way, I cleaned up a few things, and added new helper functions
to assist.  In particular the LSA pipe uses simpler queries for some of
the setup.

In ldap_server, I have removed the 'ldasrv:hacked' module, which hasn't
been worked on (other than making it continue to compile) since January,
and I think the features of this module are being put into ldb anyway.

I have also changed the partitions in ldap_server to be initialised
after the connection, with the private pointer used to associate the ldb
with the incoming session.

Andrew Bartlett
(This used to be commit fd7203789a)
2007-10-10 13:39:32 -05:00
Andrew Bartlett
39daa629ff r10764: To match Win2k3 SP1, we need to set an anonymous user token for
schannel connections.

Test for Win2k3 SP1 behaviour in RPC-SCHANNEL.

Andrew Bartlett
(This used to be commit 1c3911374e)
2007-10-10 13:39:28 -05:00
Andrew Bartlett
b5521a818f r10373: Fix segfault in LookupSids.
Andrew Bartlett
(This used to be commit ddc3a1c79e)
2007-10-10 13:38:33 -05:00
Andrew Bartlett
9b905c9f27 r9930: Use a single samdb_base_dn() function rather than lots of silly
searches all over the place.

This can be extended to cover an NT4 (no ADS) mode in future as well.

Andrew Bartlett
(This used to be commit 0761b22f99)
2007-10-10 13:36:23 -05:00
Günther Deschner
ad44611170 r9888: add IDL for lsa_QueryDomainInformationPolicy to query Kerberos Settings.
Guenther
(This used to be commit d717e878bd)
2007-10-10 13:36:20 -05:00
Jelmer Vernooij
b674411eb4 r9792: Rename StrCaseCmp -> strcasecmp_m. All these years I was thinking
StrCaseCmp was sys_strcasecmp, while it is in fact strcasecmp_m!
(This used to be commit 200a8f6652)
2007-10-10 13:35:01 -05:00
Simo Sorce
61aaf82b62 r9654: introduce the samdb_search_dn call
(This used to be commit 333ebb40d5)
2007-10-10 13:34:38 -05:00
Simo Sorce
ac90ddfdb2 r9392: Fix ldb_dn_compose to make build farm happy
Add ldb_dn_string_compose so that you can build a dn starting from a
struct ldb_dn base and a set of parameters to be composed in a format
string with the same syntax of printf
(This used to be commit 31c69d0655)
2007-10-10 13:33:33 -05:00
Simo Sorce
3e4c4cff21 r9391: Convert all the code to use struct ldb_dn to ohandle ldap like distinguished names
Provide more functions to handle DNs in this form
(This used to be commit 692e35b779)
2007-10-10 13:33:32 -05:00
Andrew Bartlett
e7d87f8538 r9011: Remove more references to "name" as a netbios name, using the
cross-reference instead.

Andrew Bartlett
(This used to be commit 0f7b1136f6)
2007-10-10 13:31:07 -05:00
Andrew Bartlett
639a8afce3 r8982: "name" is not the netbios name, but the RDN. Return the correct
netbios domain name of the host, as well as the sid from the cache we
fetched earlier.

Andrew Bartlett
(This used to be commit c847ca2cc8)
2007-10-10 13:31:03 -05:00
Andrew Bartlett
66b2a04346 r8790: Finish the migration of aliases and privilages with SamSync, by adding
templating support for foreignSecurityPrincipals to the samdb module.
This is an extension beyond what microsoft does, and has been very
useful :-)

The setup scripts have been modified to use the new template, as has
the SAMR and LSA code.

Other cleanups in LSA remove the assumption that the short domain name
is the first component of the realm.

Also add a lot of useful debug messages, to make it clear how/why the
SamSync may have gone wrong.  Many of these should perhaps be hooked
into an error string.

Andrew Bartlett
(This used to be commit 1f071b0609)
2007-10-10 13:30:05 -05:00
Andrew Bartlett
b16362fab6 r8700: Propmted by tridge's need to do plaintext auth in ejs, rework the
user_info strcture in auth/

This moves it to a pattern much like that found in ntvfs, with
functions to migrate between PAIN, HASH and RESPONSE passwords.

Instead of make_user_info*() functions, we simply fill in the control
block in the callers, per recent dicussions on the lists.  This
removed a lot of data copies as well as error paths, as we can grab
much of it with talloc.

Andrew Bartlett
(This used to be commit ecbd2235a3)
2007-10-10 13:29:55 -05:00
Andrew Tridgell
e835621799 r8520: fixed a pile of warnings from the build farm gcc -Wall output on
S390. This is an attempt to avoid the panic we're seeing in the
automatic builds.

The main fixes are:

 - assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats

 - use of NULL format statements to perform dn searches.

 - assumption that sizeof() returns an int
(This used to be commit a58ea6b385)
2007-10-10 13:29:34 -05:00
Stefan Metzmacher
58d06f205e r8429: fix compiler warnings
metze
(This used to be commit b9ee581880)
2007-10-10 13:23:02 -05:00
Andrew Tridgell
bdee131f30 r7860: switch our ldb storage format to use a NDR encoded objectSid. This is
quite a large change as we had lots of code that assumed that
objectSid was a string in S- format.

metze and simo tried to convince me to use NDR format months ago, but
I didn't listen, so its fair that I have the pain of fixing all the
code now :-)

This builds on the ldb_register_samba_handlers() and ldif handlers
code I did earlier this week. There are still three parts of this
conversion I have not finished:

 - the ltdb index records need to use the string form of the objectSid
   (to keep the DNs sane). Until that it done I have disabled indexing on
   objectSid, which is a big performance hit, but allows us to pass
   all our tests while I rejig the indexing system to use a externally
   supplied conversion function

 - I haven't yet put in place the code that allows client to use the
   "S-xxx-yyy" form for objectSid in ldap search expressions. w2k3
   supports this, presumably by looking for the "S-" prefix to
   determine what type of objectSid form is being used by the client. I
   have been working on ways to handle this, but am not happy with
   them yet so they aren't part of this patch

 - I need to change pidl to generate push functions that take a
   "const void *" instead of a "void*" for the data pointer. That will
   fix the couple of new warnings this code generates.

Luckily it many places the conversion to NDR formatted records
actually simplified the code, as it means we no longer need as many
calls to dom_sid_parse_talloc(). In some places it got more complex,
but not many.
(This used to be commit d40bc2fa8d)
2007-10-10 13:18:44 -05:00
Simo Sorce
9189833a87 r7582: Better way to have a fast path searching for a specific DN.
Old way was ugly and had a bug, you couldn't add an attribute named
dn or distinguishedName and search for it, tdb would change that search in a dn search.
This makes it also possible to search by dn against an ldap server as the old method was
not supported by ldap syntaxes.

sss
(This used to be commit a614466dec)
2007-10-10 13:18:11 -05:00
Andrew Bartlett
79f6bcd5ae r5988: Fix the -P option (use machine account credentials) to use the Samba4
secrets system, and not the old system from Samba3.

This allowed the code from auth_domain to be shared - we now only
lookup the secrets.ldb in lib/credentials.c.

In order to link the resultant binary, samdb_search() has been moved
from deep inside rpc_server into lib/gendb.c, along with the existing
gendb_search_v().  The vast majority of this patch is the simple
rename that followed,

(Depending on the whole SAMDB for just this function seemed pointless,
and brought in futher dependencies, such as smbencrypt.c).

Andrew Bartlett
(This used to be commit e13c671619)
2007-10-10 13:11:12 -05:00
Simo Sorce
b1b14817ea r5585: LDB interfaces change:
changes:
- ldb_wrap disappears from code and become a private structure of db_wrap.c
  thanks to our move to talloc in ldb code, we do not need to expose it anymore

- removal of ldb_close() function form the code
  thanks to our move to talloc in ldb code, we do not need it anymore
  use talloc_free() to close and free an ldb database

- some minor updates to ldb modules code to cope with the change and fix some
  bugs I found out during the process
(This used to be commit d58be9e74b)
2007-10-10 13:10:55 -05:00
Andrew Tridgell
a5bd1ccada r5307: removed db_wrap.h from includes.h
(This used to be commit 826baec7b3)
2007-10-10 13:09:40 -05:00
Andrew Tridgell
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
3dd17f1288 r5034: - added a type mapping function in pidl, so the type names in our IDL
files don't need to match the type names in the generated headers

- with this type mapping we no longer need definitions for the
  deprecated "int32", "uint8" etc form of types. We can now force
  everyone to use the standard types int32_t, uint8_t etc.

- fixed all the code that used the deprecated types

- converted the IDL types "int64" and "uint64" to "dlong" and
  "udlong". These are the 4 byte aligned 64 bit integers that
  Microsoft internally define as two 32 bit integers in a
  structure. After discussions with Ronnie Sahlberg we decided that
  calling these "int64" was confusing, as it implied a true 8 byte
  aligned type

- fixed all the cases where we incorrectly used things like
  "NTTIME_hyper" in our C code. The generated API now uses a NTTIME for
  those. The fact that it is hyper-aligned on the wire is not relevant
  to the API, and should remain just a IDL property
(This used to be commit f86521677d)
2007-10-10 13:09:15 -05:00
Andrew Bartlett
7588b41e15 r4713: Add initial support for QueryTrustedDomainInfo on LSA.
(more info levels to come)

Andrew Bartlett
(This used to be commit 175ae7599e)
2007-10-10 13:08:47 -05:00
Andrew Bartlett
e54964c618 r4703: Add support for EnumTrustDomain, and expand the testsuite.
Add my copyright to the SAMR server.

Andrew Bartlett
(This used to be commit 51e94fa26c)
2007-10-10 13:08:45 -05:00
Andrew Bartlett
c0571f6234 r4698: - Initial implementation of trusted domains in LSA.
- Use templates for Secrets and the new trusted domains

 - Auto-add modifiedTime, createdTime and objectGUID to records in the
   samdb layer.

Andrew Bartlett
(This used to be commit 271c8faadf)
2007-10-10 13:08:44 -05:00
Andrew Bartlett
9eaf1b45c0 r4695: Leave less memory handing around on long-term TALLOC_CTX.
Add lsa_Delete() support for secrets.

Andrew Bartlett
(This used to be commit be4cd59f33)
2007-10-10 13:08:44 -05:00
Andrew Bartlett
4e052c1704 r4694: 'fix' the behaviour for setting only the old, but not the new secret.
(The behaviour is a little odd, but we wanted bug-for-bug, right? :-)

Andrew Bartlett
(This used to be commit 6a09a84320)
2007-10-10 13:08:44 -05:00
Andrew Bartlett
a249198d53 r4682: A LDB-based secrets implementation in Samba4.
This uses LDB (a local secrets.ldb and the global samdb) to fill out
the secrets from an LSA perspective.

Some small changes to come, but the bulk of the work is now done.

A re-provision is required after this change.

Andrew Bartlett
(This used to be commit ded3303352)
2007-10-10 13:08:42 -05:00
Andrew Tridgell
577218b2ad r4640: first stage in the server side support for multiple context_ids on one pipe
this stage does the following:

 - simplifies the dcerpc_handle handling, and all the callers of it

 - split out the context_id depenent state into a linked list of established contexts

 - fixed some talloc handling in several rpc servers that i noticed while doing the above
(This used to be commit fde042b3fc)
2007-10-10 13:08:38 -05:00
Stefan Metzmacher
46a32687da r4620: - add interface functions to the auth subsystem so that callers doesn't need to
use function pointers anymore
- make the module init much easier
- a lot of cleanups

don't try to read the diff in auth/ better read the new files

it passes test_echo.sh and test_rpc.sh

abartlet: please fix spelling fixes

metze
(This used to be commit 3c0d16b823)
2007-10-10 13:08:34 -05:00
Andrew Tridgell
42cf0af758 r4563: fixed lsa_EnumAccounts() server side to return all accounts that have privileges, as
volker discovered
(This used to be commit 09edc31f3b)
2007-10-10 13:08:28 -05:00
Andrew Tridgell
90a322f6d7 r4447: implement server side of lsa_LookupSids3() and lsa_LookupNames3()
(This used to be commit e535f84504)
2007-10-10 13:07:51 -05:00
Andrew Tridgell
e046e9dd73 r4433: added the boilerplate for the new w2k3 LSA functions in preparation
for adding LookupSids3 (needed for ACL editing from w2k3)
(This used to be commit 745bbc0e17)
2007-10-10 13:07:49 -05:00
Volker Lendecke
6f2e88a09c r4416: [in,out] variables do have an r->out component...
Volker
(This used to be commit 97247c9029)
2007-10-10 13:07:46 -05:00
Stefan Metzmacher
5b07d37110 r4340: - simplify lsa_GetUserName() server code,
we don't need to do db lookups as we already known who the user is

metze
(This used to be commit cef0d1eb29)
2007-10-10 13:07:36 -05:00
Stefan Metzmacher
a86387d42c r4323: - implement the lsa_GetUserName() server call
- give lsa_lookup_sid() a chance with foreign SIDS
  returning NT_STATUS_NO_MEMORY makes no sense here
  as the ldb_msg_find_string() doesn't allocate the string

metze
(This used to be commit b43f34e873)
2007-10-10 13:07:35 -05:00
Andrew Tridgell
2057121d14 r4283: adding a privilege that an account already has is not an error
(This used to be commit 2a4c562896)
2007-10-10 13:07:31 -05:00
Andrew Tridgell
134769f9ad r4280: added server side support for lsa_AddPrivilegesToAccount() and lsa_RemovePrivilegesFromAccount()
these are the last of the server side privileges functions. We should
now have a complete privileges implementation.
(This used to be commit 76db300232)
2007-10-10 13:07:31 -05:00
Andrew Tridgell
424844da32 r4278: - added server support for lsa_EnumPrivsAccount()
(This used to be commit a80c82d263)
2007-10-10 13:07:31 -05:00
Andrew Tridgell
9b3ea6dc4e r4277: - added server support for lsa_EnumAccounts()
- expanded the lsa test suite to better test lsa_EnumAccounts()
(This used to be commit bafdb17729)
2007-10-10 13:07:31 -05:00
Andrew Tridgell
c6a420fd1e r4276: added server side support for lsa_OpenAccount()
(This used to be commit 4716334502)
2007-10-10 13:07:30 -05:00
Andrew Tridgell
113cacf94c r4206: fixed a status code check in lsa_LookupNames2 that could cause a segv
(This used to be commit 31ab04f790)
2007-10-10 13:07:26 -05:00
Andrew Tridgell
4d545e09c8 r4202: added smbclient commands "addprivileges" and "delprivileges" for
easily adding/removing privileges from users
(This used to be commit 8764909c05)
2007-10-10 13:07:26 -05:00
Andrew Tridgell
916170d9dc r4199: - added server side code for lsa_RemoveAccountRights (sharing code
with lsa_AddAccountRights)
(This used to be commit 9bd806b7a2)
2007-10-10 13:07:25 -05:00
Andrew Tridgell
463ba76d44 r4198: - added server side code for lsa_AddAccountRights
(This used to be commit ba87142586)
2007-10-10 13:07:25 -05:00
Andrew Tridgell
c80d77cdb8 r4196: - added server side code for lsa_LookupPrivDisplayName
- added english descriptions of privileges. We should add other
  languages in the future.
(This used to be commit 3eee8b7c13)
2007-10-10 13:07:25 -05:00
Andrew Tridgell
02f7d260a2 r4195: added IDL, test suite and server side code for lsa_LookupPrivValue
(This used to be commit 7bddd47403)
2007-10-10 13:07:25 -05:00
Andrew Tridgell
9927ffd600 r4194: added server side implementation of lsa_EnumPrivs
(This used to be commit 7107320332)
2007-10-10 13:07:24 -05:00
Andrew Tridgell
8a3d15127b r4193: added server side implementation of lsa_EnumAccountsWithUserRight
(This used to be commit 5088a6cbf7)
2007-10-10 13:07:24 -05:00
Andrew Tridgell
7b7c26cfce r4192: added server side implementation of lsa_EnumAccountRights
the "privilege" command in smbclient now works against Samba4
(This used to be commit 8a3f265050)
2007-10-10 13:07:24 -05:00
Andrew Tridgell
c33283df20 r4012: split out the lsa lookup single name logic into a separate function
(This used to be commit 44d9761962)
2007-10-10 13:06:14 -05:00
Andrew Tridgell
f11aa23296 r3994: - removed the unused reference count code in lsa server
- fixed the sid_index field in lsa LookupSids and LookupNames
(This used to be commit 677f701e71)
2007-10-10 13:06:12 -05:00
Andrew Tridgell
b393de7f05 r3992: provide hooks for lsa to lookup sids allocated using the linear id->sid mapping
(This used to be commit e611405109)
2007-10-10 13:06:11 -05:00
Andrew Tridgell
56ea10795c r3980: added server side support for lsa_LookupNames() and lsa_LookupNames2()
(This used to be commit da12780bd9)
2007-10-10 13:06:10 -05:00
Andrew Tridgell
20c0900edb r3979: added server side code for lsa_LookupSids2() and fixed authority_name
return code to include our own domain.

editing of ACLs via the w2k3 GUI works nicely (and faster) with these changes
(This used to be commit a3f7f34b39)
2007-10-10 13:06:10 -05:00
Andrew Bartlett
88baaee093 r3917: A few more LSA RPCs found in my wanderings (for trusted domains, these
seem to be 'shortcut' RPCs, that just avoid an open/query pair).

Rename a few others to give us a slightly sensible pattern.

Andrew Bartlett
(This used to be commit d6a7ab57e7)
2007-10-10 13:06:05 -05:00
Andrew Bartlett
b6b61cec79 r3907: * Rename lsa_Name to lsa_String
* Add new IDL to LSA, to query information about trusted domains (for
  cross-check with SamSync).

Andrew Bartlett
(This used to be commit 174c077842)
2007-10-10 13:06:04 -05:00
Andrew Bartlett
be7a3e3ce0 r3904: * Add new LSA calls to open trusted domains
* Add new tests for ACCOUNTs in SamSync

* Clean up names in NETLOGON and LSA

* Verify Security Descriptors against LSA, as well as SamR

Andrew Bartlett
(This used to be commit 7094502fe0)
2007-10-10 13:06:03 -05:00
Andrew Tridgell
9b6c08a0d1 r3837: added support for LsaLookupSids in the LSA rpc server. This allows the GUI ACL editor on w2k to
correctly display names instead of SIDs.
(This used to be commit fdaa753578)
2007-10-10 13:05:58 -05:00
Andrew Tridgell
c051779a0a r3468: split out dcerpc_server.h
(This used to be commit 729e0026e4)
2007-10-10 13:05:17 -05:00
Andrew Tridgell
90067934cd r3428: switched to using minimal includes for the auto-generated RPC code.
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.

This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8)
2007-10-10 13:05:09 -05:00
Andrew Tridgell
159f81ee32 r2635: mem_ctx cleanups on the lsa and netlogon pipes in the rpc server
(This used to be commit 1ee5ed4197)
2007-10-10 12:59:15 -05:00
Andrew Tridgell
ede02ee038 r2051: switched the samdb over to using the new destructor and reference
count features of talloc, instead of re-implementing both those
features inside of samdb (which is what we did before).

This makes samdb considerably simpler, and also fixes some bugs, as I
found some error paths that didn't call samdb_close(). Those are now
handled by the fact that a talloc_free() will auto-close and destroy
the samdb context, using a destructor.
(This used to be commit da60987a92)
2007-10-10 12:58:21 -05:00
Volker Lendecke
6706ba5bb4 r1814: Fix the build.
Tridge, in rpc_epmapper.c there's a whole bunch of "return
NT_STATUS_NOT_IMPLEMENTED". You told me that's wrong, you should generate the
correct fault pdu. Or is epmapper special in that respect?

Volker
(This used to be commit 48df39c133)
2007-10-10 12:57:58 -05:00
Andrew Tridgell
7f3d4cc980 r919: - added lsa_QueryInfoPolicy2() to IDL, test suite and server
- added lsa_OpenPolicy2() to server

- added guid handling in samdb

- added a couple more info policy levels in lsa server

- added some DNS info in the provisioning template and script

With the above changes WinXP professional can join a Samba4 domain
(This used to be commit d6dca96352)
2007-10-10 12:56:20 -05:00
Andrew Tridgell
db3c011977 r917: - added the start of a LSA server to samba4.
- added start of QueryDomainInfo in samr server

"net rpc info" from samba3 now works against a samba4 server. I
suspect join will work fairly soon.
(This used to be commit 0a2c6a1062)
2007-10-10 12:56:19 -05:00