summaryrefslogtreecommitdiffstats
path: root/source/smbd/sesssetup.c
Commit message (Collapse)AuthorAgeFilesLines
* Removed version number from file header.Tim Potter2002-01-301-2/+1
| | | | Changed "SMB/Netbios" to "SMB/CIFS" in file header.
* A nice *big* change to the fundemental way we do things.Andrew Bartlett2002-01-171-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Samba (ab)uses the returns from getpwnam() a lot - in particular it keeps them around for a long time - often past the next call... This adds a getpwnam_alloc and a getpwuid_alloc to the collection. These function as expected, returning a malloced structure that can be free()ed with passwd_free(&passwd). This patch also cuts down on the number of calls to getpwnam - mostly by taking advantage of the fact that the passdb interface is already case-insensiteve. With this patch most of the recursive cases have been removed (that I know of) and the problems are reduced further by not using the sys_ interface in the new code. This means that pointers to the cache won't be affected. (This is a tempoary HACK, I intend to kill the password cache entirly). The only change I'm a little worried about is the change to rpc_server/srv_samr_nt.c for private groups. In this case we are getting groups from the new group mapping DB. Do we still need to check for private groups? I've toned down the check to a case sensitve match with the new code, but we might be able to kill it entirly. I've also added a make_modifyable_passwd() function, that copies a passwd struct into the form that the old sys_getpw* code provided. As far as I can tell this is only actually used in the pass_check.c crazies, where I moved the final 'special case' for shadow passwords (out of _Get_Pwnam()). The matching case for getpwent() is dealt with already, in lib/util_getent.c Also included in here is a small change to register the [homes] share at vuid creation rather than just in one varient of the session setup. (This picks up the SPNEGO cases). The home directory is now stored on the vuid, and I am hoping this might provide a saner way to do %H substitions. TODO: Kill off remaining Get_Pwnam_Modify calls (they are not needed), change the remaining sys_getpwnam() callers to use getpwnam_alloc() and move Get_Pwnam to return an allocated struct. Andrew Bartlett
* Back out the crazy notion that the NTLMSSP flags actually mean anything...Andrew Bartlett2002-01-111-1/+12
| | | | | | | | Replace this with some flags that *we* define. We can do a mapping later if we actually get some more reliable info about what passwords are actually valid. Andrew Bartlett
* Better explanation message for dmalloc.Martin Pool2002-01-091-5/+5
| | | | | | | | | | Also more insertion of parenthesis to handle struct members called 'free'. You can now get useful dmalloc output, as long as it is compatible with your C library. On RH7.1 it looks like you have to rebuild dmalloc to allow free(0) by default, because something in libcrypt does that. (sigh)
* Get this code back to where it belongs...Andrew Bartlett2002-01-061-7/+7
| | | | | | | | Apparently (and I will doublecheck) its legal to do an annoymous session setup when we negoitiated SPNEGO, but we can't do an authenticated one becouse we didn't give a challange. Andrew Bartlett
* Some more SPNEGO fixes.Andrew Bartlett2002-01-061-1/+1
|
* Fix up the SPNEGO segfault.Andrew Bartlett2002-01-051-2/+2
|
* I've decided to move the auth code around a bit more...Andrew Bartlett2002-01-051-45/+56
| | | | | | | | | | | | | | | | | | | | | | | | The auth_authsupplied_info typedef is now just a plain struct - auth_context, but it has been modified to contain the function pointers to the rest of the auth subsystem's components. (Who needs non-static functions anyway?) In working all this mess out, I fixed a number of memory leaks and moved the entire auth subsystem over to talloc(). Note that the TALLOC_CTX attached to the auth_context can be rather long-lived, it is provided for things that are intended to live as long. (The global_negprot_auth_context lasts the whole life of the smbd). I've also adjusted a few things in auth_domain.c, mainly passing the domain as a paramater to a few functions instead of looking up lp_workgroup(). I'm hopign to make this entire thing a bit more trusted domains (as PDC) freindly in the near future. Other than that, I moved a bit of the code around, hence the rather messy diff. Andrew Bartlett
* debug statement fixups.Jeremy Allison2002-01-021-5/+0
| | | | | Merge SAFE_FREE fix in tdb from 2.2, and IRIX fix. Jeremy.
* - portablitity fixes for cc -64 on irixAndrew Tridgell2001-12-311-1/+1
| | | | - fixed gid* bug in rpc_server
* check for a winbindd username when doing a kerberos authAndrew Tridgell2001-12-201-0/+11
|
* don't use server_info after its been freedAndrew Tridgell2001-12-201-2/+4
|
* support "map to guest" with spnegoAndrew Tridgell2001-12-201-21/+43
|
* added trusted realm support to ADS authenticationAndrew Tridgell2001-12-191-5/+10
| | | | | | the method used for checking if a domain is a trusted domain is very crude, we should really call a backend fn of some sort. For now I'm using winbindd to do the dirty work.
* Ensure that 'use spnego' restricts, rather than just advises our clients.Andrew Bartlett2001-12-081-1/+6
| | | | | | | | | This means that if a hole is found in the spnego code, we can tell people to just set 'use spengo' in their config file while we sort it out. Other than that, preventing 'unusual' behaviour is always a good thing. Andrew Bartlett
* Ensure we fill in the %U for NTLMSSP connectionsAndrew Bartlett2001-12-051-1/+3
|
* added a REALLY gross hack into kerberos_kinit_password so thatAndrew Tridgell2001-12-051-1/+1
| | | | | | winbindd can do a kinit this will be removed once we have code that gets a tgt and puts it in a place where cyrus-sasl can see it
* Make better use of the ads_init() function to get the kerberos relam etc.Andrew Bartlett2001-11-291-7/+12
| | | | | | | | | This allows us to use automagically obtained values in future, and the value from krb5.conf now. Also fix mem leaks etc. Andrew Bartlett
* fixed some krb5 ifdefsAndrew Tridgell2001-11-281-2/+2
|
* fixed another memory leakAndrew Tridgell2001-11-271-1/+1
|
* more memory leak fixesAndrew Tridgell2001-11-271-1/+6
|
* we can safely give NO_SUCH_USER if the ticket decodes but the localAndrew Tridgell2001-11-261-1/+1
| | | | account doesn't exist
* challange -> challengeTim Potter2001-11-261-2/+2
|
* added "net join" commandAndrew Tridgell2001-11-241-38/+5
| | | | this completes the first stage of the smbd ADS support
* This is another rather major change to the samba authenticaionAndrew Bartlett2001-11-241-38/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* add a hook to save the krb5 PACAndrew Tridgell2001-11-201-0/+8
|
* Spelling fixes.Tim Potter2001-11-121-6/+6
|
* Code duplication is bad. So add an add_signiture() function and just refernceAndrew Bartlett2001-11-121-23/+17
| | | | that.
* Kill off 'restrict anonymous' becouse it is useless in its current form.Andrew Bartlett2001-11-111-47/+0
| | | | | | | To be replaced with a real restriction in consultation with jra. (Hence why I've not touched loadparm.c). Andrew Bartlett
* This change updates lp_guestaccount() to be a *global* paramater, rather thanAndrew Bartlett2001-11-091-2/+2
| | | | | | | | | | | | | | | | per-share. I beleive that almost all the things that this could have done on a per-share basis can be done with other tools, like 'force user'. Almost all the user's of this paramater used it as a global anyway... While this is one step at a time, I hope it will allow me to considerably simplfy the make_connection() code, particularly for the user-level security case. This already removes an absolute truckload of extra attempted password lookups on the guest account. Andrew Bartlett
* fix the tree so it compiles againAndrew Tridgell2001-11-091-1/+1
| | | | grumble, mumble, ...
* Change to guest logon code.Andrew Bartlett2001-11-081-58/+62
| | | | | | | | | | | | | | | | | | | | | | | | | This changes the way we process guest logons - we now treat them as normal logons, but set the 'guest' flag. In particular this is needed becouse Win2k will do an NTLMSSP login with username "", therefore missing our previous guest connection code - this is getting a pain to do as a special case all over the shop. Tridge: We don't seem to be setting a guest bit for NTLMSSP, in either the anonymous or authenticated case, can you take a look at this? Also some cleanups in the check_password() code that should make some of the debugs clearer. Various other minor cleanups: - change the session code to just take a vuser, rather than having to do a vuid lookup on vuser.vuid - Change some of the global_client_caps linking - Better debug in authorise_login(): show the vuid. Andrew Bartlett
* anonymous logins are guest logins, so mark them as such. (Otherwise they canAndrew Bartlett2001-11-031-1/+1
| | | | browse non-guest shares).
* Move the test for non-SPNEGO session setups when using SPNEGO, becouse its aAndrew Bartlett2001-11-031-5/+5
| | | | perfectly vailid behaviour for guest logins.
* Various post AuthRewrite cleanups, fixups and tidyups.Andrew Bartlett2001-11-011-3/+3
| | | | | | | | | | | | | | | | | Zero out some of the plaintext passwords for paranoia Fix up some of the other passdb backends with the change to *uid_t rather than uid_t. Make some of the code in srv_netlog_nt.c clearer, is passing an array around, so pass its lenght in is definition, not as a seperate paramater. Use sizeof() rather than magic numbers, it makes things easier to read. Cope with a PAM authenticated user who is not in /etc/passwd - currently by saying NO_SUCH_USER, but this can change in future. Andrew Bartlett
* This should fix up the compile with krb5.Andrew Bartlett2001-10-311-7/+9
| | | | This needs to use the auth interface at some stage, but for now this will do.
* This is a farily large patch (3300 lines) and reworks most of the AuthRewriteAndrew Bartlett2001-10-311-197/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Spnego on the 'server' end of security=server just does not work, so set theAndrew Bartlett2001-10-301-1/+7
| | | | | | | | | flags so we just do a 'normal' session setup. Also add some parinoia code to detect when sombody attempts to do a 'normal' session setup when spnego had been negoitiated. Andrew Bartlett
* get rid of compiler warnings (casts and delete unused variables)Herb Lewis2001-10-231-1/+1
|
* - fixed link order of krb5 libsAndrew Tridgell2001-10-221-19/+5
| | | | - accept a wide range of principal names in session setup
* Ok, I know it's a language thing and it shouldn't matter.... but a kerberosJeremy Allison2001-10-211-6/+6
| | | | | name is a "principal", not a principle. English majors will complain :-). Jeremy.
* change smbd to use HOST/hostname principle form until I work out howAndrew Tridgell2001-10-211-22/+18
| | | | | | to use the other form in netjoin smb_wct is a char, not a word
* fixed the spnego detection code in session setupAndrew Tridgell2001-10-211-2/+8
| | | | this gets share mode working again
* crude fix for anonymous session setup with extended securityAndrew Tridgell2001-10-201-1/+62
| | | | negotiated
* better krb5 error handling (thanks andrewb!)Andrew Tridgell2001-10-201-1/+6
|
* finished auth when we get a valid kerberos ticketAndrew Tridgell2001-10-201-8/+58
| | | | | smbd now works with kerberos authentication if you use a MIT KDC and smbclient. Next step is to make it work with a windows client
* the beginnings of kerberos support in smbd. It doesn't work yet, butAndrew Tridgell2001-10-181-9/+91
| | | | | it should give something for others to hack on and possibly find what I'm doing wrong.
* removed some debug codeAndrew Tridgell2001-10-171-2/+2
|
* added basic NTLMSSP support in smbd. This is still quite rough, andAndrew Tridgell2001-10-171-0/+258
| | | | | | loses things like username mapping. I wanted to get this in then discuss it a bit to see how we want to split up the existing session setup code
* split session setup code out of reply.c in preparation for addingAndrew Tridgell2001-10-151-0/+355
NTLMSSP and kerberos support in smbd