1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

303 Commits

Author SHA1 Message Date
Gerald Carter
9fede0dc0d Large commit which restructures the local password storage API.
Currently the only backend which works is smbpasswd (tdb, LDAP, and NIS+)
are broken, but they were somewhat broken before. :)

The following functions implement the storage manipulation interface

/*The following definitions come from  passdb/pdb_smbpasswd.c  */

BOOL pdb_setsampwent (BOOL update);
void pdb_endsampwent (void);
SAM_ACCOUNT* pdb_getsampwent (void);
SAM_ACCOUNT* pdb_getsampwnam (char *username);
SAM_ACCOUNT* pdb_getsampwuid (uid_t uid);
SAM_ACCOUNT* pdb_getsampwrid (uint32 rid);
BOOL pdb_add_sam_account (SAM_ACCOUNT *sampass);
BOOL pdb_update_sam_account (SAM_ACCOUNT *sampass, BOOL override);
BOOL pdb_delete_sam_account (char* username);

There is also a host of pdb_set..() and pdb_get..() functions for
manipulating SAM_ACCOUNT struct members.  Note that the struct
passdb_ops {} has gone away.  Also notice that struct smb_passwd
(formally in smb.h) has been moved to passdb/pdb_smbpasswd.c
and is not accessed outisde of static internal functions in this
file.  All local password searches should make use of the the SAM_ACCOUNT
struct and the previously mentioned functions.

I'll write some documentation for this later.  The next step is to fix
the TDB passdb backend, then work on spliting the backends out into
share libraries, and finally get the LDAP backend going.

What works and may not:

	o domain logons from Win9x 	works
	o domain logons from WinNT 4	works
	o user and group enumeration
		as implemented by Tim	works
	o file and print access		works
	o changing password from
		Win9x & NT		ummm...i'll fix this tonight :)

If I broke anything else, just yell and I'll fix it.  I think it
should be fairly quite.





-- jerry
(This used to be commit 0b92d0838ebdbe24f34f17e313ecbf61a0301389)
2000-11-13 23:03:34 +00:00
Jeremy Allison
0042bf32cc Fix to the "known/unknown user" difference patch from "Ron Alexander" <rcalex@home.com>.
Jeremy.
(This used to be commit 7a698c1f23ea8740755c544f631789848a360e42)
2000-11-06 23:08:00 +00:00
Jeremy Allison
9e70ba71af Remove CGI logging code. Make username/password lookups take
the same time.
Jeremy.
(This used to be commit 9698f746858f0f2b37ec6494fca990e958d97cb7)
2000-11-01 19:43:53 +00:00
Andrew Tridgell
4aae2b3702 don't show equivalent enum options in swat
(This used to be commit 52074960971995580a03647ac5c638043eb8f5e1)
2000-09-13 07:08:09 +00:00
Tim Potter
e5e43b553e Fix for swat to return correct MIME type for text files. From "Ron
Alexander" <rcalex@home.com>
(This used to be commit 061e5e50523913a26bc86bd816c4e26a37a832c7)
2000-09-01 02:06:20 +00:00
Andrew Tridgell
2fa922611b finally got sick of the "extern int Client" code and the stupid
assumption that we have one socket everywhere

while doing so I discovered a few bugs!

1) the clientgen session retarget code if used from smbd or nmbd would
cause a crash as it called close_sockets() which closed our main
socket! fixed by removing close_sockets() completely - it is unnecessary

2) the caching in client_addr() and client_name() was bogus - it could
easily get fooled and give the wrong result. fixed.

3) the retarget could could recurse, allowing an easy denial of
service attack on nmbd. fixed.
(This used to be commit 5937ab14d222696e40a3fc6f0e6a536f2d7305d3)
2000-04-11 13:55:53 +00:00
Andrew Tridgell
cdf223083f two minor bugfixes for SCO UnixWare. The first is to catch SIGPIPE so that putmsg() inside their send() doesn't kill swat and the scond is to open /dev/null to replace stdin after we close that
(This used to be commit d35bbe56bc9e3e5896b2ebdf33ff6468a0432e1f)
2000-04-11 07:14:12 +00:00
Jeremy Allison
0f1eee5c7a client/client.c:
libsmb/clientgen.c: Fixes for Win2k smbclient browsing.
Other fixes implement smbpasswd -x user to delete users. Also allows swat
to do the same.
Jeremy.
(This used to be commit 9f6ad046761adecafba59040baa3abc9f0959e65)
2000-02-25 22:25:25 +00:00
Luke Leighton
bbe275e95b 1) added void* state argument to tdb_traverse. guess what! there were
two places i found where it was appropriate to _use_ that third argument,
in locking.c and brlock.c!  there was a static traverse_function and
i removed the static variable, typecast it to a void*, passed it to
tdb_traverse and re-cast it back to the traverse_function inside the
tdb_traverse function.  this makes the use of tdb_traverse() reentrant,
which is never going to happen, i know, i just don't like to see
statics lying about when there's no need for them.

as i had to do in samba-tng, all uses of tdb_traverse modified to take
the new void* state argument.

2) disabled rpcclient: referring people to use SAMBA_TNG rpcclient.
i don't know how the other samba team members would react if i deleted
rpcclient from cvs main.  damn, that code's so old, it's unreal.
20 rpcclient commands, instead of about 70 in SAMBA_TNG.
(This used to be commit 49d7f0afbc1c5425d53019e234d54ddf205c8e9a)
2000-02-04 04:59:31 +00:00
Andrew Tridgell
dd9e8074f7 always restart nmbd and smbd when asked, even if they appear not to be
responding. They could be stuck
(This used to be commit 8728c0bc94743935cec28caa83d93833ea3aa6a6)
2000-01-07 08:47:34 +00:00
Andrew Tridgell
574788039f added the unexpected packet database (unexpected.tdb)
this means "nmblookup -S" now always works, even with broken servers
the database stores all unexpected replies and these can be accessed
by any client.
while doing this I cleaned up a couple of functions, and put in place
a better trn_id generator. in most places the code got quite a bit
simpler due to the addition of simple helper functions.

I haven't yet put the code in to take advantage of this for pdc
replies - that will be next. Jeremys pdc finding code will then work :)
(This used to be commit 280e6359d36c9bc8dcded302f15c3a1db8e3feeb)
2000-01-03 03:17:16 +00:00
Andrew Tridgell
98b1c568af fixed active shares display
(This used to be commit b87d1442db86165d983007dd58647c88ac702abf)
2000-01-03 00:32:14 +00:00
Andrew Tridgell
9a781a8c6d - added tdb_flags option to tdb_open()
- added TDB_CLEAR_IF_FIRST flag to clear the database if this is the
  first attached process. Useful for non-persistent databases like our
  locking area (this will also make upgrades to new database layouts easier)
- use lock_path() in a couple of places
- leave connections database open while smbd running
- cleaned up some tdb code a little, using macros for constants
(This used to be commit 00e9da3ca577527db392aced62f02c69cfee8f4f)
2000-01-02 23:00:27 +00:00
Andrew Tridgell
4e1291a83f converted all our existing shared memory code to use a tdb database
instead of either sysv or mmap shared memory or lock files.

this means we can now completely remove
	locking_shm.c
	locking_slow.c
	shmem.c
	shmem_sysv.c
and lots of other things also got simpler

locking.c got a bit larger, but is much better compartmentalised now
(This used to be commit e48c2d9937eea0667b8cd3332e49c06314ef31e7)
1999-12-21 09:25:59 +00:00
Andrew Tridgell
69d24d869b first cut at using the tdb code for the connections structure, the
SWAT status page and smbstatus. It made the code _much_ simpler, I
wish we'd done a database module a long time ago!
(This used to be commit 4951755413c11d4c5b9af4699a6e622056d52433)
1999-12-21 04:54:30 +00:00
Andrew Tridgell
3db52feb1f first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
(This used to be commit 453a822a76780063dff23526c35408866d0c0154)
1999-12-13 13:27:58 +00:00
Tim Potter
731c7f2ecf Moved code that changes the pw_passwd entry (i.e shadow password and
weird unixware stuff) into _Get_Pwnam() to fix a memory allocation bug.

Note that the Get_Pwnam() function now returns a const struct passwd *
as a hint to other developers not to change entries in the struct
passwd.
(This used to be commit 36d7cb4ccc42268e8e6a7b783c945d1853624958)
1999-06-13 04:14:24 +00:00
Luke Leighton
a3c6e96a22 mods to allow inter-domain trust accounts to be added to SAM database
using smbpasswd command.
(This used to be commit 62d499f83256c6e8b3308dc4bd8e9f5df873b14b)
1999-03-09 01:21:57 +00:00
Luke Leighton
04e382fb16 rpc_samr.h parse_samr.c srv_samr.c :
samr_query_aliasmembers (cool!)

util_pwdb.c sids.c nmbd.c server.c smbpasswd.c swat.c :

	pwdb_initialise(BOOL is_server) now creates / reads DOMAIN_NAME.SID
	if is_server is True, and does LsaQueryInfoPolicy(levels 3 and 5)
	to obtain member and pdc sids.
(This used to be commit 3e1eb4f26b67e484b05e1dde94fd4e4dae982631)
1998-12-01 19:10:44 +00:00
Luke Leighton
30038de462 weekend work. user / group database API.
- split sam_passwd and smb_passwd into separate higher-order function tables

- renamed struct smb_passwd's "smb_user" to "unix_user".  added "nt_user"
plus user_rid, and added a "wrap" function in both sam_passwd and smb_passwd
password databases to fill in the blank entries that are not obtained
from whatever password database API instance is being used.

NOTE: whenever a struct smb_passwd or struct sam_passwd is used, it MUST
be initialised with pwdb_sam_init() or pwd_smb_init(), see chgpasswd.c
for the only example outside of the password database APIs i could find.

- added query_useraliases code to rpcclient.

- dealt with some nasty interdependencies involving non-smbd programs
and the password database API.  this is still not satisfactorily
resolved completelely, but it's the best i can do for now.

- #ifdef'd out some password database options so that people don't
mistakenly set them unless they recompile to _use_ those options.

lots of debugging done, it's still not finished.  the unix/NT uid/gid
and user-rid/group-rid issues are better, but not perfect.  the "BUILTIN"
domain is still missing: users cannot be added to "BUILTIN" groups yet,
as we only have an "alias" db API and a "group" db API but not "builtin-alias"
db API...
(This used to be commit 5d5d7e4de7d1514ab87b07ede629de8aa00519a1)
1998-11-29 20:03:33 +00:00
Andrew Tridgell
b90966d85b make the help links appear in a separate window, so you can read the
docs and do configuration at the same time.
(This used to be commit 386a3bfd337f4b248f6c88b9c98b9d6471cc9b25)
1998-11-27 06:36:56 +00:00
Andrew Tridgell
89058f8bc1 better layout of password options.
(This used to be commit d3fa0dd7a80a8d20e2d9db0b5ca24988059280fb)
1998-11-27 06:09:25 +00:00
Andrew Tridgell
8757254f39 changed string_sub() to replace " ; and ` in the inserted string with _
use all_string_sub() if you don't want this.
(This used to be commit a3357ab49335106674fe7a7481cd0f146d74fbe5)
1998-11-23 03:36:10 +00:00
Andrew Tridgell
42e96160d3 make SWAT obey the global "hosts allow" and "hosts deny" settings.
any attempt to run swat from a host that is disallowed will give an
error.
(This used to be commit fe4ef4bbef01aed75807c884249ca8efa5de4140)
1998-11-21 01:41:14 +00:00
Jeremy Allison
a97baa50fd smbd/password.c: Added *SMBSERVER fix is name is too long.
web/swat.c: Changed '?' to help.
Jeremy.
(This used to be commit 631913ea856926a77304692c74a1bd27faead179)
1998-11-21 00:16:28 +00:00
Herb Lewis
a44db4a328 wrong directory path for smbd and nmbd
(This used to be commit a33b4f623f196ca7e8056454b9212fe0ffa389c2)
1998-11-20 00:15:26 +00:00
Jeremy Allison
768761820e Added the same open()/fopen()/creat()/mmap() -> sys_XXX calls.
Tidied up some of the mess (no other word for it). Still doesn't
compile cleanly. There are calls with incorrect parameters that
don't seem to be doing the right thing.

This code still needs surgery :-(.

Jeremy.
(This used to be commit 18ff93a9abbf68ee8c59c0af3e57c63e4a015dac)
1998-11-17 20:50:07 +00:00
Luke Leighton
74d539f557 - group database API. oops and oh dear, the threat has been carried out:
the pre-alpha "domain group" etc parameters have disappeared.

- interactive debug detection

- re-added mem_man (andrew's memory management, detects memory corruption)

- american spellings of "initialise" replaced with english spelling of
  "initialise".

- started on "lookup_name()" and "lookup_sid()" functions.  proper ones.

- moved lots of functions around.  created some modules of commonly used
  code.  e.g the password file locking code, which is used in groupfile.c
  and aliasfile.c and smbpass.c

- moved RID_TYPE_MASK up another bit.  this is really unfortunate, but
  there is no other "fast" way to identify users from groups from aliases.
  i do not believe that this code saves us anything (the multipliers)
  and puts us at a disadvantage (reduces the useable rid space).
  the designers of NT aren't silly: if they can get away with a user-
  interface-speed LsaLookupNames / LsaLookupSids, then so can we.  i
  spoke with isaac at the cifs conference, the only time for example that
  they do a security context check is on file create.  certainly not on
  individual file reads / writes, which would drastically hit their
  performance and ours, too.

- renamed myworkgroup to global_sam_name, amongst other things, when used
  in the rpc code.  there is also a global_member_name, as we are always
  responsible for a SAM database, the scope of which is limited by the role
  of the machine (e.g if a member of a workgroup, your SAM is for _local_
  logins only, and its name is the name of your server.  you even still
  have a SID.  see LsaQueryInfoPolicy, levels 3 and 5).

- updated functionality of groupname.c to be able to cope with names
  like DOMAIN\group and SERVER\alias.  used this code to be able to
  do aliases as well as groups.  this code may actually be better
  off being used in username mapping, too.

- created a connect to serverlist function in clientgen.c and used it
  in password.c

- initialisation in server.c depends on the role of the server.  well,
  it does now.

- rpctorture.  smbtorture.  EXERCISE EXTREME CAUTION.
(This used to be commit 0d21e1e6090b933f396c764af535ca3388a562db)
1998-11-17 16:19:04 +00:00
Andrew Tridgell
57d4977f24 - new prototypes
- much as I hate doing it I've removed the "commit changes" button for
  users that don't have write access to smb.conf (Jeremy insisted)
(This used to be commit 8e8ab4df1fe77dfcae73a34f4de174afe09cd695)
1998-11-14 02:29:38 +00:00
Andrew Tridgell
f616831953 allow all user to view the config
(This used to be commit ab35d99e52225b0e9f519903ae99e575075187e7)
1998-11-14 02:14:30 +00:00
Andrew Tridgell
5be7ae453d remove code that allows installation via cgi
swat will now give an error message if run via cgi
(This used to be commit 55377e3cdd5d8428e89b40946f0535b8cf5247ae)
1998-11-14 02:10:55 +00:00
Jeremy Allison
8fc1504ff8 Makefile.in configure configure.in include/config.h.in: Changes for DGUX and UNIXWARE.
groupdb/aliasdb.c groupdb/aliasfile.c groupdb/groupfile.c: Don't use snprinf, use slprintf.
include/includes.h: Fix YP problem.
include/smb.h: Fix ZERO_STRUCTP.
lib/util_sock.c: Added strerror() in debugs.
passdb/ldap.c: Don't use snprinf, use slprintf.
rpc_client/cli_lsarpc.c rpc_client/cli_pipe.c rpc_parse/parse_sec.c rpc_server/srv_pipe.c: Don't use snprinf, use slprintf.
script/installman.sh: DGUX changes.
smbd/open.c smbd/oplock.c: Fixed gcc warnings.
web/swat.c: Changes USER to SWAT_USER.
(This used to be commit 4c2b5a00983501e5d4aad1456ba8b5ab0dfd9b4c)
1998-11-13 21:41:01 +00:00
Andrew Tridgell
e5d9a4f4e3 %\ is an interesting printf argument, but I prefer %s
(This used to be commit b93f686655e871d7bfec9c7601cf3c175008041a)
1998-11-12 23:59:59 +00:00
Herb Lewis
ea2fa33f65 Removed code that used printf/fprintf in password changin libraries.
Now passes strings instead.
(This used to be commit 48af29bcc9e8094de6ba057a52dbae3c80ea7a05)
1998-11-12 23:49:32 +00:00
Herb Lewis
d30b6ab548 .cvsignore: Removed old entries.
client/client.c:
include/client.h: Added some debug messages that the old client used to
		  generate. These are needed to make scripts such as
		  'findsmb' work - there may be other changes to keep
		  backwards output compatibility. Do we need a -old-client-compat
		  argument ?
libsmb/clientgen.c: Fixed crash bug where malloc'ed data wasn't being
		    cleared - corrupted malloc chains.
web/swat.c: John's changes to get rid of "ghost" table entries.
(This used to be commit 3c45a3503ea57d17e98eb3e57514161a5c82e45e)
1998-11-12 22:17:51 +00:00
Herb Lewis
7e71258563 changes from John Sygulla for changing remote passwords
(This used to be commit e3fc90d0b5b21d49615c951a475d85f15fa01271)
1998-11-12 18:44:16 +00:00
Andrew Tridgell
6bf01d58ca handle null usernames
(This used to be commit ee60d9a289f8d94f8e4d8405f7b41690b891bbb1)
1998-11-12 07:32:33 +00:00
Andrew Tridgell
27d96564ce show all buttons in demo mode
(This used to be commit d076daaaf8690ae0b1ff9c8782619e518f868109)
1998-11-12 07:28:29 +00:00
Andrew Tridgell
c287a82057 fixed demo mode
(This used to be commit 530a98022e5207772980fc7d286547686713927a)
1998-11-12 07:13:06 +00:00
Andrew Tridgell
29e36b7134 extracted the password change code from smbpasswd and used it in swat
instead of opening pipes and other horrible stuff.
(This used to be commit 49bf19710345a59a2d17cd449be1a132885ed821)
1998-11-12 07:06:48 +00:00
Jeremy Allison
b0a2e2e778 Added the security changes suggested by Andrew - become the
user that authenticated to swat permanently (if not root).
Jeremy.
(This used to be commit 7d55bf379177a4a448e39577ae0af603d5e958f6)
1998-11-12 03:06:00 +00:00
Jeremy Allison
85dde8c7cb Added enable user button. Fixed bug where log was always printed.
Jeremy.
(This used to be commit 43ddc857793ffe507017fc989d60403e33e2ada3)
1998-11-12 01:22:07 +00:00
Andrew Tridgell
01ceb5e2d7 changed is_root() to am_root() to prevent clash with variable names.
(This used to be commit 52f47b8d2ef5ee64e2f8dcfeb6840071e57904d1)
1998-11-11 23:47:03 +00:00
Jeremy Allison
f9584f93be J.F.'s latest printer fixes plus his gcc -picky fix for web/cgi.c
Jeremy.
(This used to be commit bd4e2972f50cafd932a5c915cdeeef7eedda07cc)
1998-11-11 23:31:37 +00:00
Jeremy Allison
f49b994aeb rpc_server/srv_netlog.c: Fixed crash bug with ACB_PWNOTREQ.
script/makeyodldocs.sh: Added code to make text docs for non-man page YODL docs.
web/cgi.c web/swat.c: SGI compiler warnings fixed.
Jeremy.
(This used to be commit 80e0f7e1071f032c5004aecb01a91d1397e6a161)
1998-11-11 23:25:51 +00:00
Herb Lewis
6559aa10d5 added password change functionality to swat
(This used to be commit 06d4026cf1521766b52766193774f1fd8dd70c81)
1998-11-11 21:37:44 +00:00
Herb Lewis
fadde42107 swat.c updated to use new yodl generated smb.conf.5.html file for help
added smb.conf.5.html to swat/help
(This used to be commit 9f250a80c66fb3e2b9039218771f0b4d5088a0ae)
1998-11-11 01:54:31 +00:00
Andrew Tridgell
46fcd85b2d report ourselves as HTTP/1.0 not HTTP/1.1
(This used to be commit b2210614e810c8e84c9a14a8e32e05f95d92479b)
1998-10-26 10:55:29 +00:00
Alexandre Oliva
a2d7f765e8 get away with dummy and .dummy files
(This used to be commit 90a8a02484a0897b053fd6531b7fec5d23098b6f)
1998-09-29 04:52:17 +00:00
Jeremy Allison
cf3a9741dc Changes to test in configure if capabilities are enabled on a system.
Changes to get Samba to compile cleanly with the IRIX compiler
with the options : -fullwarn -woff 1209,1174 (the -woff options
are to turn off warnings about unused function parameters and
controlling loop expressions being constants).
Split prototype generation as we hit a limit in IRIX nawk.
Removed "." code in smbd/filename.c (yet again :-).
Jeremy.
(This used to be commit e0567433bd72aec17bf5a54cc292701095d25f09)
1998-09-28 21:43:48 +00:00