1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-19 10:03:58 +03:00

220 Commits

Author SHA1 Message Date
Jeremy Allison
263a51cd62 r8564: Sometimes we're too dumb to live... Fix samr calls where we were
using USER_INFO_XX structs and functions where XX was sometimes
in hex and sometimes in decimal. Now it's all in decimal (should
be no functionality change).
Jeremy.
(This used to be commit 84651aca04cbcbf50ab2e78333cc9d9e49dd92f5)
2007-10-10 11:00:09 -05:00
Volker Lendecke
864ca4f051 r7836: Fix the bug where users show up as trusting domains.
Volker
(This used to be commit 61585fa56b4f838f416815598f4a301aa9ee12d7)
2007-10-10 10:57:58 -05:00
Gerald Carter
cfe8933754 r7581: fix bad merge
(This used to be commit 55d08311032b75724b525d8e0df506de3e988b15)
2007-10-10 10:57:14 -05:00
Gerald Carter
6109b8ad9d r7578: use global well known DOM_SID objects when possible
(This used to be commit 643dc05eb5a8e41cf9cb1768ef42f5dbc0320846)
2007-10-10 10:57:14 -05:00
Gerald Carter
450e8d5749 r7130: remove 'winbind enable local accounts' code from the 3.0 tree
(This used to be commit 318c3db4cb1c85be40b2f812f781bcf5f1da5c19)
2007-10-10 10:57:01 -05:00
Volker Lendecke
0e5aa494dd r6772: Fix a valgrind error for samr_open_alias uncovered by one of John's test.
Jerry, in query_aliasmem, set_aliasinfo and set_groupinfo (and possibly
others) need become_root()/unbecome_root() around the pdb calls. I'm not sure
I would do the access checks correctly, I would much rather leave that to
you.

Volker
(This used to be commit 88a67e96d1c54fddadbb6a33e4bc5fba884e58e6)
2007-10-10 10:56:54 -05:00
Gerald Carter
03377b2a21 r6642: BUG 2686: shouold fix the group_setinfo() failures; similar to alias_setinfo() patch from last week
(This used to be commit 611cca473ef6c50aeeda79c323f55e8e3402b1b1)
2007-10-10 10:56:49 -05:00
Gerald Carter
28824fb197 r6601: fixing query and set alias info calls (level 1 from the
MMC manage computer plugin.
(This used to be commit c43c1ec80cb52569ccabcdf95e4004386ecb29d6)
2007-10-10 10:56:46 -05:00
Gerald Carter
a7145e26c9 r6566: fix a couple of local group bugs.
* ensure that we set full access on the handle
  returned from _samr_create_dom_alias() so that
  future set_alias commands succeed

* fix bug when looking for internal domains in winbindd
  (caused winbindd_getgrgid() for local groups to fail).
(This used to be commit 4615c96ccb8906af4eb1fbe6d0cbf6bb3bcc3fcf)
2007-10-10 10:56:45 -05:00
Gerald Carter
57eb9f47d0 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.
(This used to be commit 0ac57ae94202190ddbe538f7180a0443463b48cf)
2007-10-10 10:56:41 -05:00
Volker Lendecke
d3d6126d94 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
(This used to be commit f0bb44ac58e190e19eb4e92928979b0446e611c9)
2007-10-10 10:56:38 -05:00
Volker Lendecke
110d86876e 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
(This used to be commit 5d34bd617535a26ae121a72add41dc7b8cec4580)
2007-10-10 10:56:35 -05:00
Volker Lendecke
83e11ba86c r6263: Get rid of generate_wellknown_sids, they are const static and initializable
statically.

Volker
(This used to be commit 3493d9f383567d286e69c0e60c0708ed400a04d9)
2007-10-10 10:56:33 -05:00
Herb Lewis
978ca84860 r6225: get rid of warnings from my compiler about nested externs
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
2007-10-10 10:56:30 -05:00
Volker Lendecke
e84ead0cfd 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
(This used to be commit 3a6786516957d9f67af6d53a3167c88aa272972f)
2007-10-10 10:56:20 -05:00
Jim McDonough
cf7d098b2c r5965: Apply Volker's patch for "ldapsam trusted = yes" for samr_lookup_rids. Gives us
again up to ~6x improvement on group membership lookups.
(This used to be commit e2117bcb09cbd21df3b6621c2794a006418c1d9e)
2007-10-10 10:56:13 -05:00
Gerald Carter
93e04e941e r5961: final round of compiler warning fixes based on feedback from Jason Mader
(This used to be commit 9e77da9320c900b3e437d534e31fa5ff81e9acfd)
2007-10-10 10:56:13 -05:00
Gerald Carter
9b38ced168 r5950: more compiler warning's from Jason Mader
(This used to be commit 27c6e85ad59a86ab45ae3297c7445c4ff15546c8)
2007-10-10 10:56:10 -05:00
Gerald Carter
43f4930ed3 r5943: remove unneccessary se_priv_copy()
(This used to be commit 2db04a90c4197a3950bbc322948468cb306b3557)
2007-10-10 10:56:09 -05:00
Volker Lendecke
140752fd35 r5647: Caches are good for performance, but you get a consistency problem.
Fix bug # 2401.

Volker
(This used to be commit eb4ef94f244d28fe531d0b9f724a66ed3834b687)
2007-10-10 10:55:53 -05:00
Volker Lendecke
dc0ec44483 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
(This used to be commit 03ec1bd9e54b065c0494bc57a3d78ac0ae28e234)
2007-10-10 10:55:42 -05:00
Volker Lendecke
0d63de34ba r5469: Fix error codes of samr_lookup_rids: There's also STATUS_SOME_UNMAPPED.
Thanks,

Volker
(This used to be commit 43dcf0f5cb5dc2dd37ab3cdc2905970d9cc50ba4)
2007-10-10 10:55:42 -05:00
Volker Lendecke
a90a58ff22 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
(This used to be commit e1c3ca182b299dc65da1fa39aadb69876b5e16b8)
2007-10-10 10:55:41 -05:00
Volker Lendecke
96edc93c23 r5419: Fix some unitialized variable warnings
(This used to be commit 9004b7897416d142ab9e3bee60c7bda589f94750)
2007-10-10 10:55:39 -05:00
Günther Deschner
6c84ecb556 r5349: After talking with Jerry, reverted the addition of account policies to
passdb in 3_0 (they are still in trunk).

Guenther
(This used to be commit fdf9bdbbac1d8d4f3b3e1fc7e49c1e659b9301b1)
2007-10-10 10:55:38 -05:00
Günther Deschner
5f54cc9bd3 r5264: Log with loglevel 0 when account-administration scripts fail.
Guenther
(This used to be commit 3d391ef149639750db376b05528a27422f8a3321)
2007-10-10 10:55:35 -05:00
Günther Deschner
e98f56373b 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
(This used to be commit 6cdf3b97de2c28ac92f972621b0ce04c1c80cea5)
2007-10-10 10:55:34 -05:00
Gerald Carter
8f87dcdcda r5205: more fixups for BUG 2291
(This used to be commit 62e7cc7c3b2fe5187c99e0a1491843579ab997e7)
2007-10-10 10:55:33 -05:00
Gerald Carter
a84bb6d1ec r5203: additional changes for BUG 2291 to restrict who can join a BDC and add domain trusts
(This used to be commit 5ec1faa2ad33772fb48c3863e67d2ce4be726bb2)
2007-10-10 10:55:32 -05:00
Günther Deschner
4523bd1446 r5180: Call the "add machine script" to create all kinds of trust accounts
(this restores old behaviour). Fixes #2291.

Guenther
(This used to be commit 5ca0d1b87cd20f538a13321eb11ef97d00bf5133)
2007-10-10 10:55:32 -05:00
Gerald Carter
f35a9c5af6 r5150: consolidate the samr_make.*obj_sd() functions to share code
(This used to be commit 5bd03d59263ab619390062c1d023ad1ba54dce6a)
2007-10-10 10:55:29 -05:00
Gerald Carter
962a5c9552 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.
(This used to be commit c0e7f7ff60a4110809b8f500fdc68a1bf963da36)
2007-10-10 10:55:12 -05:00
Gerald Carter
091f4bcda5 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)
(This used to be commit 04030534ffd35f8ebc997d9403fd87309403dcbf)
2007-10-10 10:55:12 -05:00
Gerald Carter
46d8ff2320 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.
(This used to be commit f9f9e6039bd9443d54445e41c3783a2be18925fb)
2007-10-10 10:55:12 -05:00
Günther Deschner
9b1e5a7118 r4972: Fix a warning and some debugging-outputs.
Guenther
(This used to be commit 1eabfa050b661168b42892c2d841c7891e59cf5f)
2007-10-10 10:55:10 -05:00
Günther Deschner
6e5accde90 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
(This used to be commit 6f34ed6c203fa11182640da97581075612d26c0e)
2007-10-10 10:55:08 -05:00
Günther Deschner
b4afdc08d5 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
(This used to be commit 75af83dfcd8ef365b4b1180453060ae5176389f5)
2007-10-10 10:55:08 -05:00
Gerald Carter
6a6c7cbf99 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
(This used to be commit 2e7a5608ac6a11f4e9e8bda69abb984fb4f86eb8)
2007-10-10 10:55:05 -05:00
Gerald Carter
b3757eadf0 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. []
(This used to be commit d25fc84bc2b14da9fcc0f3c8d7baeca83f0ea708)
2007-10-10 10:53:59 -05:00
Günther Deschner
1ed62fde09 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
(This used to be commit 6394257cc721ca739bda0e320375f04506913533)
2007-10-10 10:53:59 -05:00
Gerald Carter
46e5effea9 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.
(This used to be commit 41dc7f7573c6d637e19a01e7ed0e716ac0f1fb15)
2007-10-10 10:53:55 -05:00
Gerald Carter
c3ba8b9a53 r4736: small set of merges from rtunk to minimize the diffs
(This used to be commit 4b351f2fcc365a7b7f8c22b5139c299aa54c9458)
2007-10-10 10:53:52 -05:00
Gerald Carter
d94d87472c 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.
(This used to be commit 77c10ff9aa6414a31eece6dfec00793f190a9d6c)
2007-10-10 10:53:51 -05:00
Günther Deschner
a9928f0d95 r4646: Allow Account Lockout with Lockout Duration "forever" (until admin
unlocks) to be set and displayed in User Manager.

Guenther
(This used to be commit 8fd7e26fa12a4102def630efa421fad70f3affb1)
2007-10-10 10:53:50 -05:00
Gerald Carter
be606e8eeb 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
(This used to be commit 9ade9bf49c7125fb29658f943e9ebb6be9496180)
2007-10-10 10:53:48 -05:00
Günther Deschner
e15e7a5f1f r4343: forgot to add info-level 8 to SAMR_UNKNOWN_2E as well.
Guenther
(This used to be commit 5e6ce9a6e3d62190da5427ed7b5e2f2ac22a0c34)
2007-10-10 10:53:45 -05:00
Günther Deschner
8222f958d1 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
(This used to be commit e3bd2a22a5cebc4adf6910d3ec31bc6fada8cd35)
2007-10-10 10:53:44 -05:00
Günther Deschner
9aba116607 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
(This used to be commit f9ab15a986626581000d4b93961184c501f36b93)
2007-10-10 10:53:44 -05:00
Volker Lendecke
390685ca14 r4222: Always compile before commit...
(This used to be commit 0f26ba5226fab5b86031a0df6fba16b8e6af6e7d)
2007-10-10 10:53:38 -05:00
Volker Lendecke
4027c4088b 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
(This used to be commit b41d94d8186f66136918432cf32e9dcef5a8bd12)
2007-10-10 10:53:38 -05:00