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

284 Commits

Author SHA1 Message Date
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
Tim Potter
1bce5c0b62 Resurrected sam sequence number code.
Pass domain structure around in cache code rather than the domain name.

Some misc reformatting to make things look prettier.
(This used to be commit 295dd2a5817b5d7c40474b9e460f3515e8c8e449)
2001-10-14 08:26:45 +00:00
Tim Potter
3a5be6bae8 Converted a few winbind functions to use a talloc context that is destroyed
immediately after the call.
(This used to be commit 3e9a80d5bed724690da7321cde6b95022d60ba60)
2001-10-12 08:28:08 +00:00
Tim Potter
8632b44f6b Removed some unused code from the recent cleanup.
(This used to be commit 4f12df9fc569b73dcf037b476976cb3be47ac43f)
2001-10-12 03:56:13 +00:00
Tim Potter
1f48b3640f Got the rest of the group functions working. Did some reformatting (man
what was I thinking with those 4 character tabs?)

We now pass our winbindd test suite again!

Still to do:

 - talloc_ctx on a per winbindd request basis not per connection
 - clean up old crap we don't use any more
 - test against multiple BDCs (I know this isn't going to work - group/user
   handles have to be made against the same DC the domain and basic handles
   are.
 - implement network and dc failure recovery
(This used to be commit dc4ca0e0bd779b9157ea3b2a8f17eb455abf0f26)
2001-10-10 23:08:13 +00:00
Tim Potter
f3f2744e9c Implemented sam group handle stuff. getent group now works.
(This used to be commit 63731d4a00e7a70b48d0c25677c76ec6b2e04ce1)
2001-10-09 22:55:00 +00:00
Tim Potter
14fc7fd109 More work on winbindd connection rewrite:
- implemented some of the sam related connection manager routines
 - fill in group id and gecos fields for getpwnam/getpwuid routines
 - convert querydispinfo to cm
 - getent passwd now works

Now for the group related routines...
(This used to be commit 4f8ea877876e91d4762f22e78aeb1bce4c65f011)
2001-10-08 00:34:14 +00:00
Tim Potter
482a9ef278 This is the start of a bit of a rewrite of winbindd's connection handling.
I've wrapped up all the decisions about managing, making and closing
connections into a connection manager in nsswitch/winbindd_cm.c.

It's rather incomplete at the moment - only querying basic user info works
at the moment (i.e finger -m DOMAIN/user) and everything else is broken.

Jeremy, please take a look and I'll start moving across the rest of
winbindd to this new system.
(This used to be commit c369cf5af787ed9c642778d21f162716fbf0620e)
2001-10-05 00:20:06 +00:00
Simo Sorce
a42efb4971 fix some possible memleaks and not tested reallocs spotted by Andreas Moroder
(This used to be commit d30939a091b48f4d77f7618c75668ae151a5592e)
2001-10-03 21:10:29 +00:00
Tim Potter
dc1fc3ee8e Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header.
(This used to be commit 2d0922b0eabfdc0aaf1d0797482fef47ed7fde8e)
2001-10-02 04:29:50 +00:00
Simo Sorce
b50d10c2a3 move to SAFE_FREE()
(This used to be commit 03dc67788f68c9e01b5a82fdf43f837cb19f4608)
2001-09-17 04:52:45 +00:00
Tim Potter
b800a36b1c Some patches to authentication:
- the usersupplied_info now contains a smb_username (as it comes across on
   the wire) and a unix_username (after being passed through mapping
   functions)

 - when doing security={server,domain} use the smb_username, otherwise use
   the unix_username
(This used to be commit d34fd8ec0716127c7a68eeb8e77d1ae8cc07b547)
2001-09-12 06:39:50 +00:00
Andrew Tridgell
79139fe8d8 convert more code to use XFILE
(This used to be commit fe6679dffba9a92bb35933ad52172c9be0e9ef90)
2001-09-10 12:46:42 +00:00
Andrew Tridgell
162e975514 more static/dead fns
(This used to be commit f59826c0c9ba283c25faeec2cbdc7e19cca7aa04)
2001-09-10 11:45:09 +00:00
Andrew Tridgell
12752486db kill a dead fn and make a local one static
(This used to be commit 1e9815105e235ad1141b899b03d3de756d217d49)
2001-09-10 11:34:32 +00:00
Andrew Tridgell
7844aa868b more warning fixes on solaris
(This used to be commit c04c67fec85b1c81ef0b3cebacde304a1de0d854)
2001-09-05 08:11:17 +00:00
Andrew Tridgell
7deed93dd7 fixed a bunch of compilation errors on Solaris, mostly people getting NSS_STATUS and WINBINDD error codes mixed up
(This used to be commit 66698d6b841df809a8654012a8385bffacb9dc4a)
2001-09-05 07:55:54 +00:00
Andrew Tridgell
1f5203cd24 don't do pointer arithmetic on void* (some compilers can't do it)
(This used to be commit c65e8db7ae765f844f8b0adb1e5de3651561ad96)
2001-09-04 20:34:02 +00:00
Andrew Tridgell
19fea3242c the next stage in the NTSTATUS/WERROR change. smbd and nmbd now compile, but the client code still needs some work
(This used to be commit dcd6e735f709a9231860ceb9682db40ff26c9a66)
2001-09-04 07:13:01 +00:00
Gerald Carter
4f168fd114 merge from 2.2
(This used to be commit 3e8ccb420260591f362fa8a9d1221481449f8ef7)
2001-08-30 00:47:21 +00:00
Gerald Carter
e660acf648 merge from APPLIANCE_TNG
(This used to be commit 2af0a65e4c56e9361ee03286edcf26b5926b39e4)
2001-08-30 00:41:51 +00:00
Gerald Carter
dfe2d64676 merge from APPLIANCE_TNG
(This used to be commit aff66993e47dc14371c15e75de11ff2c15d226f3)
2001-08-30 00:13:55 +00:00
Andrew Tridgell
b031af348c converted another bunch of stuff to NTSTATUS
(This used to be commit 1d36250e338ae0ff9fbbf86019809205dd97d05e)
2001-08-27 19:46:22 +00:00
Herb Lewis
717533483b get rid of compiler warnings
(This used to be commit 0768991d04ea03e774ca8662c9cae5e1951b88e0)
2001-08-24 20:32:01 +00:00
Tim Potter
31b6b7aecd Make domain_client_validate return a status code instead of a boolean.
(This used to be commit b4e79ab34b7df4687966f4ca81b575dce8503775)
2001-08-24 19:09:37 +00:00
Tim Potter
9168c29a03 Added copyright for me and AB.
(This used to be commit 19cd6a1dc446830c1448f4a21a915ea8994dc268)
2001-08-23 02:55:42 +00:00
Tim Potter
b0f167cdf2 Added another authentication interface to winbindd. The Challenge Response
Authentication Protocol (CRAP) takes a tuple of (username, random
challenge, encrypted lm password, encrypted nt password) where the
passwords are encrypted with the random challenge ala ntlmssp.
(This used to be commit 11f72a78e3a16bbb17b576d80b47a9eb818ee428)
2001-08-22 02:48:16 +00:00
Jeremy Allison
ca66a07781 More Realloc fixes.
Jeremy.
(This used to be commit b4fa49fe13cb93d578b1714d5863a9f50395bf65)
2001-08-18 19:57:48 +00:00
Jeremy Allison
ec70b76395 More Realloc fixes.
Jeremy.
(This used to be commit 381c02e6389dbb41fa66a854d7293594fd4bd0a6)
2001-08-18 19:43:28 +00:00
Tim Potter
6b60c28acc Fixed up 'orrible formatting.
(This used to be commit 73addddb2e038946e38a6a15f46f61148a49ac08)
2001-08-13 02:33:24 +00:00
Simo Sorce
2e783a4707 this is a big global fix for the ptr = Realloc(ptr, size) bug.
many possible mem leaks, and segfaults fixed.

someone should port this fix to 2.2 also.
(This used to be commit fa8e55b8b465114ce209344965c1ca0333b84db9)
2001-08-12 17:30:01 +00:00
Andrew Bartlett
6ad80352dd This patch does a number of things, mostly smaller than they look :-)
In particuar, it moves the domain_client_validate stuff out of
auth_domain.c to somwhere where they (I hope) they can be shared
with winbind better.  (This may need some work)

The main purpose of this patch was however to improve some of the
internal documentation and to correctly place become_root()/unbecome_root()
calls within the code.

Finally this patch moves some more of auth.c into other files, auth_unix.c
in this case.

Andrew Bartlett
(This used to be commit ea1c547ac880def29f150de2172c95213509350e)
2001-08-12 11:19:57 +00:00
Andrew Bartlett
986372901e This is my 'Authentication Rewrite' version 1.01, mostly as submitted to
samba-technical a few weeks ago.

The idea here is to standardize the checking of user names and passwords,
thereby ensuring that all authtentications pass the same standards.  The
interface currently implemented in as

nt_status = check_password(user_info, server_info)

where user_info contains (mostly) the authentication data, and server_info
contains things like the user-id they got, and their resolved user name.

The current ugliness with the way the structures are created will be killed
the next revision, when they will be created and malloced by creator functions.

This patch also includes the first implementation of NTLMv2 in HEAD, but which
needs some more testing.  We also add a hack to allow plaintext passwords to be
compared with smbpasswd, not the system password database.

Finally, this patch probably reintroduces the PAM accounts bug we had in
2.2.0, I'll fix that once this hits the tree.  (I've just finished testing
it on a wide variety of platforms, so I want to get this patch in).
(This used to be commit b30b6202f31d339b48d51c0d38174cafd1cfcd42)
2001-08-03 13:09:23 +00:00
Tim Potter
670acd4eb6 Merge of change machine account password race fix from appliance branch.
(This used to be commit 6e698d65ecb13b0b46d15bce7e0314fa1a46a13a)
2001-07-25 06:16:27 +00:00
Andrew Tridgell
7879d999ab a better test for unix domain sockets
(This used to be commit 7b3d030e1f869a842822d9a356a027cca6f3a725)
2001-07-25 03:28:45 +00:00
Tim Potter
881d72acde In wb_samr_query_dispinfo() pass back the 32-bit status code from
cli_samr_query_dispinfo().
(This used to be commit d5f12bc53074d574a503e7183887fdcec9bb9dd4)
2001-07-23 07:21:52 +00:00
Tim Potter
cb6e6acb8d Call cli_samr_lookup_rids() in bunches of < 1000 rids to avoid crashing
NT.  Note this can be done completely anonymously.
(This used to be commit 96bd7bdd0b4f6572c678c7b1bc5ffe733e632fda)
2001-07-23 03:06:40 +00:00
Tim Potter
d3f1d7f7b6 Merged across rewritten version of winbindd_kill_connections(). This now
works much better with trusted domains whose DCs cannot be reached.

I'm pretty impressed with how much faster winbindd is in HEAD rather than
TNG.  A lot fewer unecessary name lookups are performed and it feels a lot
zippier now.
(This used to be commit 36413784aec5819c83e5e469ce4c7bb5d468e980)
2001-07-19 09:18:23 +00:00