1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00

517 Commits

Author SHA1 Message Date
Jeremy Allison
8b4bafc76f We had a race condition when changing a machine acount password as we
were no longer locking the secrets entry. I saw this on a live system.
Jeremy.
(This used to be commit 660dafcbb2d1029831212a32d995891626a0344c)
2002-09-18 00:30:00 +00:00
Jeremy Allison
8b46126a07 Never, *ever* hold a mutex lock in the message database where there may
be traversals being attempted. Yes, this was from bitter experience (and
an out of control server :-). Also allow callers to break out of a tdb_chainlock
with sigalarm if desired.
Jeremy.
(This used to be commit a7781f91d8c1177210bffc199cd2f3b7ff993eaf)
2002-09-17 23:45:21 +00:00
Andrew Tridgell
9faf941652 more const cleanups
(This used to be commit dfa85f9c48aa3c8d93775df6b6ad2dec9a1692d7)
2002-09-17 12:08:55 +00:00
Andrew Bartlett
4b27cda285 Set default ACB attributes on 'unixsam' accounts. This means that machine
accounts added first to /etc/passwd will be honered correctly.  Also, users
'upgraded' to smbpasswd will have the right flags.

Andrew Bartlett
(This used to be commit 474cc910c73e5567313bac438c7324a80e2e90d8)
2002-09-04 08:08:03 +00:00
Jelmer Vernooij
558297b703 small fixes
make lp_sam_backend() a list
(This used to be commit 06eb3138ab14ff450bbc44f5fa539867ce67a7dd)
2002-08-29 09:20:49 +00:00
Jelmer Vernooij
d03116a447 RTLD_GLOBAL is not necessary
(This used to be commit 3146b243e0b143e1038c97d9f919aba494cc46f7)
2002-08-29 07:40:26 +00:00
Jelmer Vernooij
2b2b0f7119 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
(This used to be commit 4b7de5ee236c043e6169f137992baf09a95c6f2c)
2002-08-28 04:54:43 +00:00
Andrew Bartlett
00b7fa8951 More hacks for 'guest account' to get it to show up with the right rid...
Andrew Bartlett
(This used to be commit 2795d92268d23063faf5a661279a91f7703d8aac)
2002-08-21 22:13:45 +00:00
Volker Lendecke
37b46432d4 Replaced reference to global_myworkgroup by calls to lp_workgroup().
pdbedit failed to initialize global_myworkgroup, wo we could end up
having a SID for SECRETS/SID/  in secrets.tdb.

Volker
(This used to be commit 8c96ab4bc05e55e119c1b44779fe14d3ab6c5f35)
2002-08-21 20:50:42 +00:00
Jelmer Vernooij
72f1a676d8 Add changes suggested by abartlet:
- don't use lp_passwd_file() to retrieve NIS domain name, but use location
  instead
- some cleanups
(This used to be commit 16f4568f35c753ec0ab0a0dda2b264668f5ac5ab)
2002-08-21 18:58:04 +00:00
Andrew Bartlett
e45720be14 Use the 'init' flag to determine if the UID is set, rather than testing the
uid for -1.

Andrew Bartlett
(This used to be commit 2fc12864ae78ea08d8cb4e3b1c7e341ca4a854e6)
2002-08-21 11:18:25 +00:00
Jelmer Vernooij
2e01bef42d pdb_nisplus converted to the new passdb system API's
(This used to be commit 72e9a5cd340d6a912e274dc0d6f2a22a922d4b03)
2002-08-20 20:56:10 +00:00
Andrew Bartlett
e2cd994c90 Quick hack to get around the inadequacy of pdb_smbpasswd. This should make the
build farm happy again, and allow the 'guest account' to be added to smbpasswd.

Andrew Bartlett
(This used to be commit 5e5cd2874527dd9a213c4bfcf98a425c39f3f2e2)
2002-08-17 07:21:01 +00:00
Andrew Bartlett
a27ec4a011 Rework the 'guest account get's RID 501' code again...
This moves it right into the passdb subsystem, where we can do this in
just one (or 2) places.  Due to the fact that this code can be in a tight loop,
I've had to make 'guest account' a 'const' paramater, where % macros cannot be
used.  In any case, if the 'guest account' varies, we are in for some nasty
cases in the other code, so it's useful anyway.

Andrew Bartlett
(This used to be commit 8718e5e7b2651edad15f52a4262dc745df7ad70f)
2002-08-17 04:51:27 +00:00
Andrew Bartlett
fbaf4d07ae Make the 'guest account' always have a RID of DOMAIN_USER_RID_GUEST.
Andrew Bartlett
(This used to be commit 4725d7d04936335cbd85bd6ac5096c50fed93671)
2002-08-16 08:46:03 +00:00
Jim McDonough
3e5939ccd5 Update secrets_fetch_domain_guid to generate and store it if it doesn't exist.
Only does it for PDCs.
(This used to be commit 3543f92c39a80c8b6eb7ca3188b87f0f15896f33)
2002-08-12 13:55:31 +00:00
Andrew Bartlett
a51897cf9b Add const to a pile of const to *DOM_SID paramaters.
Andrew Bartlett
(This used to be commit fd0ebf976eb6e5fc25bc75ff471c69c3f3761e32)
2002-08-07 07:22:43 +00:00
Andrew Bartlett
f23d88ab78 Try to bind with LDAPv3 if possible.
Andrew Bartlett
(This used to be commit 0e420878f26bdd19b5defb78a5fe4c31662ec941)
2002-08-06 11:48:17 +00:00
Andrew Bartlett
b0565dac76 I must have missed this when I was adding 'const' to these earlier...
Andrew Bartlett
(This used to be commit ce6c8a647ca56dcbb60ff898d77c2df297c1fe79)
2002-08-05 03:43:26 +00:00
Andrew Bartlett
b745d8b1cd Try to make this easier to debug - display the username that failed.
Andrew Bartlett
(This used to be commit 8405bccd4e7a5315e58890ffa5d481031636f88a)
2002-08-05 03:27:04 +00:00
Andrew Bartlett
6be547fc6b Don't accidenity mess with the wrong domain's sids.
(This used to be commit 0e2207c9c1ce573098f764e85a65c17cc1f1d284)
2002-07-31 10:12:52 +00:00
Andrew Tridgell
76fb289cd8 fixed multi-line strings for portability
(This used to be commit 9f9e0cbd2c9920b730286f8bf560dc3415c29aa6)
2002-07-31 09:34:00 +00:00
Jim McDonough
89d46eeb33 Add LSA RPC 0x2E, lsa_query_info2. Only level implemented is 0x0c, which
is netbios and dns domain info.  Also add code to set/fetch the domain GUID
from secrets.tdb (although set is not yet called by anyone).
(This used to be commit 31d7168530ccce2c5e9e7f96464b47f4d9771a25)
2002-07-30 17:23:07 +00:00
Andrew Bartlett
02cb8d63bc Update a pile of Samba's SID lookup code to ensure:
- That we never call winbind recursivly
- That we never use an 'algorithmic' RID when we have a fixed uid or gid mapping
  in either the passdb or the group mapping db.

Also, remove restrictions that say 'this domain only'.  If we have a mapping
configured, allow it to be returned.  If we later decide certian mappings are
invalid, then we sould put that in the code that actually does the map.

Allow 'sid->name' transtations on the fixed 'well known' groups for NT, even
if they are not represented by Unix groups yet.

Andrew Bartlett
(This used to be commit d5bafb224337e393420c2ce9c0a787405314713c)
2002-07-30 09:26:44 +00:00
Andrew Bartlett
a467939380 These are not critical errors, they should not be a level 0.
Andrew Bartlett
(This used to be commit 082c0324cde38fadd70934a10849c7d40a34e3b1)
2002-07-30 04:03:40 +00:00
Simo Sorce
a4ec4acd61 found nasty bug in intl/lang_tdb.c tdb structure was not tested to not be null before close
this one fixes swat not working with browsers that set more then one language.

along the way implemented language priority in web/neg_lang.c with bubble sort

also changet str_list_make to be able to use a different separator string

Simo.
(This used to be commit 69765e4faa8aaae74c97afc917891fc72d80703d)
2002-07-28 18:10:39 +00:00
Andrew Bartlett
8e04b2d4bb Update the rebind code in pdb_ldap.
I've still not tested this, but I didn't test the last lot and I'm pretty
sure I stuffed it up - but at least this rebind procedure matches the
function prototype.

It should also be fine on OpenLDAP 2.1 if I'm lucky.

Andrew Bartlett
(This used to be commit 064f269508d05cc833cf7bfd5613e4fe389f32dc)
2002-07-27 06:07:53 +00:00
Gerald Carter
dbedccc75a fix parameters for ldap_set_rebind_proc() from OpenLDAP 2.1
(This used to be commit a6725d4ce95ca8807ccefe4ce033b45d0635da6d)
2002-07-26 21:49:56 +00:00
Andrew Bartlett
a7261163be (another patch from mimir)
Add some debugging info to the secrets code.

We might review what debug level that should be at, but it's fine for now.

Andrew Bartlett
(This used to be commit 2b6a318d686ac0b08a30844bf2960703b06d5c90)
2002-07-26 15:24:12 +00:00
Andrew Bartlett
a564900074 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 :)
(This used to be commit 888d595fab4f6b28318b743f47378cb7ca35d479)
2002-07-26 13:05:29 +00:00
Andrew Bartlett
ef5bd4c066 Clarify this comment.
(This used to be commit d2b4e669aeada9c3498c3a9e49360270def5ad99)
2002-07-26 07:18:15 +00:00
Andrew Bartlett
3760e52ca8 Actually check the return value of the account_policy_get() call.
Andrew Bartlett
(This used to be commit a7b0a2334cd8e7234c5bcb284e4c6de7a8e45f98)
2002-07-24 05:04:18 +00:00
Tim Potter
c0f66c1786 Name get and set dir drive functions consistently.
(This used to be commit 290a304d2c1b70d20129236e20a0ff664179023e)
2002-07-21 04:55:11 +00:00
Andrew Bartlett
ceb73e9b3e More cleanups, and add a comment/hint not to clean somthing up in future :-)
Andrew Bartlett
(This used to be commit 21b0e8f560849be77bde463cf006ea0de54211e9)
2002-07-21 04:01:04 +00:00
Andrew Bartlett
29075c97d3 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
(This used to be commit 30d0998c8c1a1d4de38ef0fbc83c2b763e05a3e6)
2002-07-20 13:02:47 +00:00
Simo Sorce
050126e684 addedd new (t)alloc_sub_* functions
they will get a const string and return a (t)alloced epanded one.
also modified passdb/* stuff to use this one.
(This used to be commit d378ac1e2efb0efc9a0f983d69cf678ca6255fd5)
2002-07-14 22:21:40 +00:00
Andrew Bartlett
a02a80d7d3 Fix up a botched prevoius commit.
The idea here is to allow invalid LM passwords in otherwise valid accounts.

This happens when we create an account without a password, for example.
Previously we would stop at the LM password, and not read things like the
account flags correctly.  Now we process the record, and just set the password
to NULL.

(Note, 'no password for access' is decided only on the basis of the Account
Control bits, not on the 'NULL' value of the password feild.).

Andrew Bartlett
(This used to be commit c590e0c970b5babf370924cef51530e5e215eaf2)
2002-07-14 04:51:57 +00:00
Andrew Bartlett
6b903424fe Make smbpasswd behave like all the other backends, where a NULL or invalid
LM password isn't anything special.  All the users check the ACB nowadays,
and this allows us to correctly return flags set via usermgr.

Andrew Bartlett
(This used to be commit 89eb765d398de7654ba6bac7c51df727830c2591)
2002-07-13 09:10:16 +00:00
Andrew Bartlett
78722434a6 If we get a SID from group mapping, no need to check it's prefix.
Just set it directly.

Andrew Bartlett
(This used to be commit 202202bc475f3b8500423b1a9ccf0adc80a4dc49)
2002-07-10 07:26:35 +00:00
Andrew Bartlett
4d37c48274 Fix debug comment.
(This used to be commit f32980c807adf8287436be0d5a223b9b1ce399b8)
2002-07-05 01:51:49 +00:00
Andrew Bartlett
8e52737efc 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
(This used to be commit 5a2a6f1ba316489d118a8bdd9551b155226de94f)
2002-07-03 07:37:54 +00:00
Andrew Bartlett
58bc831cc3 Fix the spelling in the LDAP attributes
(This used to be commit dab26f8891a77640ce382ce1785ca5dd22d43c22)
2002-07-03 06:55:31 +00:00
Andrew Tridgell
9930b0b065 used findstatic.pl to make some variables static and remove some dead
code
(This used to be commit 91ad9041e9507d36eb3f40c23c5d4df61f139ef0)
2002-07-01 09:12:41 +00:00
Andrew Bartlett
de8fe0a2eb Another bug fix from metze.
(This used to be commit 5c754cef19c9580e2cb1e23152a1097d11ca8c60)
2002-06-26 03:54:54 +00:00
Andrew Bartlett
ea7cdc4de0 Add module versioning to the passdb module system
All passdb modules need to include a 'magic' macro that creates simple
'return my version number' function.

(from metze and jelmer)

Also fix up the dir_drive autosubsitute code to correctly use lp_logon_drive().

(from metze)

Andrew Bartlett
(This used to be commit 4a57c445dd4354034fc41b132a484afe6ab66e16)
2002-06-22 12:19:35 +00:00
Gerald Carter
7b60e23040 compile warngin fixes merged from 2.2
(This used to be commit 29874f4b8fecdc7cbd84d656dafce54cca49e0b1)
2002-06-17 15:33:13 +00:00
Andrew Bartlett
ac08646c37 Rework much of the service.c code:
The aim of this execise is to give the 'security>=user' code a straight paper
path.  Security=share will sill call authorise_login(), but otherwise we avoid
that mess.

This allow *much* more accurate error code reporting, beocuse we don't start
pretending that we can use the (nonexistant) password etc.

Also in this patch is code to create the 'homes' share at session setup time
(as we have done in the past - been broken recently) and to record this on
the user's vuser struct for later reference.  The changes here should also
allow for much better use of %H (some more changes to come here).

The service.c changes move a lot of code around, but are not as drastric
as they look...

(Also included is a fix to srv_srvsvc_nt.c where 'total_entries' not
'*total_entries' was compared).

This code is needs testing, but passes my basic tests.

I expect we have lost some functionality, but the stuff I had expected
to loose was already broken before I started.  In particular, we don't 'fall
back' to guest if the user cannot access a share (for security=user).  If you
want this kind of stuff then you really want security=share anyway.

Andrew Bartlett
(This used to be commit 4c0cbcaed95231f8cf11edb43f6adbec9a0d0b5c)
2002-06-15 12:38:13 +00:00
Simo Sorce
e69fba0984 moved lp_list_* functions away from param/loadparm.c, put int lib/util_str.c
and renamed to str_list_* as it is a better name.
Elrond should be satisfied now :)
(This used to be commit 4ae260adb9505384fcccfb4c9929cb60a45f2e84)
2002-06-14 16:02:59 +00:00
Andrew Bartlett
58bec5e2fd Allow non unix accounts to be added to an ldap directory without NUA accounts
already.

Andrew Bartlett
(This used to be commit a5d5b4cf2555b9bbded31b556d4fc74c00c6c490)
2002-06-14 14:12:27 +00:00
Andrew Bartlett
89f5301e3d Patch from ctrlsoft to use the pdb_sethexpwd function in smbpasswd - instead
of implementing it twice inline.

This code is complex - but occasionally I get the feeling that people made
it more complext than it really needed to be...

Andrew Bartlett
(This used to be commit 273d518e52a83eca466c134531dd12825fe3cbdb)
2002-06-14 06:43:51 +00:00