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

361 Commits

Author SHA1 Message Date
Gerald Carter
0ac57ae942 r6421: use add machine script when creating a user (ACB_NORMAL)
who has a name ending in '$' (usrmgr.exe does this for
domain trusts (that's was jfm's original comment I think).

avoid an assert() call in libldap.
2007-10-10 10:56:41 -05:00
Volker Lendecke
f0bb44ac58 r6351: This is quite a large and intrusive patch, but there are not many pieces that
can be taken out of it, so I decided to commit this in one lump. It changes
the passdb enumerating functions to use ldap paged results where possible. In
particular the samr calls querydispinfo, enumdomusers and friends have
undergone significant internal changes. I have tested this extensively with
rpcclient and a bit with usrmgr.exe. More tests and the merge to trunk will
follow later.

The code is based on a first implementation by Günther Deschner, but has
evolved quite a bit since then.

Volker
2007-10-10 10:56:38 -05:00
Volker Lendecke
5d34bd6175 r6282: Before converting enum_dom_groups, better get the previous version a bit
closer to being correct. 'svn blame' shows CVSIN, but somehow I get the
feeling this is my code...

Volker
2007-10-10 10:56:35 -05:00
Volker Lendecke
3493d9f383 r6263: Get rid of generate_wellknown_sids, they are const static and initializable
statically.

Volker
2007-10-10 10:56:33 -05:00
Herb Lewis
efea76ac71 r6225: get rid of warnings from my compiler about nested externs 2007-10-10 10:56:30 -05:00
Volker Lendecke
3a67865169 r6080: Port some of the non-critical changes from HEAD to 3_0. The main one is the
change in pdb_enum_alias_memberships to match samr.idl a bit closer.

Volker
2007-10-10 10:56:20 -05:00
Jim McDonough
e2117bcb09 r5965: Apply Volker's patch for "ldapsam trusted = yes" for samr_lookup_rids. Gives us
again up to ~6x improvement on group membership lookups.
2007-10-10 10:56:13 -05:00
Gerald Carter
9e77da9320 r5961: final round of compiler warning fixes based on feedback from Jason Mader 2007-10-10 10:56:13 -05:00
Gerald Carter
27c6e85ad5 r5950: more compiler warning's from Jason Mader 2007-10-10 10:56:10 -05:00
Gerald Carter
2db04a90c4 r5943: remove unneccessary se_priv_copy() 2007-10-10 10:56:09 -05:00
Volker Lendecke
eb4ef94f24 r5647: Caches are good for performance, but you get a consistency problem.
Fix bug # 2401.

Volker
2007-10-10 10:55:53 -05:00
Volker Lendecke
03ec1bd9e5 r5471: In cli_samr_lookup_rids, flags is not a flags but an array size. W2k3 rejects
everything but 1000 here, so there's no point in exposing that to the caller.

Thanks,

Volker
2007-10-10 10:55:42 -05:00
Volker Lendecke
43dcf0f5cb r5469: Fix error codes of samr_lookup_rids: There's also STATUS_SOME_UNMAPPED.
Thanks,

Volker
2007-10-10 10:55:42 -05:00
Volker Lendecke
e1c3ca182b r5467: Optimize _samr_query_groupmem with LDAP backend for large domains.
Could someone else please look at this patch, verifying that I did not break
the ldapsam:trusted = False fallback to the old behaviour? It works fine for
me, but you never know. You're certainly free to review the new code as well :-)

Thanks,

Volker
2007-10-10 10:55:41 -05:00
Volker Lendecke
9004b78974 r5419: Fix some unitialized variable warnings 2007-10-10 10:55:39 -05:00
Günther Deschner
fdf9bdbbac r5349: After talking with Jerry, reverted the addition of account policies to
passdb in 3_0 (they are still in trunk).

Guenther
2007-10-10 10:55:38 -05:00
Günther Deschner
3d391ef149 r5264: Log with loglevel 0 when account-administration scripts fail.
Guenther
2007-10-10 10:55:35 -05:00
Günther Deschner
6cdf3b97de r5262: Fix server_role in the samr_query_dom_info calls. When we are a BDC we
should not say we are a PDC.

Guenther
2007-10-10 10:55:34 -05:00
Gerald Carter
62e7cc7c3b r5205: more fixups for BUG 2291 2007-10-10 10:55:33 -05:00
Gerald Carter
5ec1faa2ad r5203: additional changes for BUG 2291 to restrict who can join a BDC and add domain trusts 2007-10-10 10:55:32 -05:00
Günther Deschner
5ca0d1b87c r5180: Call the "add machine script" to create all kinds of trust accounts
(this restores old behaviour). Fixes #2291.

Guenther
2007-10-10 10:55:32 -05:00
Gerald Carter
5bd03d5926 r5150: consolidate the samr_make.*obj_sd() functions to share code 2007-10-10 10:55:29 -05:00
Gerald Carter
c0e7f7ff60 r5056: * correct STANDARD_RIGHTS_WRITE_ACCESS bitmask define
* make sure to apply the rights_mask and not just the saved
  bits from the mask in access_check_samr_object()
* allow root to grant/revoke privileges (in addition to Domain
  Admins) as suggested by Volker.

Tested machine joins from XP, 2K, and NT4 with and without
pre-existing machine trust accounts.  Also tested basic file
operations using cmd.exe and explorer.exe after changing the
STANDARD_RIGHTS_WRITE_ACCESS bitmask.
2007-10-10 10:55:12 -05:00
Gerald Carter
04030534ff r5028: * check acb_info mask in _samr_create_user instead of the last character
of the user name
* fix some access_mask checks in _samr_set_userinfo2 (getting join from
  XP without being a member of domain admins working)
2007-10-10 10:55:12 -05:00
Gerald Carter
f9f9e6039b r5015: (based on abartlet's original patch to restrict password changes)
* added SE_PRIV checks to access_check_samr_object() in order
  to deal with the run-time security descriptor and their
  interaction with user rights

* Reordered original patch in _samr_set_userinfo[2] to still
  allow root/administrative password changes for users and machines.
2007-10-10 10:55:12 -05:00
Günther Deschner
1eabfa050b r4972: Fix a warning and some debugging-outputs.
Guenther
2007-10-10 10:55:10 -05:00
Günther Deschner
6f34ed6c20 r4931: Add get_user_info_7 in SAMR. This just gives out the username. (In
preparation of adding the ability of renaming users via setuserinfo
level 7).

Guenther
2007-10-10 10:55:08 -05:00
Günther Deschner
75af83dfcd r4925: Migrate Account Policies to passdb (esp. replicating ldapsam).
Does automated migration from account_policy.tdb v1 and v2 and offers a
pdbedit-Migration interface. Jerry, please feel free to revert that if
you have other plans.

Guenther
2007-10-10 10:55:08 -05:00
Gerald Carter
2e7a5608ac r4871: BUG 603: patch by Daniel Beschorner <db@unit-netz.de>. Correct access mask check for _samr_lookup_domain() to work with Windows RAS server 2007-10-10 10:55:05 -05:00
Gerald Carter
d25fc84bc2 r4849: * finish SeAddUsers support in srv_samr_nt.c
* define some const SE_PRIV structure for use when
  you need a SE_PRIV* to a privilege
* fix an annoying compiler warngin in smbfilter.c
* translate SIDs to names in 'net rpc rights list accounts'
* fix a seg fault in cli_lsa_enum_account_rights caused by
  me forgetting the precedence of * vs. []
2007-10-10 10:53:59 -05:00
Günther Deschner
6394257cc7 r4847: Hand over a acb_mask to pdb_setsampwent in load_sampwd_entries().
This allows the ldap-backend to search much more effeciently. Machines
will be searched in the ldap_machine_suffix and users in the
ldap_users_suffix. (Note that we already use the ldap_group_suffix in
ldapsam_setsamgrent for quite some time).

Using the specific ldap-bases becomes notably important in large
domains: On my testmachine "net rpc trustdom list" has to search through
40k accounts just to list 3 interdomain-trust-accounts, similiar effects
show up the non-user query_dispinfo-calls, etc.

Also renamed all_machines to only_machines in load_sampwd_entries()
since that reflects better what is really meant.

Guenther
2007-10-10 10:53:59 -05:00
Gerald Carter
41dc7f7573 r4805: Last planned change to the privileges infrastructure:
* rewrote the tdb layout of privilege records in account_pol.tdb
  (allow for 128 bits instead of 32 bit flags)
* migrated to using SE_PRIV structure instead of the PRIVILEGE_SET
  structure.  The latter is now used for parsing routines mainly.

Still need to incorporate some client support into 'net' so
for setting privileges.  And make use of the SeAddUserPrivilege
right.
2007-10-10 10:53:55 -05:00
Gerald Carter
4b351f2fcc r4736: small set of merges from rtunk to minimize the diffs 2007-10-10 10:53:52 -05:00
Gerald Carter
77c10ff9aa r4724: Add support for Windows privileges in Samba 3.0
(based on Simo's code in trunk).  Rewritten with the
following changes:

* privilege set is based on a 32-bit mask instead of strings
  (plans are to extend this to a 64 or 128-bit mask before
   the next 3.0.11preX release).
* Remove the privilege code from the passdb API
  (replication to come later)
* Only support the minimum amount of privileges that make
  sense.
* Rewrite the domain join checks to use the SeMachineAccountPrivilege
  instead of the 'is a member of "Domain Admins"?' check that started
  all this.

Still todo:

* Utilize the SePrintOperatorPrivilege in addition to the 'printer admin'
  parameter
* Utilize the SeAddUserPrivilege for adding users and groups
* Fix some of the hard coded _lsa_*() calls
* Start work on enough of SAM replication to get privileges from one
  Samba DC to another.
* Come up with some management tool for manipultaing privileges
  instead of user manager since it is buggy when run on a 2k client
  (haven't tried xp).  Works ok on NT4.
2007-10-10 10:53:51 -05:00
Günther Deschner
8fd7e26fa1 r4646: Allow Account Lockout with Lockout Duration "forever" (until admin
unlocks) to be set and displayed in User Manager.

Guenther
2007-10-10 10:53:50 -05:00
Gerald Carter
9ade9bf49c r4579: small changes to allow the members og the Domain Admins group on the Samba DC to join clients to the domain -- needs more testing and security review but does work with initial testing 2007-10-10 10:53:48 -05:00
Günther Deschner
5e6ce9a6e3 r4343: forgot to add info-level 8 to SAMR_UNKNOWN_2E as well.
Guenther
2007-10-10 10:53:45 -05:00
Günther Deschner
e3bd2a22a5 r4336: Apply some other samba4 SAMR idl that is just too obvious. Don't hard
set the value "forcibly disconnect remote users from server when logon
hours expire" to "no", instead take the value from our account-policy
storage.

Guenther
2007-10-10 10:53:44 -05:00
Günther Deschner
f9ab15a986 r4331: Implement SAMR query_dom_info-call info-level 8 server- and client-side,
based on samba4-idl.

This saves us an enormous amount of totally unnecessary ldap-traffic
when several hundreds of winbind-daemons query a Samba3 DC just to get
the fake SAM-sequence-number (time(NULL)) by enumerating all users, all
groups and all aliases when query-dom-info level 2 is used.

Note that we apparently never get the sequence number right (we parse a
uint32, although it's a uint64, at least in samba4 idl). For the time
being, I would propose to stay with that behaviour.

Guenther
2007-10-10 10:53:44 -05:00
Volker Lendecke
0f26ba5226 r4222: Always compile before commit... 2007-10-10 10:53:38 -05:00
Volker Lendecke
b41d94d818 r4219: Fix samba3 samr "idl"... According to samba4 idl samr_DomInfo2 contains a
comment string and not an unknown 12 byte structure...

Found after abartlet's smbtorture extended this string to

"Tortured by Samba4: Fri Nov 26 15:40:18 2004 CET"

;-))

Volker
2007-10-10 10:53:38 -05:00
Jeremy Allison
620f2e608f r4088: Get medieval on our ass about malloc.... :-). Take control of all our allocation
functions so we can funnel through some well known functions. Should help greatly with
malloc checking.
HEAD patch to follow.
Jeremy.
2007-10-10 10:53:32 -05:00
Volker Lendecke
b94838aff1 r3705: Nobody has commented, so I'll take this as an ack...
abartlet, I'd like to ask you to take a severe look at this!

We have solved the problem to find the global groups a user is in twice: Once
in auth_util.c and another time for the corresponding samr call. The attached
patch unifies these and sends them through the passdb backend (new function
pdb_enum_group_memberships). Thus it gives pdb_ldap.c the chance to further
optimize the corresponding call if the samba and posix accounts are unified by
issuing a specialized ldap query.

The parameter to activate this ldapsam behaviour is

ldapsam:trusted = yes

Volker
2007-10-10 10:53:15 -05:00
Volker Lendecke
2508d4ed1e r3566: Completely replace the queryuseraliases call. The previous implementation does
not exactly match what you would expect.

XP workstations during login actually do this, so we should better become a
bit more correct. The LDAP query issued is not really fully optimal, but it is
a lot faster and more correct than what was there before. The change in
passdb.h makes it possible that queryuseraliases is done with a single ldap
query.

Volker
2007-10-10 10:53:09 -05:00
Jeremy Allison
2815b31e01 r2481: Patch from Igor Belyi <sambauser@katehok.ac93.org>. Ensure pdb
user is deleted first before deleting UNIX user (LDAP backend
needs this ordering).
Jeremy.
2007-10-10 10:52:45 -05:00
Jeremy Allison
b910e53002 r2369: Fix from Richard Renard <rrenard@idealx.com> to fix usermgr and trust relationships.
Jeremy.
2007-10-10 10:52:41 -05:00
Simo Sorce
f836be323a r2331: check password script code and example from trunk 2007-10-10 10:52:39 -05:00
Volker Lendecke
de0eaf7be7 r2093: Fix for Bug 1416. This must have been a cut&paste error from add_gid....
Thanks to Jonas Olsson for the bug report & fix.

Volker
2007-10-10 10:52:31 -05:00
Jeremy Allison
d5fb5ba9df r805: Fix to stop smbd hanging on missing group member from "Jianliang Lu" <j.lu@tiesse.com>.
Jeremy.
2007-10-10 10:51:46 -05:00
Volker Lendecke
b4429d9743 r229: Don't list domain groups from BUILTIN.
Volker
2007-10-10 10:51:15 -05:00