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

1158 Commits

Author SHA1 Message Date
Simo Sorce
5b4838f62a r21606: Implement escaping function for ldap RDN values
Fix escaping of DN components and filters around the code
Add some notes to commandline help messages about how to pass DNs

revert jra's "concistency" commit to nsswitch/winbindd_ads.c, as it was
incorrect.
The 2 functions use DNs in different ways.

- lookup_usergroups_member() uses the DN in a search filter,
and must use the filter escaping function to escape it
Escaping filters that include escaped DNs ("\," becomes "\5c,") is the
correct way to do it (tested against W2k3).

- lookup_usergroups_memberof() instead uses the DN ultimately as a base dn.
Both functions do NOT need any DN escaping function as DNs can't be reliably
escaped when in a string form, intead each single RDN value must be escaped
separately.

DNs coming from other ldap calls (like ads_get_dn()), do not need escaping as
they come already escaped on the wire and passed as is by the ldap libraries

DN filtering has been tested.
For example now it is possible to do something like:
'net ads add user joe#5' as now the '#' character is correctly escaped when
building the DN, previously such a call failed with Invalid DN Syntax.

Simo.
2007-10-10 12:18:16 -05:00
Gerald Carter
6a69caf690 r21507: Fix some "cannot access LDAP when no root" bugs.
The two culprits were

* pdb_get_account_policy()
* pdb_get_group_sid()
2007-10-10 12:18:09 -05:00
Volker Lendecke
a5a1c8c785 r20998: Fix debug message 2007-10-10 12:17:25 -05:00
Gerald Carter
2a7311db27 r20985: leave room for terminating NULL when printing password hashes via 'pdbedit -L -w' 2007-10-10 12:17:22 -05:00
Volker Lendecke
b48ea4d777 r20851: To read account policies from LDAP we need root.
Volker
2007-10-10 12:17:13 -05:00
Volker Lendecke
3c879745cf r20824: Send access to the trusted domain passwords through the pdb backend, so that
in the next step we can store them in LDAP to be replicated across DCs.

Thanks to Michael Adam <ma@sernet.de>

Volker
2007-10-10 12:17:10 -05:00
Volker Lendecke
d78c18a9fa r20707: Clean up pdb_interface.c a bit -- patch from Michael Adam <ma@sernet.de> 2007-10-10 12:17:04 -05:00
Volker Lendecke
f1f5d035db r20644: Make some functions static, thanks to Michael Adam <ma@sernet.de> for the hint. 2007-10-10 12:17:01 -05:00
Volker Lendecke
7e444e1612 r20614: Dummy-checkin to trigger the build 2007-10-10 12:16:58 -05:00
Andrew Bartlett
e43aa4e03d r20402: Fix spelling: samba bug #4292 debian #402392 2007-10-10 12:16:46 -05:00
Simo Sorce
7167e7b26a r20243: Make lookup_name resolve both the mapped and the real unix group name 2007-10-10 12:16:35 -05:00
Volker Lendecke
902d81becb r20212: Attempt to fix the Solaris build 2007-10-10 12:16:32 -05:00
Simo Sorce
4a81ee9608 r20169: Support for fallback to legacy mapping code was not completely tested.
Add necessary fixes.
2007-10-10 12:16:28 -05:00
Simo Sorce
50cd8bffee r20116: Start merging in the work done to create the new idmap subsystem.
Simo.
2007-10-10 12:16:25 -05:00
Jeremy Allison
0ffca7559e r20090: Fix a class of bugs found by James Peach. Ensure
we never mix malloc and talloc'ed contexts in the
add_XX_to_array() and add_XX_to_array_unique()
calls. Ensure that these calls always return
False on out of memory, True otherwise and always
check them. Ensure that the relevent parts of
the conn struct and the nt_user_tokens are
TALLOC_DESTROYED not SAFE_FREE'd.
James - this should fix your crash bug in both
branches.
Jeremy.
2007-10-10 12:16:24 -05:00
Volker Lendecke
eba404e668 r19945: Fix a segfault -- lookup_rids needs to init the names even on failure 2007-10-10 12:16:14 -05:00
Volker Lendecke
714971b34a r19943: Fix bug 4267 -- Thanks to David! 2007-10-10 12:16:12 -05:00
Gerald Carter
5b3ac400a7 r19579: BUG 4075: patch from Dmitry Butskoy <dmitry@butskoy.name>.
Allow smbd to use winbindd to lookup uids/gids outside the
idmap range if 'winbind trusted domains only = yes'
2007-10-10 12:15:42 -05:00
Gerald Carter
a6366b40b3 r19419: BUG 4109: Patch from Timur Bakeyev. Fix bug causing smbd to turn off
winbindd and fail to disable the _NO_WINBIND environment.
2007-10-10 12:15:34 -05:00
Volker Lendecke
6c4d68d849 r19083: Fix objectclass 2007-10-10 12:15:09 -05:00
Jim McDonough
21abbeaee9 r19058: Implement "user cannot change password", and complete "user must change
password at next logon" code.  The "password last set time" of zero now
means "user must change password", because that's how windows seems to
use it.  The "can change" and "must change" times are now calculated
based on the "last set" time and policies.

We use the "can change" field now to indicate that a user cannot change
a password by putting MAX_TIME_T in it (so long as "last set" time isn't
zero).  Based on this, we set the password-can-change bit in the
faked secdesc.
2007-10-10 12:15:06 -05:00
Jim McDonough
fd5761c9e5 r18722: Fix up password change times. The can change and must change times are
calculated based on the last change time, policies, and acb flags.

Next step will be to not bother storing them.  Right now I'm just trying to
get them reported correctly.
2007-10-10 12:00:52 -05:00
Günther Deschner
7db6ce295a r18703: Fix the annoying effect that happens when nscd is running:
We usually do not get the results from user/group script modifications
immediately. A lot of users do add nscd restart/refresh commands into
their scripts to workaround that while we could flush the nscd caches
directly using libnscd.

Guenther
2007-10-10 12:00:49 -05:00
Gerald Carter
4cea9bfca1 r18684: pdb_get_group_sid() has to use the Get_Pwnam_alloc() call
to ensure it finds the Unix user.
2007-10-10 12:00:47 -05:00
Jelmer Vernooij
5de76767e8 r18654: Rename "struct uuid" => "struct GUID" for consistency. 2007-10-10 11:52:19 -05:00
Volker Lendecke
d72ba9ed12 r18527: Janitor for Jeremy ;-) 2007-10-10 11:51:46 -05:00
Jeremy Allison
f787b9d156 r18483: Ensure all pdb_XXX calls are wrapped in become_root()/unbecome_root()
pairs. Should fix bug #4097.
Jeremy.
2007-10-10 11:51:44 -05:00
Volker Lendecke
fa8b2e2a58 r18313: Nobody said "no" (yet.... gd?), so commit it:
Remove the account_policy_migrated() thingy, and make cache_account_policy_set
use gencache. Account policies are now handled like groups and users are with
respect to "passdb backend".

Volker
2007-10-10 11:51:19 -05:00
Gerald Carter
3da9f80c28 r18271: Big change:
* autogenerate lsa ndr code
* rename 'enum SID_NAME_USE' to 'enum lsa_SidType'
* merge a log more security descriptor functions from
  gen_ndr/ndr_security.c in SAMBA_4_0

The most embarassing thing is the "#define strlen_m strlen"
We need a real implementation in SAMBA_3_0 which I'll work on
after this code is in.
2007-10-10 11:51:18 -05:00
Gerald Carter
fa05708789 r17971: Disable storing SIDs in the S-1-22-1 and S-1-22-2 domain to the SID<->uid/gid cache. FIxes a bug in token creation 2007-10-10 11:39:44 -05:00
Volker Lendecke
70edd716ef r17924: Get rid of warnings now that talloc is merged.
Destructors now take a pointer to the "real" destroyed object as an argument.

Volker
2007-10-10 11:38:59 -05:00
Volker Lendecke
872d1299eb r17831: Attempt to fix the build farm: 0x7fffffffffffffff needs special casing too I
think. This broke 'make test' because the newly created user was set to be
kicked off Mi, 22 Jan 1975 23:55:33 CET (unix time 159663333) with the
setuserinfo21 call.

I'm not 100% sure that 0x7ff... means max time as I do it here, I vaguely
remember it to mean "don't touch".

Does anybody know that for sure?

Jeremy, please check this.

Thanks,

Volker
2007-10-10 11:38:52 -05:00
Gerald Carter
1a5b90f3c1 r17815: Revert Volker's change in 16014. I really do not believe
the this should be necessary.  If there is still a bug,
I believe that setting thr group RID from the passdb is
masking it.  Not fixing it.  It is very likely that
the change was necessary before but is no longer
with the recent changes.  But I'm not taking the chance
of merging it to 3.0.23c. :-)
2007-10-10 11:38:51 -05:00
Gerald Carter
0a3aa8b43a r17813: Remove another instance of manually setting the group SID.
The would have been primaryly used when adding a user to
an smbpasswd file, but could have been introduce to other
backends by using pdbedit -i -e.

The symptom was

[2006/08/09 13:07:43, 0] rpc_parse/parse_samr.c:init_sam_user_info21A(6276)
  init_sam_user_info_21A: User nobody has Primary Group SID S-1-22-2-99,
  which conflicts with the domain sid S-1-5-21-1825997848-4107600307-1754506280.
  Failing operation.
2007-10-10 11:38:51 -05:00
Gerald Carter
dda0b8bce6 r17709: Fix cut-n-paste error with the name of gid_to_unix_group_sid(). 2007-10-10 11:38:46 -05:00
Gerald Carter
0939b6e20c r17673: volker's patch for re-adding Getpwnam() lookups to smbpasswd backend (I hate username level) 2007-10-10 11:38:46 -05:00
Gerald Carter
dde552336c r17669: Remove RID algorithm support from unmapped users and groups
when using smbpasswd
2007-10-10 11:38:45 -05:00
Volker Lendecke
543f77a45f r17592: Remove some unused functions pointed out by John E. Malmberg, make
do_file_lock static to pdb_smbpasswd.c, the only user of it.

Volker
2007-10-10 11:38:41 -05:00
Volker Lendecke
761cbd52f0 r17554: Cleanup 2007-10-10 11:38:38 -05:00
Volker Lendecke
4ebfc30a28 r17468: To minimize the diff later on, pre-commit some changes independently: Change
internal mapping.c functions to return NTSTATUS instead of BOOL.

Volker
2007-10-10 11:38:36 -05:00
Volker Lendecke
244b25ae49 r17465: Get rid of add_initial_entry. In the two places it was called in it seemed a
bit pointless to me.

Volker
2007-10-10 11:38:36 -05:00
Volker Lendecke
f9856f6490 r17463: A bit of cleanup work:
Remove some unused code: pdb_find_alias is not used anymore, and nobody I
think has ever used the pdb_nop operations for group mapping. smbpasswd and
tdb use the default ones and ldap has its own.

Make the functions pdb_getgr* return NTSTATUS instead of BOOL. Nobody right
now really makes use of it, but it feels wrong to throw away information so
early.

Volker
2007-10-10 11:38:36 -05:00
Volker Lendecke
873a5a1211 r17451: Change pdb_getgrsid not to take a DOM_SID but a const DOM_SID * as an
argument.

Volker
2007-10-10 11:38:34 -05:00
Jeremy Allison
b5f0b1b644 r17407: Don't do strchr_m twice when once will do.
Jeremy.
2007-10-10 11:38:32 -05:00
Volker Lendecke
255475901c r17406: We need to do a translation of winbind separator -> '\\' in
lookup_name_smbconf, otherwise

force user = domain+administrator

can not work. Also attempt to fix the 'valid users = domain+group' bug at the
same time.

Volker
2007-10-10 11:38:32 -05:00
Volker Lendecke
250b9f3531 r17404: Is this XP (extreme programming)? :-)
With lp_workgroup we end up with remote names again...

Volker
2007-10-10 11:38:32 -05:00
Gerald Carter
63325b3687 r17403: add a helpful debug msg 2007-10-10 11:38:32 -05:00
Jeremy Allison
1e1fcb5eb2 r17402: Added lookup_name_smbconf() to be called when looking
up names from smb.conf. If the name is unqualified it
causes the lookup to be done in WORKGROUP\name, then
"Unix [users|groups]"\name rather than searching the
domain. Should fix the problems with "force user"
selecting a domain user by preference.
Jeremy.
2007-10-10 11:38:31 -05:00
Gerald Carter
21d69dcb3c r17271: Fix a regression in the ldapsam uri syntax.
Allow multiple LDAP URIs to be grouped by  ""
2007-10-10 11:38:23 -05:00
Gerald Carter
dc4fec1f7d r17246: BUG 3964: lower case username prior to getpwnam() call in smbpasswd 2007-10-10 11:38:22 -05:00