Gerald Carter [Sun, 6 May 2007 21:04:30 +0000 (21:04 +0000)]
r22713: Offline logon fixes for idmap manager:
(a) Ignore the negative cache when the domain is offline
(b) don't delete expired entries from the cache as these
can be used when offline (same model as thw wcache entries)
(c) Delay idmap backend initialization when offline
as the backend routines will not be called until we go
online anyways. This prevents idmap_init() from failing
when a backend's init() function fails becuase of lack of
network connectivity
Gerald Carter [Sun, 6 May 2007 20:16:12 +0000 (20:16 +0000)]
r22710: Support one-way trusts.
* Rely on the fact that name2sid will work for any name
in a trusted domain will work against our primary domain
(even in the absense of an incoming trust path)
* Only logons will reliably work and the idmap backend
is responsible for being able to manage id's without contacting
the trusted domain
* "getent passwd" and "getent group" for trusted users and groups
will work but we cannot get the group membership of a user in any
fashion without the user first logging on (via NTLM or krb5)
and the netsamlogon_cache being updated.
Gerald Carter [Sun, 6 May 2007 19:37:13 +0000 (19:37 +0000)]
r22705: Implement new set_dc_type_and_flags() called based on the
information return from our DC in the DsEnumerateDomainTrusts()
call. If the fails, we callback ot the older
connect-to-the-remote-domain method.
Note that this means we can only reliably expect the native_mode
flag to be set for our own domain as this information in not
available outside our primary domain from the trusted information.
This is ok as we only really need the flag when trying to
determine to enumerate domain local groups via RPC.
Use the AD flag rather than the native_mode flag when using
ldap to obtain the seq_num for a domain.
Gerald Carter [Sun, 6 May 2007 19:17:30 +0000 (19:17 +0000)]
r22704: Implement three step method for enumerating domain trusts.
(a) Query our primary domain for trusts
(b) Query all tree roots in our forest
(c) Query all forest roots in trusted forests.
This will give us a complete trust topology including
domains via transitive Krb5 trusts. We also store the
trust type, flags, and attributes so we can determine
one-way trusted domains (outgoing only trust path).
Patch for one-way trusts coming in a later check-in.
"wbinfo -m" now lists all domains in the domain_list() as held
by the main winbindd process.
Gerald Carter [Sun, 6 May 2007 19:04:31 +0000 (19:04 +0000)]
r22703: Convert winbindd_getgrgid() and winbindd_getgetpwnam()
to use the same code path after we resolve the name/gid to
a SID. Use the async lookupname/lookupsid interface.
Gerald Carter [Sun, 6 May 2007 19:01:54 +0000 (19:01 +0000)]
r22702: Convert both lookup name and lookup sid to follow the
same heuristic. First try our DC and then try a DC in the
root of our forest. Use a temporary state since
winbindd_lookupXXX_async() is called from various winbindd
API entry points.
Note this will break the compile. That will be fixed in the
next commit.
Gerald Carter [Sun, 6 May 2007 18:39:31 +0000 (18:39 +0000)]
r22700: Add a simple wcache TRUSTDOM api for maintaing a complete
list of trusted domains without requiring each winbindd process
to aquire this on its own. This is needed for various idmap
plugins and for dealing with different trust topoligies.
Jeremy Allison [Mon, 30 Apr 2007 16:32:17 +0000 (16:32 +0000)]
r22611: Fix from Jens Nissen <jens.nissen@gmx.net>. Fix bad
memory leak I introduced into acl code, also remove
redundent extra check for global_sid_System :
global_sid_System == S-1-5-18 which is already
included in the check for a domain of
global_sid_NT_Authority == S-1-5
Jeremy Allison [Sun, 29 Apr 2007 19:20:48 +0000 (19:20 +0000)]
r22573: Fix old bug mixing free() and talloc_free()
when the add_sid_to_array_XX code was moved
from malloc to talloc. Found running valgrind
and rpcclient. Needs merging for 3.0.25 final.
Jeremy.
Michael Adam [Tue, 24 Apr 2007 00:12:28 +0000 (00:12 +0000)]
r22496: reg_enumvalue should return WERR_NO_MORE_ITEMS instead of
WERR_BAD_FILE when all items have been successfully enumerated.
Besides seeming the reasonable code to return,
this is what I have seen from w2k3, w2k, wxp.
Jeremy Allison [Mon, 23 Apr 2007 16:32:24 +0000 (16:32 +0000)]
r22490: Fix a couple of bugs found whist investigating CSC Vista issues.
Ensure we correctly NULL out allocation size fields. Allow
QFILEINFO on pipes (Vista bug ?). Jerry - don't automatically
merge for 3.0.25.
Jeremy.
Gerald Carter [Mon, 23 Apr 2007 06:10:22 +0000 (06:10 +0000)]
r22473: Correct fix for setting a default compat tdb idmap backend.
Previous code would always fill in "idmap backend = tdb"
even if you defined idmap domains. My fault. I should
have tested the original patch more before committing.