1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-12 20:58:37 +03:00

921 Commits

Author SHA1 Message Date
Tim Potter
19b9f9fbae Removed bogus SAFE_FREE() call of talloced return data from
winbindd_lookup_usergroups()
(This used to be commit dd2048c418da7a08bc71305491953731fc427f5a)
2001-11-26 01:20:57 +00:00
Tim Potter
26ef1afa2e Fixed some indentation.
(This used to be commit 1dd462844a9b90b498ee79ca33e4048980e2af5f)
2001-11-26 00:58:43 +00:00
Andrew Bartlett
d0a2faf78d This is another rather major change to the samba authenticaion
subystem.

The particular aim is to modularized the interface - so that we
can have arbitrary password back-ends.

This code adds one such back-end, a 'winbind' module to authenticate
against the winbind_auth_crap functionality.  While fully-functional
this code is mainly useful as a demonstration, because we don't get
back the info3 as we would for direct ntdomain authentication.

This commit introduced the new 'auth methods' parameter, in the
spirit of the 'auth order' discussed on the lists.  It is renamed
because not all the methods may be consulted, even if previous
methods fail - they may not have a suitable challenge for example.

Also, we have a 'local' authentication method, for old-style
'unix if plaintext, sam if encrypted' authentication and a
'guest' module to handle guest logins in a single place.

While this current design is not ideal, I feel that it does
provide a better infrastructure than the current design, and can
be built upon.

The following parameters have changed:
 - use rhosts =

  This has been replaced by the 'rhosts' authentication method,
 and can be specified like 'auth methods = guest rhosts'

 - hosts equiv =

  This needs both this parameter and an 'auth methods' entry
  to be effective.  (auth methods = guest hostsequiv ....)

 - plaintext to smbpasswd =

  This is replaced by specifying 'sam' rather than 'local'
  in the auth methods.

The security = parameter is unchanged, and now provides defaults
for the 'auth methods' parameter.

The available auth methods are:

guest
rhosts
hostsequiv
sam (passdb direct hash access)
unix (PAM, crypt() etc)
local (the combination of the above, based on encryption)
smbserver (old security=server)
ntdomain (old security=domain)
winbind (use winbind to cache DC connections)


Assistance in testing, or the production of new and interesting
authentication modules is always appreciated.

Andrew Bartlett
(This used to be commit 8d31eae52a9757739711dbb82035a4dfe6b40c99)
2001-11-24 12:12:38 +00:00
Jeremy Allison
d05bbf0422 Fixed delete on close bug. Added core dump code to winbindd.
Jeremy.
(This used to be commit a58d0f91f9ee7354c01a9c20cfe178d5dc02142d)
2001-11-23 11:18:20 +00:00
Jeremy Allison
d2e279ecf2 Set type to NOTUSED if lookup fail.
Jeremy.
(This used to be commit 20a4167599ce211f239d0f324e7e73a1c2d8a5a6)
2001-11-23 09:04:09 +00:00
Tim Potter
3400a3a3ed Got rid of that stupid parse_domain_user() warning when compiling
winbindd.
(This used to be commit 72060a6f5af505d597f372d550d7f3fe559e5550)
2001-11-23 04:37:41 +00:00
Martin Pool
946374e8af Finish 1.45 by removing redundant sid->string conversion in
winbindd_lookup_sid_by_name.  Also if the lookup fails then clobber
the output parameters rather than leaving them looking potentially
valid.

Add doxygen.
(This used to be commit 61dba52a549039255e46393be1618d3eb54b79dd)
2001-11-23 03:54:07 +00:00
Martin Pool
a833fbebcd I think you were passing the name of the SID, rather than the DOM_SID
pointer itself.  (Whatever that is.... ;-)
(This used to be commit 1393c7c4ede1d6d624c3f5d0bfa4c18b0c6dc27f)
2001-11-23 03:33:22 +00:00
Tim Potter
79b34d1b11 Removed TimeInit() call from every client program (except for one place
in smbd/process.c where the timezone is reinitialised.  Was replaced with
check for a static is_initialised boolean.
(This used to be commit 8fc772c9e5770cd3a8857670214dcff033ebae32)
2001-11-23 00:52:29 +00:00
Tim Potter
5788899a48 Fixed check machine account function.
(This used to be commit 8f01a8b07883d18f44da665cbc8e5fba04d3bc91)
2001-11-23 00:14:04 +00:00
Jeremy Allison
1db30a338c Got positive and negative name caching working correctly with lookupname/lookupsid.
There was a bug in cli_lsa_lookup_name/lookup_sid where NT_STATUS_NONE_MAPPED was
being mapped to NT_STATUS_OK, and also the *wrong* number of entries mapped
was being returned. The correct field is mapped_count, *NOT* num_entries.
Jeremy.
(This used to be commit 9f8c644abc455510c06dbd5dbac49c6270746560)
2001-11-22 08:31:50 +00:00
Jeremy Allison
609cdbfe37 Fixed +ve caching. Still problems with -ve caching.
Jeremy.
(This used to be commit 7883a2288a6e3198e10ab4e02ed4585e7bb313f6)
2001-11-22 07:48:57 +00:00
Jeremy Allison
a81e3902bc Fixed caching of lookupname/lookupsid. Error in check of success !
Jeremy.
(This used to be commit d039d4fa507a7284e7e1cada0026c63863fe0a2d)
2001-11-22 07:32:48 +00:00
Jeremy Allison
ee58402ac4 Added debugs to track down sequence lookup problems.
Jeremy.
(This used to be commit d3f5d5a4aca0d5bc8c4db7dfa8b766b7cda808eb)
2001-11-22 07:24:07 +00:00
Jeremy Allison
f146325e7d W2K doesn't seem to respond to *#0 names in node status. Ensure name
lookup uses password server parameter when looking for PDCs.
Jeremy.
(This used to be commit 54c968913d6553c6d834b068234ab176917075eb)
2001-11-21 23:00:59 +00:00
Jeremy Allison
16ceec46d6 Added transparent +ve caching for lookupname/lookupsid. -ve caching can
be easily added (a one liner) once we know the correct error codes returned
by a W2K DC.
All other winbindd calls should go through a similar transparent caching layer
(and will soon).
Jeremy.
(This used to be commit b16bb21d371772816a4331f5011c151be0e083d5)
2001-11-21 09:59:15 +00:00
Jeremy Allison
efa52853f6 Preparing to implement +ve and -ve caching for lookupname/lookupsid calls.
Jeremy.
(This used to be commit 1f6cc536b2db0c36feee45cfd6ac1ad5ee8fb05a)
2001-11-21 08:36:43 +00:00
Tim Potter
15c6ab0f2d Merge from 2.2.
(This used to be commit ebd46aebf921c0026791ffb0afdcffaecb496e8c)
2001-11-19 05:23:59 +00:00
Martin Pool
f741f65673 Store some path names in global variables initialized to configure
default, rather than in preprocessor macros.
(This used to be commit 79ec88f0da40faebe1e587f1b3e87b5f2b184f58)
2001-11-19 02:49:53 +00:00
Jeremy Allison
8220662c13 Tidyup formatting a bit (spaces->tabs) whilst reading new code to understand
connection caching. Getting ready for back-merge to 2.2.3.
Jeremy.
(This used to be commit 5e8df83ba9924adf9df6827c06ed1a2adbe36edf)
2001-11-15 19:40:00 +00:00
Tim Potter
c32b4b6161 Caching user, group and domain sam handles was a stupid idea.
Now we just keep a record of the open pipes.
(This used to be commit 77c287e9460eed7bde7004c7e6c8cb0099c6ba6f)
2001-11-15 06:55:56 +00:00
Tim Potter
1539c2f34b Jeremy, I'm not sure what you were trying to do with the process activity
loop in winbindd but it didn't work.
(This used to be commit 3ac32af83849e93c83cd1bb48dc7d23e47ccac59)
2001-11-15 06:53:47 +00:00
Tim Potter
c5ceae9dc9 Added free_domain_info() function.
Get list of trusted domains if we haven't fetched them yet.
(This used to be commit ed16aa88a422e759d27dbfae39afc72250c80e8d)
2001-11-15 03:34:27 +00:00
Tim Potter
6121a6c9e4 Added free_domain_info() function.
(This used to be commit 1a9a36159104e1d6248254e1efd9925fc1c956d3)
2001-11-15 03:33:56 +00:00
Tim Potter
69a6bf3edd Cache positive and negative name domain controller lookups.
Cache negative connection attempt lookups.

Fixed loginc bug in connection_ok()
(This used to be commit e07bcfcccd6d4a29f188d978b2c34a7b18ff21fa)
2001-11-15 03:33:12 +00:00
Tim Potter
2fbd75210b Get list of trusted domains if we haven't fetched them yet.
(This used to be commit 187663210055ecd7b717b3894e3189ca3aaa0ed2)
2001-11-15 03:29:00 +00:00
Tim Potter
0d252203a7 Fixed display of uninitialised buffer in debug.
Get list of trusted domains if we haven't fetched them yet.
(This used to be commit a7ef2d20b1bb4bdb1b9a2769b5c654bd0be791b3)
2001-11-15 03:28:24 +00:00
Tim Potter
17ce9c5281 Bit of a cleanup of signal handling code.
Ignore the SIGUSR1 signal before we install a handler for it as glibc (?)
seems to just print out "User defined signal 1" and exit if no handler
is installed.
(This used to be commit 1212591095dfe65b5e708bee32be5d57b9f33bc8)
2001-11-15 03:23:15 +00:00
Jeremy Allison
5302dc1218 Fix detection of RedHat 7.2.
Remove unused old file.
Test 42 byte reply to SMBntcreate (W2K does this).
Jeremy.
(This used to be commit a55a63a4ca55602ad9221af17c0bc8e185536433)
2001-11-15 01:18:10 +00:00
Jeremy Allison
b30f0baf7a Make signal handling safer (handle EINTR on read/write/accept), don't
call slprintf within a signal handler.
Jeremy.
(This used to be commit a9f7974cb8e266ce87d2979fa107bf7ebbb98b70)
2001-11-14 21:49:30 +00:00
Jeremy Allison
5d97ab9df8 Got ready to implement Martin's idea, but request doesn't have a length
field.... well, now at least the code is there when it does :-).
Jeremy.
(This used to be commit 22e323ca47325482b6ae527070509ed9c6cbccee)
2001-11-14 20:02:02 +00:00
Tim Potter
b7f6113c2d Random connection robustness related fixes. Display some debugs about
the currently open connections when winbindd receives a USR1 signal.

Hmm - I've just realised this will conflict with the messaging code
but we don't use that yet.
(This used to be commit caef54e40081477609a824185949ddf6db6ba363)
2001-11-14 06:18:13 +00:00
Martin Pool
e6093a12a1 #ifdef'd out suggestion for tim on making the winbindd protocol more
robust.
(This used to be commit 8952f8763e16339e58bc65943387a00fc89dc200)
2001-11-14 05:33:55 +00:00
Jeremy Allison
413fa03cd6 Added needed debugs...
Jeremy.
(This used to be commit 804f232398b734228256e3361ec6df4ba5cf480c)
2001-11-14 04:44:36 +00:00
Jeremy Allison
c51f7bd4d0 Fix winbind client code so that winbind calls are not made if the
requested name does not have a winbind separator character. This
makes the intent explicit. Tim, contact me if this is not what
you indended.
Jeremy.
(This used to be commit 86b7cf7f85840316052ff29115bf55c04dc17486)
2001-11-13 21:28:31 +00:00
Tim Potter
93fb9f76e2 Use cli_nt_login_network() instead of domain_client_validate() to perform
pam authentication.  This allows us to link in less other crap.

Authenticating with a challenge/response doesn't seem to work though - we
always get back NT_STATUS_WRONG_PASSWORD.
(This used to be commit d85aa1ce83327dda6aa3dcd9bbab9cf6979dda1e)
2001-11-05 00:21:17 +00:00
Jeremy Allison
f8e2baf39e Added NT_USER_TOKEN into server_info to fix extra groups problem.
Got "medieval on our ass" about const warnings (as many as I could :-).
Jeremy.
(This used to be commit ee5e7ca547eff016818ba5c43b8ea0c9fa69b808)
2001-11-03 23:34:24 +00:00
Tim Potter
f7cf10b6d8 Removed unneeded extern.
(This used to be commit c80641b6f335aa706a2e384b7cfe7912be4a41b1)
2001-10-31 12:45:50 +00:00
Andrew Bartlett
60f0627afb This is a farily large patch (3300 lines) and reworks most of the AuthRewrite
code.

In particular this assists tpot in some of his work, becouse it provides the
connection between the authenticaion and the vuid generation.

Major Changes:
	- Fully malloc'ed structures.
	  - Massive rework of the code so that all structures are made and destroyed
	    using malloc and free, rather than hanging around on the stack.
	- SAM_ACCOUNT unix uids and gids are now pointers to the same, to allow them
	   to be declared 'invalid' without the chance that people might get ROOT by
	   default.

	- kill off some of the "DOMAIN\user" lookups.  These can be readded at a more
	  appropriate place (probably domain_client_validate.c) in the future. They
	  don't belong in session setups.

	- Massive introduction of DATA_BLOB structures, particularly for passwords.

	- Use NTLMSSP flags to tell the backend what its getting, rather than magic
	  lenghths.

	- Fix winbind back up again, but tpot is redoing this soon anyway.

	- Abstract much of the work in srv_netlog_nt back into auth helper functions.

This is a LARGE change, and any assistance is testing it is appriciated.

Domain logons are still broken (as far as I can tell) but other functionality
seems
intact.

Needs testing with a wide variety of MS clients.

Andrew Bartlett
(This used to be commit f70fb819b2f57bd57232b51808345e2319d52f6c)
2001-10-31 10:46:25 +00:00
Tim Potter
6f0b8a38ec Added some extra fields to the auth_serversupplied_info structure.
To obtain the full group membership of a user (i.e nested groups on a
win2k native mode server) it is necessary to merge this list of groups
with the groups returned by winbindd when creating an nt access token.

This breaks winbindd linking while AB and I sync up our changes to the
authentication subsystem.
(This used to be commit 4eeb7bcd783d7cfb3ac232f1faa035773007401d)
2001-10-31 06:20:58 +00:00
Volker Lendecke
e5cee57941 Don't force winbind to use non-local DC's.
Volker
(This used to be commit fd1d0064b3a4fe834c5d8e810a12a8077f9d2a66)
2001-10-29 15:00:45 +00:00
Andrew Bartlett
d9d7f023d8 This commit is number 4 of 4.
In particular this commit focuses on:

Actually adding the 'const' to the passdb interface, and the flow-on changes.

Also kill off the 'disp_info' stuff, as its no longer used.

While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.

----

These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:

	- I want to allow the SAM_ACCOUNT structure to move from wasteful
	pstrings and fstrings to  allocated strings.  We can't do that if
	people are modifying these outputs, as they may well make
	assumptions about getting pstrings and fstrings

	- I want --with-pam_smbpass to compile with a slightly sane
	volume of warnings, currently its  pretty bad, even in 2.2
	where is compiles at all.

	- Tridge assures me that he no longer opposes 'const religion'
	based on the ability to  #define const the problem away.

	- Changed Get_Pwnam(x,y) into two variants (so that the const
	parameter can work correctly): - Get_Pwnam(const x) and
	Get_Pwnam_Modify(x).

	- Reworked smbd/chgpasswd.c to work with these mods, passing
	around a 'struct passwd' rather  than the modified username

---

This finishes this line of commits off, your tree should now compile again :-)

Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 07:35:11 +00:00
Tim Potter
7c98cf29f3 Hey where did those 4 character tabs come from?
(This used to be commit 49d47238267c3a2e0fc466178b779a692a7809ff)
2001-10-29 04:57:20 +00:00
Tim Potter
b8b04c4d5e Don't reference tallocated memory that has already been disposed of. The
cli_samr_query_userinfo function used to do this.
(This used to be commit da2c167660ec12360354f96dc672d935f58dd9c0)
2001-10-29 04:50:17 +00:00
Tim Potter
b267dc04e6 Added some connection checking code. Doesn't work yet though.
(This used to be commit 4f4dace5772780cf4eedc0ebca1c60d04171eb74)
2001-10-27 04:48:22 +00:00
Tim Potter
e68daea2bd Fix for fussy Solaris compiler.
(This used to be commit d50005d4c118ae32d1ddbdee4feec479db4682b9)
2001-10-21 07:01:01 +00:00
Tim Potter
e3e9c52b7a Fixed some memory leaks introduced by connection handling rewrite, as well
as one memory leak that has been there for ages!

Changed the way talloc is used in get{pw,gr}nam routines.
(This used to be commit d52cd1854fdff18c223d6dd1eca0e26f1f0bf01b)
2001-10-19 08:22:52 +00:00
Tim Potter
52995a5f7d Converted some more functions to create and dispose of a talloc context on a
per-call basis rather than per-connection.

Had a bit more of a reformatting fest.

Still need to run it through insure and handle downed connections.
(This used to be commit 46fe5a8fb96974e1323bc3e5d94fda74edbeb852)
2001-10-19 01:46:43 +00:00
Tim Potter
f2d595e262 Some reformatting.
(This used to be commit 5fc97e72ebf5976d66345107f3d9e6d3ae27eb94)
2001-10-14 08:31:54 +00:00
Tim Potter
0536ceee2f Pass domain structure around in cache code rather than the domain name.
(This used to be commit c6338d7eaeb31db2666603fcdd9179e61891a1c9)
2001-10-14 08:30:30 +00:00