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

474 Commits

Author SHA1 Message Date
Andrew Bartlett
162477bb08 Some cleanups:
- Don't use pstrcpy into an allocated string - use safe_strcpy() directly
instead.

- Keep a copy of the 'server_info' attached to the vuid.  In future use this
for things like the session key, homedir and full name instead of current
copies.

- Try to avoid memory leak/segfault on Realloc failure

- clear up #endif comments

Andrew Bartlett
-
Andrew Bartlett
8f495e8634 Bitmap offsets and counts are always positive. -
Jeremy Allison
d1e8991a76 Fix for interesting resource constraint condition. When all opens are
level 2 and a request for open with no oplock is received then the
smbd should send *synchronous* break messages, not asynchronous,
otherwise it spins very rapidly, releasing the lock, sending the
'break to none' messages and then re-acquiring the lock before
any other process has a chance to get the lock and remove it's own
oplock (at least on linux).
Jeremy.
-
Jeremy Allison
6e0cfec165 Fix problem with "hide unreadable". stat file opens are baaack :-).
Jeremy.
-
Andrew Bartlett
92a777d0ea BIG patch...
This patch makes Samba compile cleanly with -Wwrite-strings.
 - That is, all string literals are marked as 'const'.  These strings are
always read only, this just marks them as such for passing to other functions.

What is most supprising is that I didn't need to change more than a few lines of code (all
in 'net', which got a small cleanup of net.h and extern variables).  The rest
is just adding a lot of 'const'.

As far as I can tell, I have not added any new warnings - apart from making all
of tdbutil.c's function const (so they warn for adding that const string to
struct).

Andrew Bartlett
-
Gerald Carter
6b18ca9511 merge of get_dc_name()-like code from APP_HEAD; better support password server = DC1 * -
Jeremy Allison
15f0bad1fc The element in fsp->print_job should be a RAP jobid, not a uint32 RPC
jobid. This was causing Win9x client "set name" calls to fail.
Still need one cleanup fix to finish.
Jeremy.
-
Jeremy Allison
4a9c995e50 Fix for 64 bit issues with oplocks and allocation size.
Jeremy.
-
Jim McDonough
759bcd881d Add smbtrans subcommands so we can stop hardcoding them -
Jeremy Allison
e39e2b4c34 Missed extern declaration.
Jeremy.
-
Jelmer Vernooij
1602d58949 Add more options to popt_common and use them. Current ones are:
-V Version information
 -n Set netbios name
 -l Set directory to store log files in
 -d Set debuglevel
 -s Load specified configuration file
 -O Set socket options
-
Jelmer Vernooij
a15434314f Add popt_common_socket_options -
Jelmer Vernooij
a8d2dd8d00 - Remove RTLD_GLOBAL
- make smb_load_module() return the return value of init_module()
-
Jelmer Vernooij
4d1206be52 Add init_module_function typedef for new module system -
Tim Potter
edbd942a8d Tidyup of file specific access mask bits.
Added directory specific access mask bits.
-
Andrew Bartlett
7f237bde21 Nice *big* patch from metze.
The actual design change is relitivly small however:

It all goes back to jerry's 'BOOL store', added to many of the elements in a
SAM_ACCOUNT.  This ensured that smb.conf defaults did not get 'fixed' into
ldap.  This was a great win for admins, and this patch follows in the same way.

This patch extends the concept - we don't store values back into LDAP unless
they have been changed.  So if we read a value, but don't update it, or we
read a value, find it's not there and use a default, we will not update
ldap with that value.  This reduced clutter in our LDAP DB, and makes it
easier to change defaults later on.

Metze's particular problem was that when we 'write back' an unchanged value,
we would clear any muliple values in that feild.  Now he can still have his
mulitivalued 'uid' feild, without Samba changing it for *every* other
operation.

This also applies to many other attributes, and helps to eliminate a nasty
race condition.  (Time between get and set)

This patch is big, and needs more testing, but metze has tested usrmgr, and
I've fixed some pdbedit bugs, and tested domain joins, so it isn't compleatly
flawed ;-).

The same system will be introduced into the SAM code shortly, but this fixes
bugs that people were coming across in production uses of Samba 3.0/HEAD, hence
it's inclusion here.

Andrew Bartlett
-
Simo Sorce
738b9237ed forgot some bits from previous rpc_secdesc.h rework patch -
Simo Sorce
a123e05877 try to put every security descriptors related definitions in the same file.
also try to uniform names to a clean scheme.

first part.
-
Jelmer Vernooij
cb0d03a393 Add more common options to popt_common - and start using
the ones for debuglevel and configuration file in pdbedit
-
Gerald Carter
f70caa25e4 merge of working dsrolegetprimdominfo() client code from APP_HEAD -
Gerald Carter
38c9e42998 merge of new client side support the Win2k LSARPC UUID in rpcbind
from APP_HEAD
-
Jeremy Allison
736a7bab48 Cope with rw errors and timeout to peer.
Jeremy.
-
Andrew Bartlett
f13e243f1a This patch from "Stefan (metze) Metzmacher" <metze@metzemix.de> cleans up
pdb_ldap and adds a 'ldap passwd sync' option.

The idea with this option is to do allow an ldap backend to do all the fancy
password hashing etc - and to tell smbd no to try and double-up.  Using 'ldap
passwd sync = only' will do this, but is not recommended unless such a backend
is in place...

Running 'ldap passwd sync = yes' just gets you the same as doing 'pam passwd
sync = yes' and having both PAM and pam_ldap correctly configured for 'magic
root' behaviour, but only using ldap connection, and one set of credentials.

This also gets us closer to allowing ldap to say 'password too short' etc,
which might assist in maintaining a consistant password policy.

Andrew Bartlett
-
John Terpstra
0250e2c52c Changed Major/Minor version info reported to Server Manager to 4.9.
Added new SWAT Flags for Advanced and Developer modes.
-
Andrew Bartlett
442eb39657 Winbind client-side cleanups.
The global winbind file descriptor can cause havoc in some situations -
particulary when it becomes 0, 1 or 2.  This patch (based on some very nice
work by Hannes Schmidt <mail@schmidt-net.via.t-online.de>) starts to recitfy
the problem by ensuring that the close-on-exec flag is set, and that we move
above 3 in the file descriptor table.

I've also decided that the PAM module can close it's pipe handle on every
request - this isn't performance-critical code.

The next step is to do the same for nss_winbind.  (But things like getent()
might get in our way there).

This also cleans up some function prototypes, puts them in just one place.

Andrew Bartlett
-
Andrew Bartlett
ed184ed190 Move the fancy NT_STATUS macros to a new file, so we can include them earlier
in includes.h

Andrew Bartlett
-
Jeremy Allison
aca3337196 Add bcast_msg_flags to connection struct. Allows sender to filter when
sending broadcast messages. Also initial cut-down of printing notify
messages (not yet finished).
Jeremy.
-
Jeremy Allison
df3e467eb7 Return correct FILE_SUPERSEDED response - IFSTEST strikes again...
Jeremy.
-
Jeremy Allison
095e2bf946 Merged initial allocation code for IFSTEST fix.
Jeremy.
-
Andrew Bartlett
c58e3d5c7d Handle wrap-around on this number by making it unsigned.
(Wrapping to zero does not create problems in this cache)

Andrew Bartlett
-
Jeremy Allison
e53a81261e IFSTEST fixes for open fid, nametoolong.
Jeremy.
-
Andrew Bartlett
d8122cee05 Based orginally by work by Kai, this patch moves our NT_TOKEN generation into
our authenticaion code - removing some of the duplication from the current
code.

This also gets us *much* closer to supporting a real SAM backend, becouse the
SAM can give us the right info then.

This also changes our service.c code, so that we do a VUID (rather than uid)
cache on the connection struct, and do full NT ACL/NT_TOKEN checks (or cached
equivilant) on every packet, for the same r or rw mode the whole share was open
for.

Andrew Bartlett
-
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.
-
Tim Potter
4c664a0de8 Added extern for popt_common_debug. -
Andrew Bartlett
50507e131d Another item off my long-term todo list:
Remove the n^2 search for valid 'tty' names from the sesion code when we
don't actually need it.  Its main value is in getting 'well behaved'
numbers for use with utmp, so when we are not doing utmp we don't need
this to get in the way.

Andrew Bartlett
-
Jeremy Allison
51c8338c7a print_jobid in the fsp struct should be uint32.
Jeremy.
-
Andrew Bartlett
fc97398611 (this should have been part of the previous commit)
Add a function to display 'sid types' as strings - makes rpcclient outptut
and DEBUG() logs much eaiser to understand.

Move the enum for SID types to smb.h, becouse is really isn't LSA specific any
more.

Andrew Bartlett
-
Andrew Bartlett
d1ca2b9f23 Kill off codepage related stuff, now we don't use codepages any more.
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
0e7e8d4462 Fix spelling typo.
Jeremy.
-
Jeremy Allison
c1b20db4bb More of SMB signing for client - not yet finished (should be harmless).
Jeremy.
-
Andrew Bartlett
04f9a8ff4c Latest patch from metze <metze@metzemix.de> to move most of samba across
to using SIDs instead of RIDs.

The new funciton sid_peek_check_rid() takes an 'expected domain sid' argument.

The idea here is to prevent mistakes where the SID is implict, but isn't
the same one that we have in the struct.

Andrew Bartlett
-
Andrew Bartlett
39c3f245f5 Add flags2 for security signitures -
Jeremy Allison
a234e30355 Removed some unused variables - tidy up some formating, add struct to
client state to implement smb signing - this is a test at present.
Jeremy.
-
Andrew Bartlett
bf82ac14c8 Include the extra #define for the last set of smbpasswd mods. -
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
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
-
Tim Potter
00511ae2b4 Added hex values as comments for the standard access rights. -
Andrew Bartlett
c10def37f5 This is the 'multiple pdb backends' patch from ctrlsoft, aka Jelmer Vernooij
<jelmer@nl.linux.org>.

This patch also includes major rework of pdbedit to use popt, and the addition
of -i paramter (allowing the user to specify which PDBs is being
operated on) and -e to export a pdb - useful for backup and testing etc.

Use of -i and -e gets us pdb2pdb functionality for transition between backends,
much like the sam2sam in TNG.

Andrew Bartlett
-