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

122 Commits

Author SHA1 Message Date
Tim Potter
249a697470 spelling -
Andrew Bartlett
e8aa615591 Use fstrcpy/pstrcpy when that's what we really mean...
Andrew Bartlett
-
Gerald Carter
beedde03fc cleanup lanman printing= for win98; device type is LPT1:; patch by Steve L. -
Jeremy Allison
186d53cbc1 Fix from Steve Langasek <vorlon@netexpress.net> for non-RPC printing.
Jeremy.
-
Volker Lendecke
6ab88f31d6 This changes our handling of invalid service types that the
client requested on tconx. We now return the same error
code like NT4SP6 and W2kSP3 return.

TCONDEV is a little test for this.

Volker
-
Jeremy Allison
e8155fade6 Ensure dev in make_connection is const.
Jeremy.
-
Andrew Bartlett
a0208a4f74 Missed one when I move 'share_sanity_checks' to use an fstring for 'dev'.
Andrew Bartlett
-
Andrew Bartlett
9f3d3c3801 Make sure we mark the assumption of a fstring parameter for 'devicetype'
in the function prototype, and change callers to respect this.

Andrew Bartlett
-
Andrew Bartlett
53b8f8a441 Fix logfile formatting, we were missing a "\n" -
Andrew Bartlett
9be21976f7 This patch fixes one of my longest-standing pet hates with Samba :-).
When we look see if a user is in a list, and we try to 'expand' an @group, we
should lookup the user's own list of groups, rather than looking for all the
members of a group.

I'm sure this will fix some nasty performance issues, particularly on large
domains etc.  In particular, this avoids contacting winbind at all, if the
group is not a winbind group.

(This caused a deadlock on my winbind-on-PDC setup).

The groups list always includes the user's primary group, as per the
getgrouplist manpage, and my recent changes to our implementation.

Andrew Bartlett
-
Andrew Bartlett
ef9c7586ac Oops, this is the change to use an fstring for the incoming service buffer -
the commit to reply.c just matches a pstrcpy for the pstring.  (harmless, fixes
it for the automated test).

Andrew Bartlett
-
Andrew Bartlett
41178afdbd Fix a segfault when we don't correctly load a VFS module (don't keep it in
the loaded list on error).  Also change some of the error returns, becouse
NT_STATUS_UNSUCCESSFUL gives a most useless error message on the client.

As for which error, my logic is that a share without a valid VFS module is
not a valid share, and therefore should return the same error as a non-existant
share.

Andrew Bartlett
-
Shirish Kalele
9df93b1ffc Add msdfs proxy functionality to HEAD. -
Andrew Tridgell
9ead4fc3c3 a better for for using %U in smb.conf
this follows the method used for remote_machine and also fixes the
problem of anonymous connections clobbering the string
-
Andrew Tridgell
d664e6b4d2 the change in the way %U is handled to use current_user has broken
some basic usages like 'include = smb.conf.%U'

This changes fixes things again, by checking for reload after we setup
current_user in tconx.
-
Jeremy Allison
82b8f749a3 Removed global_myworkgroup, global_myname, global_myscope. Added liberal
dashes of const. This is a rather large check-in, some things may break.
It does compile though :-).
Jeremy.
-
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.
-
Andrew Bartlett
de1964f7fa Updates!
- Don't print an uninitialised buffer in service.c
- Change some charcnv.c functions to take smb_ucs2_t ** instead of void **
- Update NTLMv2 code to use dynamic buffers
- Update experimental SMB signing code - still more work to do
- Move sys_getgrouplist() to SAFE_FREE() and do a DEBUG() on initgroups()
  failure.

Andrew Bartlett
-
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 Bartlett
fb28abd120 Add const. -
Andrew Bartlett
f393de2310 Make 'remote_machine' private to lib/substitute.c, and fix all the user to use
the new accessor functions.

Andrew Bartlett
-
Andrew Bartlett
5d2c7816a3 This should fix a nastly little bug where if a user had already done one
session setup, it would not correctly pick up the [homes] share on a subsequent
session setup.

The new rules are:  If you want to connect to [homes], then it must have been
available at session setup time, or you must be in security=share.  At each
session setup, the user's copy of [homes] is updated to ensure it has the right
path etc.

Andrew Bartlett
-
Andrew Bartlett
2febc7ce1a If lp_add_home() fails, don't go any further, just return -1.
Andrew Bartlett
-
Andrew Bartlett
0229f610a8 Give an idea what service didn't have the directory. -
Jeremy Allison
44410af397 Use of uninitialized variable caught by valgrind.
Jeremy.
-
Andrew Tridgell
61c524e810 fixed a call to get_current_groups() -
Gerald Carter
17bb780e13 last check in for tonight.
* DeletePrinterDriverEx() now has the ability to delete
    driver files.  I need to do some more testing
    tro veriofy that we are in fact not deleting a file out from
    under another driver, but it looks ok so far.

  * DeletePrinterDriver() noiw deletes all versions of the
    specified driver (cversion == 0, 1, 2, 3)
-
Jeremy Allison
aad4089440 Fix from Andrew Esh for coredump...
Jeremy.
-
Andrew Bartlett
06529c0433 Always free_conn() after all the DEBUG()s etc. -
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.
-
Gerald Carter
b5bc8aa0f6 It's fairly obvious that no one has tried to upload a driver
to a Samba print server running HEAD in a while.  This has been broken
since tridge's changes to make_connection() to not do the chdir()
to the connect_path.  Sorry it took me so long to get around to fixing it.

The problem occured with our internal use of make_connection().

jerry
-
Andrew Bartlett
70c16188c7 Further updates to the service.c code. authorise_login() is now a bit simpiler
and we seem to have eliminated the segfault.

Unfortunetly I'm still at a bit of a loss as to why it did segfault, but
the patch is correct in any case.

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
-
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
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 Tridgell
e75e4ad7d3 make sure that we leave the tree unused after disconnecting -
Andrew Tridgell
4fc4766864 win2000 does not check the permissions on the share directory on
tconx, so win2000 clients don't expect a permissions error in
tconx. We now match this behaviour, by only checking that the
directory exists during tconx and relying on the permissions on other
calls to protect directories
-
Tim Potter
6a58c9bd06 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
-
Andrew Bartlett
f1d8d50976 Some more 'winbind default domain' support patches from Alexander Bokovoy
<a.bokovoy@sam-solutions.net>.

This patch is designed to remove the 'special cases' required for this support.

In particular this now kills off winbind_initgroups, as it appears no longer to
be required.

Andrew Bartlett
-
Andrew Bartlett
8cac618174 Yes, dev is an 'input/output' paramater...
Andrew Bartlett
-
Jeremy Allison
c1b97226db Separate out get_user_home_dir() from get_user_home_service_dir().
Jeremy.
-
Martin Pool
cee0ec7274 Roll back PSTRING_SANCTIFY patch; just leave non-controversial type
and constness changes.
-
Jeremy Allison
5b2b9c25af Removed MAXSTATUS which was set incorrectly - thus causing tdb traversal
of the connections db on smbd startup. This should fix the Solaris large
load bug.... (fingers crossed).
Jeremy.
-
Andrew Bartlett
490d3aaf20 Make this error match Win2k. -
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
e7634f81c5 This commit is number 3 of 4.
In particular this commit focuses on:

Changing the Get_Pwnam code so that it can work in a const-enforced
environment.

While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.

----

These changes allow for 'const' in the Samba tree.

There are a number of good reasons to do this:

	- I want to allow the SAM_ACCOUNT structure to move from wasteful
	pstrings and fstrings to  allocated strings.  We can't do that if
	people are modifying these outputs, as they may well make
	assumptions about getting pstrings and fstrings

	- I want --with-pam_smbpass to compile with a slightly sane
	volume of warnings, currently its  pretty bad, even in 2.2
	where is compiles at all.

	- Tridge assures me that he no longer opposes 'const religion'
	based on the ability to  #define const the problem away.

	- Changed Get_Pwnam(x,y) into two variants (so that the const
	parameter can work correctly): - Get_Pwnam(const x) and
	Get_Pwnam_Modify(x).

	- Reworked smbd/chgpasswd.c to work with these mods, passing
	around a 'struct passwd' rather  than the modified username
-
Andrew Tridgell
96f910bae5 add non_root_mode() check -
Jeremy Allison
8d23a7441b Merge the become_XXX -> change_to_XXX fixes from 2.2.2 to HEAD.
Ensure make_conection() can only be called as root.
Jeremy.
-
Tim Potter
7c3542ba87 Renamed vfs_init() to smbd_vfs_init() to allow vfs modules to compile. -