1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-24 04:23:53 +03:00
Commit Graph

438 Commits

Author SHA1 Message Date
Andrew Bartlett
8718e5e7b2 Rework the 'guest account get's RID 501' code again...
This moves it right into the passdb subsystem, where we can do this in
just one (or 2) places.  Due to the fact that this code can be in a tight loop,
I've had to make 'guest account' a 'const' paramater, where % macros cannot be
used.  In any case, if the 'guest account' varies, we are in for some nasty
cases in the other code, so it's useful anyway.

Andrew Bartlett
-
Tim Potter
dad31483b3 Merge of netbios namecache code from APPLIANCE_HEAD.
Tridge suggested a generic caching mechanism for Samba to avoid the
proliferation of little cache files hanging around limpet like in the
locks directory.  Someone should probably implement this at some
stage.
-
Jim McDonough
e6ceb34823 Allow ADS PDC to exist -
Simo Sorce
7532e82896 fix log level, set a default, and also copy the value set in smb.conf into parm_struct.ptr
this one also fixes log level not shown in swat
fix swat help system
-
Andrew Bartlett
f77335b6f8 Only allow 'security=ads' when we HAVE_ADS.
Andrew Bartlett
-
Andrew Tridgell
12e7953bf2 added 'disable netbios = yes/no' option, default is no
When this option is disabled we should not do *any* netbios
operations. You should also not start nmbd at all. I have put initial
checks in at the major points we do netbios operations in smbd but
there are bound to be more needed. Right now I've disabled all netbios
name queries, all WINS lookups and node status queries in smbd and
winbindd.

I've been testing this option and the most noticable thing is how much
more responsive things are! wthout those damn netbios timeouts things
certainly are much slicker.
-
Andrew Tridgell
5dee0a7b5e added support for smbd listening on port 445 and 139. It now listens
on both by default, and you can specify a list of ports to listen on
either with "smb ports = " in smb.conf or using the -p option to smbd.

this is needed for proper netbiosless operation.
-
Simo Sorce
56283601af OK!
Finally the cascaded VFS patch is in.
Testing is very welcome, specially with layered multiple vfs modules.
A big thank to Alexander Bokovoy for his work and patience :)

Simo.
-
Andrew Bartlett
84c1a5b0f0 These pointers should be for the service we just cloned, not the new service
as it might actually not be a clone, but a 'found' service.

Previously this meant that a second session setup on the same TCP/IP connection
for a user would write '' as the home directory.  Instead, I want it to update
the share to be there current home directory (so that this can be updated
without the need to reboot the client for example).

Andrew Bartlett
-
Andrew Bartlett
be3470adee Add quotes so we can see 0 length strings. -
Simo Sorce
161dd6d963 as suggested by Alexander Oswald <oswald@is.haw-hamburg.de>
hide only unwriteable files and not dirs with this one.

may be a hide unwriteable dirs param will follow.
-
Simo Sorce
69765e4faa found nasty bug in intl/lang_tdb.c tdb structure was not tested to not be null before close
this one fixes swat not working with browsers that set more then one language.

along the way implemented language priority in web/neg_lang.c with bubble sort

also changet str_list_make to be able to use a different separator string

Simo.
-
Andrew Bartlett
03892bcfbb This patch does two things:
The first is to add sensible quotes to various default paramaters, and the
second is to ensure that we don't remove to many " characters from paramaters.

(Both from the debian patches to Samba).

Andrew Bartlett
-
Simo Sorce
e6b38a881b nice day today
add also hide unwriteable as per user request
-
Andrew Bartlett
2cbbf0ecd3 And a little more 'const'. -
Jeremy Allison
4ff64f6970 Gone back to explicit queue number passing as snum - removed encoding of
queueid in job number. This means we must have an internal tdb to store
mapping from 16 bit RAP jobid's to 32 bit RPC jobids.
Jeremy.
-
Tim Potter
db5d91fedf Use codepage 850 as a default for the dos character set.
Tridge, is this OK?
-
Jeremy Allison
b0909cfa14 *Experimental* new large-scaling printer code. Splits printing.tdb into
a separate tdb per printer, but only keeps (currently one) tdb open at
a time (although this is easily changed by changing a #define). Needs
scalability testing with large numbers of printers now....
Jeremy.
-
Andrew Bartlett
537d33735d Remove invalid comment - these are all 'unix' strings now. -
Jeremy Allison
17cae0d683 Address the string_sub problem by changing len = 0 to mean "no expand".
Went through and checked all string_subs I could to ensure they're being
used correctly.
Jeremy.
-
Andrew Tridgell
a049360d5b - completely rewrote the wins_srv.c code. It is now much simpler, and
gives us a good grounding to properly support multiple wins servers
for different interfaces (which will be coming soon ...)

- fixed our wins registration failover code to actually do failover!
We were not trying to register with a secondary wins server at all
when the primary was down. We now fallback correctly.

- fixed the multi-homed name registration packets so that they work
even in a non-connected network (ie. when one of our interfaces is not
routable from the wins server. Yes, this really happens in the real
world).
-
Jeremy Allison
082c5c084e Merged across trans2.c from SAMBA_2_2. UNIX extensions and passthrough
now supported in HEAD.
Jeremy.
-
Tim Potter
80e7f8f2f5 Fixed typo in debug. -
Andrew Bartlett
09754ec797 Simplify this code further. Just substitute %H, and let the normal code
paths handle the rest later.

Andrew Bartlett
-
Andrew Bartlett
4c0cbcaed9 Rework much of the service.c code:
The aim of this execise is to give the 'security>=user' code a straight paper
path.  Security=share will sill call authorise_login(), but otherwise we avoid
that mess.

This allow *much* more accurate error code reporting, beocuse we don't start
pretending that we can use the (nonexistant) password etc.

Also in this patch is code to create the 'homes' share at session setup time
(as we have done in the past - been broken recently) and to record this on
the user's vuser struct for later reference.  The changes here should also
allow for much better use of %H (some more changes to come here).

The service.c changes move a lot of code around, but are not as drastric
as they look...

(Also included is a fix to srv_srvsvc_nt.c where 'total_entries' not
'*total_entries' was compared).

This code is needs testing, but passes my basic tests.

I expect we have lost some functionality, but the stuff I had expected
to loose was already broken before I started.  In particular, we don't 'fall
back' to guest if the user cannot access a share (for security=user).  If you
want this kind of stuff then you really want security=share anyway.

Andrew Bartlett
-
Jeremy Allison
1f46dc9cbf Merge of csc termination fix.
Jeremy.
-
Simo Sorce
4ae260adb9 moved lp_list_* functions away from param/loadparm.c, put int lib/util_str.c
and renamed to str_list_* as it is a better name.
Elrond should be satisfied now :)
-
Andrew Bartlett
c264bf2ec9 Patch from ctrlsoft to make the pluggable passdb subsystem use an lp_list
rather than a string when configuring mulitple backends.

Also adjust some of the users of get_global_sam_sid() to cope with the fact
that it just might not exist (uninitialised, can't access secrets.tdb).

More places need conversion.

Add some const and remove silly casts.

Andrew Bartlett
-
Simo Sorce
88718883e0 few fixes from Elrond(elrond@samba-tng.org) and Billy O'Connor(billy@oconnoronline.net) -
Tim Potter
2d2f6fcc55 Resurrect the 'restrict anonymous' parameter but make it an integer.
It will have the same meaning as the RestrictAnonymous registry
setting.

See Q143474 and Q246261 for more details.
-
Tim Potter
92b36482fd Patch to only set SV_TYPE_PRINTQ_SERVER in default_server_announce if a
print share is exported.  Needs some more testing.
-
Simo Sorce
be5c3b3f57 so here it is the code to introduce seriously debugggging classes.
this is a first step only passdb stuff has beein "classized".

 - so what can you do?
   set debug level to:  1 poasdb:10
   that will make all the code run at debug level 1 except the code in
   passdb/* files that will run at level 10
   TODO: fix the man page

 - also smbcontrol has this nice feature so smbcontrol smbd debug 3 passdb:5
   will set every smbd to have a default log level of 3 while passdb stuff
   will be at level 5

   and so no..

  minor cosmetic fix to pdbedit is there too
-
Andrew Bartlett
c28668068b A few things in this commit:
cleanup some of the code in net_rpc_join re const warnings and
fstrings.

Passdb:

Make the %u and %U substituions in passdb work.
This is done by declaring these paramters to be 'const' and doing
the substitution manually.  I'm told this is us going full circle,
but I can't really see a better way.

Finally these things actually seem to work properly...

Make the lanman code use the pdb's recorded values for homedir etc
rather than the values from lp_*()

Add code to set the plaintext password in the passdb, where it can
decide how to store/set it.  For use with a future 'ldap password
change' option, or somthing like that...

Add pdb_unix, so as to remove the 'not in passdb' special cases from the
local_lookup_*() code.  Quite small, as it uses the new 'struct passwd ->
SAM_ACCOUNT' code that is now in just one place.  (also used by pdb_smbpasswd)

Other:
Fix up the adding of [homes] at session setup time to actually pass
the right string, that is the unix homedir, not the UNC path.

Fix up [homes] so that for winbind users is picks the correct name.
(bad interactions with the default domain code previously)

Change the rpc_server/srv_lsa_nt.c code to match NT when for the
SATUS_NONE_MAPPED reply:  This was only being triggered on
no queries, now it is on the 'no mappings' (ie all mappings failed).
Checked against Win2k.

Policy Question:  Should SID -> unix_user.234/unix_group.364 be
considered a mapping or not?  Currently it isn't.

Andrew Bartlett
-
Andrew Bartlett
64aaec137e Make --with-ldapsam 'go away'. This is now a standard, stable, feature
and there is no real reason for it to depend on more than the abilty
to compile the code.
-
Andrew Bartlett
b04561d3fd This removes --with-ssl from Samba.
This option was badly maintained, useless and confused our users and
distirbutors.  (its SSL, therfore it must be good...)

No windows client uses this protocol without help from an SSL tunnel.

I can't see any reason why setting up a unix-side SSL wrapper would
be any more difficult than the > 10 config options this mess added
to samba in any case.

On the Samba client end, I think the LIBSMB_PROG hack should be
sufficient to start stunnel on the unix side.  We might extend this
to take %i and %p (IP and port) if there is demand.

Andrew Bartlett
-
Gerald Carter
19b9b50d90 pidfile merge from SAMBA_2_2 (including --with-fhs) and a few other minor things; compiles and shouldnt break, but needs testing -
Jeremy Allison
6d95792457 Merge in Jerry's called name fix.
Jeremy.
-
Jeremy Allison
6e95723797 libsmb/cli_netlogon.c: Fixed confusing debug messages.
param/loadparm.c: Added missing debugs that would have helped me find a misconfiguration
I lost a day on....
Jeremy.
-
Andrew Bartlett
bfd7cd4355 Patch for arbitary smb.conf paramaters (to make the life of plugin maintainers
sane) from ab.

Attached is his e-mail to the samba-technical list, as it describes it rather
well:

Andrew Bartlett


Subject:
         [PATCH] Parametrical options support for Samba 3.0
    Date:
         Fri, 12 Apr 2002 19:13:13 +0300
   From:
         Alexander Bokovoy <a.bokovoy@sam-solutions.net>
     To:
         samba-technical@samba.org
     CC:
         tridge@samba.org

Greetings!

Attached patch makes possible arbitrary options to be specified in
smb.conf and later queried from VFS modules (and other places)
without problems. Below such options are called 'parametrical options'.

Patch introduces new notation to smb.conf option's language, as discussed
today with Tridgell on @samba-technical:

        TYPE: OPTION = VALUE

Colon sign is important here, it is what distinguishes parametrical
options from ones hardcoded in param/loadparm.c.

TYPE is 'option domain', OPTION is option name itself.

In order to access values of parametrical options, lp_parm_string()
function was implemented:

char *lp_parm_string(const char *servicename, const char *type, const char
*option);

This function accepts service name, type and option name, and returns
value of option or NULL if this option is underfined. Service name can be
NULL, resulting in search in 'global' section only.

If option does not exist in specified service, 'global' section is
scanned. This allows propagation of globally specified options to all
services and later overloading of the option in some services.

Caution: 'TYPE: OPTION' combination is case sensitive.

So far, testparm is able to handle parametrical options, while SWAT
can't. Thus, everyone familiar with SWAT internals is welcomed to add
parametrical options support.
-
Andrew Bartlett
5275c94cdf Better handling of uid/gid -> RID and RID -> uid/gid code.
All uids and gids must create valid RIDs, becouse other code expects this, and
can't handle the failure case. (ACL code in particular)

Allow admins to adjust the base of the RID algorithm, so avoid clashes with
users brought in from NT (for example).

Put all the algorithm code back in one place, so that this change is global.

Better coping with NULL sid pointers - but it still breaks a lot of stuff.

BONUS: manpage entry for new paramater :-)

counter based rids for normal users in tdbsam is disabled for the timebeing,
idra and I will work out some things here soon I hope.

Andrew Bartlett
-
Andrew Tridgell
c8e2250ab1 set the default hashing scheme in head to "hash2"
it seems to be a much better scheme
-
Andrew Tridgell
be23d87a17 This split the mangling code up to allow for the possibility of multiple
mangling implementation, selectable using "mangling method = " in smb.conf

It also tidies the interface a little, although it is still nasty.
-
Jeremy Allison
16015c07ea Added Shirish's client side caching policy change.
Jeremy.
-
Jeremy Allison
f4f2a62740 Fix continual scanning of smb.conf if an include file doesn't exist. Found
by Herb.
Jeremy.
-
Jeremy Allison
74eac41c68 Added sys_adminlog() system for info the appliance admins really
need to know about. Different from the DEBUG system.
Jeremy.
-
Andrew Bartlett
8c82a3daf7 Minor fixes:
- Fix warnings in loadparm.c
- Remove the unused 'passdb modules path' paramater

- Make pdb_ldap use $ termination rather than the workstation trust account
  flag becouse some 'machine' accounts appear as normal accounts at creation
  time.  Also covers domains etc.

Andrew Bartlett
-
Jeremy Allison
ad1e858d8e Sync up vfs changes from 2.2.x.
Jeremy.
-
Jeremy Allison
8aa9860ea2 include/smb_macros.h: Don't round up an allocation if the size is zero.
"One of these locks is not like the others... One of these locks is not
quite the same" :-). When is a zero timeout lock not zero ? When it's
being processed by Windows 2000 of course.. This code change, ugly though
it is - completely fixes the foxpro/access multi-user file system database
problems that people have been having. I used a *wonderful* test program
donated by "Gerald Drouillard" <gerald@drouillard.ca> which allowed me
to completely reproduce this problem, and to finally determine the correct
fix. This also explains why Windows 2000 is *so slow* when responding to
the smbtorture lock tests. I *love* it when all these things come together
and finally make sense :-).
Jeremy.
-
Jeremy Allison
d85133e269 Implemented default ACL patch (set inherit acls = true on a per share basis).
Based on code donated by Olaf Frczyk <olaf@cbk.poznan.pl>. Further commit
will change to sending via vfs interface.
Jeremy.
-
Andrew Tridgell
54a3f37449 make default unix charset UTF8
this means that we at least support all unicode chars by default
-