1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00

365 Commits

Author SHA1 Message Date
Tim Potter
cd9334bd57 Added delheaders as a dependency for clean. -
Tim Potter
d85aa1ce83 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.
-
Jeremy Allison
ee5e7ca547 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.
-
Andrew Bartlett
f70fb819b2 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
-
Andrew Bartlett
a228e9b39f Fix up the Makefile for now (thanks herb).
I understand that Vance is reworking the build_options stuff, so maybe we can
have better way of regenerating this in future.

Andrew Bartlett
-
Andrew Bartlett
8c0cb50387 Restore the intended behaviour for .headers.stamp
We don't want a 'make headers' (aka make proto) to force a rebuild
of the entire tree.

Andrew Bartlett
-
Herb Lewis
8134908553 .headers.stamp not getting touched if file already existed.
Not sure what the original intent was with the [ -f $@ ] test but this
prevented the touch from happening. Could whoever originally added this
target check this out?
-
Jim McDonough
df34e11d84 Add popt for parsing commandline options -
Andrew Tridgell
d23772c306 fixed LDSHFLAGS when using non-standard lib locations -
Jim McDonough
53247f5880 Add build of net utility -
Andrew Tridgell
38a43d75e2 split session setup code out of reply.c in preparation for adding
NTLMSSP and kerberos support in smbd
-
Andrew Tridgell
dd3ad91724 include more libs needed for kerberos5 on some systems (eg. solaris)
removed some no longer needed i18n stuff from configure.in
-
Andrew Tridgell
076aa97bee added NTLMSSP authentication to libsmb. It seems to work well so I have enabled it by default if the server supports it. Let me know if this breaks anything. Choose kerberos with the -k flag to smbclient, otherwise it will use SPNEGO/NTLMSSP/NTLM -
Andrew Tridgell
ab7f67677a first step in converting the head branch to use lang_tdb.c instead
of gettext for internationalisation support. There is more to do
-
Andrew Tridgell
d330575856 initial kerberos/ADS/SPNEGO support in libsmb and smbclient. To
activate you need to:

- install krb5 libraries
- run configure
- build smbclient
- run kinit to get a TGT
- run smbclient with the -k option to choose kerberos auth
-
Andrew Bartlett
154d0ea4df move libsmb/domain_client_validate.o around in the makefile again, it really is
an authenticaion object that happens to also be used by winbind.  We need to
fix this up at some stage.

In the end it will probably be best if winbind does the login over its own
internally managed connections, not a new one per authenticiaon.  Then this
would no longer be an issue, as it could call cli_nt_login_network() directly.

Andrew Bartlett
-
Tim Potter
4ea67aeede Remove winbindd_glue.c dodgy hack and add winbindd_cm.c for managing
connections within winbindd.
-
Andrew Tridgell
1c221994f1 switched over to a new method of handling uppercase/lowercase mappings
for unicode strings. The new method relies on 3 files that are mmap'd
at startup to provide the mapping tables. The upcase.dat and
lowcase.dat tables should be the same on all systems. The valid.dat
table says what characters are valid in 8.3 names, and differs between
systems. I'm committing the japanese valid.dat here, in future we need
some way of automatically installing and choosing a appropriate table.

This commit also adds my mini tdb based gettext replacement in
intl/lang_tdb.c. I have not enabled this yet and have not removed the
old gettext code as the new code is still being looked at by Monyo.

Right now the code assumes that the upcase.dat, lowcase.dat and
valid.dat files are installed in the Samba lib directory. That is not
a good choice, but I'll leave them there until we work out the new
install directory structure for Samba 3.0.

simo - please look at the isvalid_w() function and think about using
it in your new mangling code. That should be the final step to
correctly passing the chargen test code from monyo.
-
Gerald Carter
d0628d0d2d Don't build make_printerdef in HEAD. This tool is not needed except
to support 2.0.x style WIn9x driver download.
-
Jeremy Allison
611bf806d5 Fixup passdb stuff to add new nisplus and ldap backends.
Jeremy.
-
Motonobu Takahashi
9ec2d5e96e now --with-i18n-swat works to install some international files
used by SWAT into $swatdir/$ln/{help,images,include}

we have still points which needs to discuss, that is how to archive
and install lots of HTML help files and Using Samba files.

-- monyo
-
Andrew Tridgell
eb668b54af added a little smbtorture test for dumping the unicode table of a
server. This is just a framework right now - I want this to eventually
replace the win32 test code from monyo

The interesting this about this test is that it shows up a really
horrible performance bug in our stat cache code. I'll see if I can fix
it.
-
Motonobu Takahashi
486b79a6fc Added SWAT i18n feature:
TO enable configure with --with-i18n-swat
  to support this gettext is integrated
  and a new directories name "po" and "intl" are created.

  now these languages are supported:

  en - English (default)
  ja - Japanese
  po - Polish
  tr - Turkish

  To add your language,
  to create ${your_language}.po by translating source/po/en.po
  into your language is needed.

  some of html and image files of various language version are not
  included yet, though message catalogue files are installed.
  you need to copy files manually under
  ${swatdir}/lang/$ln/{help,images,included,using_samba}


And also added a option to intall manual pages:
of various lang version
  To enable configure with --with-manlangs
  but manual pages themself are not included yet.
-
Andrew Tridgell
e78d0a3615 fixed the Makefile so we don't rebuild libsmbclient and build_env.h
(and thus smbd) every time
-
Andrew Bartlett
beff1d2bea Add the ability to display Samba's build options with smbd -b and as a level 4
DEBUG().  Also included are details like build date/time, location and
compiler.

This should get most of the options we set, except those that don't affect
smbd, like WITH_PAM_SMBPASSWD or WITH_WINBINDD.

This work due to Vance Lankhaar <vlankhaar@hotmail.com>

Some work needs to be done to make it only rebuild when needed (ie smbd being
rebuilt) but its in pretty good shape already.

Also fix up some printf() -> d_printf().

Andrew Bartlett
-
Andrew Bartlett
c6df98a1e3 This isn't used anymore -
Andrew Bartlett
3afad9ae01 passdb/pampass.c and passdb/pass_check.c are not passdb related at all,
so don't link them as such.
-
Andrew Bartlett
eecda11eef Kill off the dangerous passwd program default, as its both very
system-dependent and can allow (when unix password sync = yes) the
'syncronisation' of root's password by a normal user :-(

Andrew Bartlett
-
Andrew Tridgell
b8651acb9c - enable MSDFS by default, there seems no reason not to have it enabled
by default in Samba 3.x

- got rid of some unused parameters in Makefile.in

- declare DEBUGLEVEL in debug.h rather than in each file
-
Andrew Tridgell
954adb630d passdb/smbpassfile ain't needed any more - it only provided migration from an ancient file format, not relevant for Samba 3.0 -
Andrew Tridgell
1af8bf34f1 replaced stdio in many parts of samba with a XFILE. XFILE is a cut-down
replacemnt of stdio that doesn't suffer from the 8-bit filedescriptor
limit that we hit with nasty consequences on some systems

I would eventually prefer us to have a configure test to see if we need
to replace stdio, but for now this code needs to be tested widely so
I'm enabling it by default.
-
Andrew Tridgell
266d8e6766 added "display charset" option in smb.conf, along with d_printf()
which should now be used instead of DEBUG(0) or printf() for
interactive messages

I have only converted client.c to use d_printf(), and the code hasn't
had much testing yet. Eventually we want all interactive code to use
d_printf(), plus SWAT
-
Andrew Tridgell
9341e5534d - fixed proto.h build on systems using a parallel make
- changed DENY1 and DENY2 tests to only report errors
-
Tim Potter
4a01e24030 Started a cleanup of smbpasswd related stuff. I've created a new file
lib/smbpasswd.c which will contain routines related to manipulating
smbpasswd entries.

 - renamed and moved pdb_{get,set}hexpwd() functions
 - renamed and moved pdb_{decode,encode}acct_ctrl() functions
 - started hiding references to the cruftalicious
   NEW_PW_FORMAT_SPACE_PADDED_LEN constant
 - started gradual rename of references to acct_ctrl to acb_info which is
   the nomenclature used in MSDN and header files

There's still more work to be done.  Currently there are several places
where smbpasswd entries are iterated etc.  Ideally this should all happen
through the passdb system.
-
Herb Lewis
99b773217c add PROFILE_OBJ to nmbd now -
Tim Potter
9c8276dfec Added additional objects to rpcclient for sam sync/repl support.
Added bin/samsync target.
-
Tim Potter
e6c0fb7575 Fix for make proto when srcdir != cwd. -
Andrew Tridgell
83d9896c1e converted smbd to use NTSTATUS by default
major changes include:

- added NSTATUS type
- added automatic mapping between dos and nt error codes
- changed all ERROR() calls to ERROR_DOS() and many to ERROR_NT()
  these calls auto-translate to the client error code system
- got rid of the cached error code and the writebmpx code

We eventually will need to also:
- get rid of BOOL, so we don't lose error info
- replace all ERROR_DOS() calls with ERROR_NT() calls

but that is too much for one night
-
Tim Potter
84998f1fce Link in smbdes routines for new wbinfo authentication stuff. -
Andrew Bartlett
ea1c547ac8 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
-
Simo Sorce
fd54412ce9 - avoid possible mem leaks in rpcclient/cmd_*.c (talloc_destroy not performed)
- ported two rpc back from TNG (WINREG: shutdown and abort shutdown)
- some optimizations and changed some DEBUG statement in loadparm.c
- changed rpcclient a bit moved from non reentrant next_token_nr to next_token
- in cmd_reg.c not sure if getopt will work ok on all platforms only setting optind=0
-
Tim Potter
2c73ae4ac7 Link fix for smbpasswd. -
Andrew Bartlett
b30b6202f3 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).
-
Tim Potter
109840bb3a Tweaked the installdirs target to ignore errors. This allows RPMS to be
built as non-root user, assuming you have permissions set up properly
in your /usr/src/redhat directory.

Added nsswitch sub-target to all target.
-
Tim Potter
fc83346a43 Fixed up compilation of pam_winbind.so to be consistent with value of
--with-pam passed to configure.

Fixed nsswitch target to compile the sbin and lib winbind targets.

Winbind still doesn't install its lib targets (libnss_winbind.so and
pam_winbind.so) properly - the install script is a big mess.  )-:
-
Andrew Tridgell
e2ab5e09d0 build smbtree by default. It's a very useful utility. -
Tim Potter
09af934c4a Store winbindd in the sbin directory. Make the winbind pam module also as
a sbin program.

Currently the pam and nss modules are installed into @prefix@/sbin - I'm
not sure whether this is a good idea or not.  Perhaps they should be left
in the build tree and copied across as needed by hand or a packaging tool.
-
Richard Sharpe
f4d9abcac7 Make sure that a shared library build of libsmbclient causes build
breakage if there are problems. I will take this out tomorrow if it
causes too many problems.
-
Tim Potter
2484f0fc39 make nsswitch target wasn't building the winbind pam module. -
Richard Sharpe
f214f6b5d5 Fix some fscked up things that I added to the Solaris CC build of shared libs -