1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-20 16:23:51 +03:00
Commit Graph

137 Commits

Author SHA1 Message Date
Andrew Tridgell
e3d00fa47d reverted this patch till I sort out the craziness with UNIHDR -
Andrew Tridgell
b9eff31b14 This removes the 3rd argument from init_unistr2(). There were 240
calls to init_unistr2() in the code and every one of them got the 3rd
argument incorrect, so I thought it best just to remove the argument.

The incorrect usage was caused by callers using strlen() to determine
the length of the string. The 3rd argument to init_unistr2() was
supposed to be the character length, not the byte length of the
string, so for non-english this could come out wrong.

I also removed the bogus 'always allocate at least 256 bytes'
hack. There may be some code that relies on this, but if there is then
the code is broken and needs fixing.
-
Gerald Carter
9ac196dad4 small merges from SAMBA_3_0; mostly typos, renames, etc... -
Andrew Bartlett
028f808c03 Move our password change code along a little - use NTSTATUS, and implmenet
minimum password age and min password length for all password changes.

Andrew Bartlett
-
Jeremy Allison
842e08e52a Forward port the change to talloc_init() to make all talloc contexts
named. Ensure we can query them.
Jeremy.
-
Tim Potter
43cd6e5a70 Spelling fix. -
Jeremy Allison
82b8f749a3 Removed global_myworkgroup, global_myname, global_myscope. Added liberal
dashes of const. This is a rather large check-in, some things may break.
It does compile though :-).
Jeremy.
-
Andrew Bartlett
62ee7b7dc0 Make it easier to track things down here - add some debugs on failure. -
Jeremy Allison
e46e38beab Reverted a fix from Volker (sorry). We need to move this fix to the correct
place.
Jeremy.
-
Jeremy Allison
4d9b205362 Debug level 12 is a typo.
Jeremy.
-
Jeremy Allison
a81d700ae9 First cut of new ACL mapping code from Andreas Gruenbacher <agruen@suse.de>.
This is not 100% the same as what SuSE shipped in their Samba, there is
a crash bug fix, a race condition fix, and a few logic changes I'd like to
discuss with Andreas. Added Andreas to (C) notices for posix_acls.c
Jeremy.
-
Volker Lendecke
1f702dcd2c Same segfault as in add_groupmem.
Volker
-
Volker Lendecke
f30095852f This moves the group mapping API into the passdb backend.
Currently this calls back to mapping.c, but we have the framework
to get the information into LDAP and the passdb.tdb (should we? I
think so..).

This has received moderate testing with net rpc vampire and
usrmgr. I found the add_groupmem segfault in add_aliasmem as
well, but that will be another checkin.

Volker
-
Volker Lendecke
32d6bcf3ac This fixes some bugs for NT4 usrmgr.exe
Volker
-
Andrew Bartlett
7f237bde21 Nice *big* patch from metze.
The actual design change is relitivly small however:

It all goes back to jerry's 'BOOL store', added to many of the elements in a
SAM_ACCOUNT.  This ensured that smb.conf defaults did not get 'fixed' into
ldap.  This was a great win for admins, and this patch follows in the same way.

This patch extends the concept - we don't store values back into LDAP unless
they have been changed.  So if we read a value, but don't update it, or we
read a value, find it's not there and use a default, we will not update
ldap with that value.  This reduced clutter in our LDAP DB, and makes it
easier to change defaults later on.

Metze's particular problem was that when we 'write back' an unchanged value,
we would clear any muliple values in that feild.  Now he can still have his
mulitivalued 'uid' feild, without Samba changing it for *every* other
operation.

This also applies to many other attributes, and helps to eliminate a nasty
race condition.  (Time between get and set)

This patch is big, and needs more testing, but metze has tested usrmgr, and
I've fixed some pdbedit bugs, and tested domain joins, so it isn't compleatly
flawed ;-).

The same system will be introduced into the SAM code shortly, but this fixes
bugs that people were coming across in production uses of Samba 3.0/HEAD, hence
it's inclusion here.

Andrew Bartlett
-
Volker Lendecke
74e4a3479f Third part of my fix for usrmgr. Assuming automagic mapping
only in parts of srv_samr_nt is not good.

This is soo broken. :-)

Volker
-
Simo Sorce
a123e05877 try to put every security descriptors related definitions in the same file.
also try to uniform names to a clean scheme.

first part.
-
Volker Lendecke
2613d3a48a Second part of my fix -- incorrect merge. -
Volker Lendecke
cb05dcab2d We have to hand out info on Builtin here as well. They are stored in
group mapping not as local, but as WKN_GRP.

Volker
-
Andrew Bartlett
e87948c777 Patch from "Kai Krueger" <kai@kruegernetz.de> to get some more of our access
control bits right on the SAMR pipe.

Andrew Bartlett
-
Andrew Bartlett
ab878b6cc4 Patch from "Stefan (metze) Metzmacher" <metze@metzemix.de> to do a *much*
better job of working with usrmgr.   Previously we were blanking out entires,
and all sort of mischif.

The new patch (which I've now had a chance to test/modify) also takes care not
to expand % values (ie we go \\%L\%U -> \\server\user, we don't want to store
\\server\user back) and to correctly notice 'not set' compared to 'null string'
etc.

Andrew Bartlett
-
Volker Lendecke
b959419ed3 Ok, getting a bit more ambitious. Stop me, if this is wrong. ;-)
When creating a group you have to take care of the fact that the
underlying unix might not like the group name. This change gets around
that problem by giving the add group script the chance to invent a
group name. It then must only return the newly created numerical gid.

Volker
-
Volker Lendecke
9d63315240 trivial comment fix -
Andrew Bartlett
65047aee7f Only cache the user list on the SAMR handle for a particular
acb_mask/all_machines flag combination.  The avoids a bug where we were listing
users in the 'trusting domains' dialog in usrmgr.

We might also need to invalidate the cache for some other SAMR actions.

Andrew Bartlett
-
Andrew Bartlett
004090edff Add a fix for 'query_disp_info level 2', which should return all machines in
the DC's SAM.  We were only returning workstations, not PDCs or BDCs.

Win2k's 'Computer Manager' tool uses this to list all computers in the domain
(as opposed to using NetBIOS).

Andrew Bartlett
-
Volker Lendecke
70cf2f1e2f Removed some misleading comment.
Volker
-
Jelmer Vernooij
0ea4bcb6b7 Move samr_make_sam_obj_sd to lib/util_seaccess.c. samtest now compiles and
links successfully!
-
Herb Lewis
7573fd1746 add proto for forward reference -
Jelmer Vernooij
4b7de5ee23 Put in intermediate version of new SAM system. It's not stable yet, code
might be ugly, etc - please don't blame me for anything but instead try to fix
the code :-). Compiling of the new sam system can be enabled with the
configure option --with-sam

Removing passdb/passgrp.c as it's unused
fix typo in utils/testparm.c
-
Tim Potter
8ebc295f4a Return access granted in create_user2. -
Andrew Bartlett
bc9e9e3e2e Return the error if get_group_domain_entries() fails. -
Tim Potter
482d873c26 Rename unknown_0 field in create_user2 reply in the actual struct. -
Jim McDonough
2663446349 Add SAMR 0x3e, which is samr_connect4. Seems to be the same as our
existing connect (which I've been told is really connect2), with one
extra dword.  We've only seen 0x00000002 there...
-
Andrew Bartlett
888d595fab Mimir has been busy with patches again, and sent in the following
patches:

Andrew Bartlett

From his e-mail:

Below I attach the following patches as a result of my work
on trusted domains support:
 1) srv_samr_nt.c.diff
    This fixes a bug which caused to return null string as
    the first entry of enumerated accounts list (no matter what
    entry, it was always null string and rid) and possibly
    spoiled further names, depeding on their length.
    I found that while testing my 'net rpc trustdom list'
    against nt servers and samba server.
 2) libsmb.diff
    Now, fallback to anonymous connection works correctly.
 3) smbpasswd.c.diff
    Just a little fix which actually allows one to create
    a trusting domain account using smbpasswd
 4) typos.diff
    As the name suggests, it's just a few typos fix :)
-
Andrew Bartlett
88b68f7972 More use of intermediate variables to avoid issues with pointer size and casts.
Andrew Bartlett
-
Andrew Bartlett
30d0998c8c More fixes towards warnings on the IRIX compiler
(and yes, some of these are real bugs)

In particular, the samr code was doing an &foo of various types, to a function
that assumed uint32.  If time_t isn't 32 bits long, that broke.

They are assignment compatible however, so use that and an intermediate
variable.

Andrew Bartlett
-
Tim Potter
180374c444 Remove C++ comments. -
Andrew Bartlett
0c4afe075a More code from "Kai Krueger" <kai@kruegernetz.de>, this time starting to make
the 'user cannot change password' button work.  Needs help from a future SAM
backend, but at least this parses the data, and returns an error.

Andrew Bartlett
-
Andrew Bartlett
43b7249370 Patch to add security descriptors to the SAMR pipe.
This is not the final solution, I think this will probably changed with the
move to the new SAM subsystem, but it allows some research and gives us
somthing to start with.

It should also help with getting proper NT_TOKEN passing set-up.

Original patch by "Kai Krueger" <kai@kruegernetz.de>, which I have modified to
pass back NTSTATUS returns in more places and to use a little more common code.

Andrew Bartlett
-
Andrew Bartlett
5a2a6f1ba3 Break up the passdb objects (to allow RPC clients to link without brining in
*.o) and implment new enum_dom_users code in the SAMR RPC subsystem.

Incresingly, we are using the pdb_get_{user,group}_sid() functions, in the
eventual hope that we might one day support muliple domains off a single
passdb.  To extract the RID, we use sid_peek_check_rid(), and supply an
'expected' domain SID.

The id21 -> SAM_ACCOUNT and id23 -> SAM_ACCOUNT code has been moved to
srv_samr_util.c, to ease linking in passdb users.

Compatiblity code that uses 'get_global_sam_sid()' for the 'expected' sid is in
pdb_compat.c

Andrew Bartlett
-
Andrew Bartlett
c98b9a9659 I'm going to try and check this against Win2k shortly, but I'm certain that
'NT_STATUS_OK' is not the right answer here.  Try NO_MORE_ENTRIES for now.

Andrew Bartlett
-
Simo Sorce
897e64d2e0 more debug classess activated -
Andrew Bartlett
29490f2147 Add const, kill of useless casts and therefore eliminate warnings.
Andrew Bartlett
-
Andrew Bartlett
04f9a8ff4c Latest patch from metze <metze@metzemix.de> to move most of samba across
to using SIDs instead of RIDs.

The new funciton sid_peek_check_rid() takes an 'expected domain sid' argument.

The idea here is to prevent mistakes where the SID is implict, but isn't
the same one that we have in the struct.

Andrew Bartlett
-
Andrew Bartlett
1d6ba40558 This (hopefully) fixes a bug reported by Kai Krueger <kai@kruegernetz.de>
involving the use of lp_winbind_gid() without checking if they have been
set.

Also revert the 'clashing user' check back to a Get_Pwnam() - I probably should
never have changed it.

Andrew Bartlett
-
Andrew Bartlett
96afea638e Globally replace 'global_sam_sid' with get_global_sam_sid(), a self
initialising function.  This patch thanks to the work of
"Stefan (metze) Metzmacher" <metze@metzemix.de>

This is partly to enable the transition to SIDs in the the passdb.

Andrew Bartlett
-
Andrew Bartlett
fe7c5efe91 Update the SAMR pipe for more use of NTSTATUS and to talloc the stored list of
users/groups for better memory accounting.

Andrew Bartlett
-
Tim Potter
40c68fa85c Restrict anonymous checks for the SAMR pipe. This is done by
returning access denied for a SAMR_CONNECT by an anonymous user which
seems to be the way 2K does it rather than blocking individual RPC
calls like NT.

Also checked is the SAMR_GET_DOM_PWINFO rpc which for some reason
doesn't require a policy handle to return information.  No idea what
it's actually used.
-
Simo Sorce
f5c6496c33 change: pdb_getsampwrid() ->pdb_getsampwsid()
passdb interface change, now the passdb modules will be asked for SID not for rid, the modules have been updated with a passthrough function that calls the old getsampwrid() functions.

srv_samr_nt.c functions that made use of the pdb_getsampwrid funcion has been updated to use the SID one.
-
Andrew Bartlett
cdcfe3671e Clean up a few unused functions, add a bit of static etc.
Importantly:

The removal of the silly 'delete user script' behaviour when secuity=domain.

I have left the name the same - as it still does the (previously documented,
but not in smb.conf(5)) sane behaviour of deleting users on request.

When we decide what to do with the 'add user' functionality, we might
rename it.

Andrew Bartlett
-