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

43 Commits

Author SHA1 Message Date
Jeremy Allison
94fc0ea9f9 Fix spelling of background_process.
Jeremy.
-
Gerald Carter
764b58e2c0 merge from APP_HEAD
* s/driverlocation/comment
* detect native mode domain and enumerate local groups

Also

* Added sendfile stats from SAMBA_2_2
-
Andrew Tridgell
e358d7b24c This fixes a number of ADS problems, particularly with netbiosless
setups.

- split up the ads structure into logical pieces. This makes it much
  easier to keep things like the authentication realm and the server
  realm separate (they can be different).

- allow ads callers to specify that no sasl bind should be performed
(used by "net ads info" for example)

- fix an error with handing ADS_ERROR_SYSTEM() when errno is 0

- completely rewrote the code for finding the LDAP server. Now try DNS
  methods first, and try all DNS servers returned from the SRV DNS
  query, sorted by closeness to our interfaces (using the same sort code
  as we use in replies from WINS servers). This allows us to cope with
  ADS DCs that are down, and ensures we don't pick one that is on the
  other side of the country unless absolutely necessary.

- recognise dnsRecords as binary when displaying them

- cope with the realm not being configured in smb.conf (work it out
  from the LDAP server)

- look at the trustDirection when looking up trusted domains and don't
  include trusts that trust our domains but we don't trust
  theirs.

- use LDAP to query the alternate (netbios) name for a realm, and make
  sure that both and long and short forms of the name are accepted by
  winbindd. Use the short form by default for listing users/groups.

- rescan the list of trusted domains every 5 minutes in case new trust
  relationships are added while winbindd is running

- include transient trust relationships (ie. C trusts B, B trusts A,
  so C trusts A) in winbindd.

- don't do a gratuituous node status lookup when finding an ADS DC (we
  don't need it and it could fail)

- remove unused sid_to_distinguished_name function

- make sure we find the allternate name of our primary domain when
  operating with a netbiosless ADS DC (using LDAP to do the lookup)

- fixed the rpc trusted domain enumeration to support up to approx
  2000 trusted domains (the old limit was 3)

- use the IP for the remote_machine (%m) macro when the client doesn't
  supply us with a name via a netbios session request (eg. port 445)

- if the client uses SPNEGO then use the machine name from the SPNEGO
  auth packet for remote_machine (%m) macro

- add new 'net ads workgroup' command to find the netbios workgroup
  name for a realm
-
Simo Sorce
897e64d2e0 more debug classess activated -
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
-
Tim Potter
1e5bdf974f Store cache entry keys that have RID values in decimal to be
consistent with other keys.
-
Tim Potter
f268b0d5fb Store the key for a name to sid cache entry in upper case rather than
whatever case the request was made in.  This gets rid of duplicate
cache entries.

Also when doing a sid to name, prime the cache with the name to sid
mapping result.  We can't do the reverse as we don't know the correct
case of the name to store in the cache.
-
Tim Potter
25554b46de Fixed some formatting. -
Andrew Tridgell
c0feff97ee a new "dual daemon" operating mode for winbindd
this mode improves the response time of winbindd by having a
background process update the cache while the forground process
responds to queries from cache.

You can enable this mode using the -B command line option. It is quite
experimental, which is why it is not the default.
-
Jeremy Allison
b2350ed36c Fix up conversion code from old winbindd versions (some testing needed).
Added time based cache size check (#ifdef'ed out by default, just didn't
want to lose the code).
Jeremy.
-
Andrew Tridgell
1ad1a025b3 enable locking on the winbindd cache tdb so it can be backed up and
manipulated externally
-
Andrew Tridgell
0f75b6bd5b removed bogus prepend_domain() call which was screwing up getpwuid()
with the new default domain code
-
Tim Potter
6a58c9bd06 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
-
Andrew Tridgell
116c0a0e3b force the time difference in cache comparisons to be unsigned to cope
with the local machine time changing
-
Andrew Tridgell
ec73d26c7f make the winbind sequence number code more robust
when switching from rpc to ADS this now should make sense
-
Andrew Tridgell
ee1c3e1f04 - added initial support for trusted domains in winbindd_ads
- gss error code patch from a.bokovoy@sam-solutions.net
- better sid dumping in ads_dump
- fixed help in wbinfo
-
Andrew Tridgell
34328e3031 removed the start_ndx parameter from group enumeration
I tried testing this by lowering the buffer size in
cli_samr_enum_dom_groups() but that didn't work - I think this needs
more looking into
-
Andrew Tridgell
1c909afe76 got rid of start_ndx from query_user_list() -
Andrew Tridgell
217c39f232 winbindd backends can now be marked "consistent" or "inconsistent"
consistent backends (like ADS) always give correct primary group
info, so we can play cache tricks to speed things up a lot

inconsistent backends (like MSRPC) need to fetch stuff more often
-
Andrew Tridgell
2b396f9172 shrank the winbindd_cache.tdb somewhat
on my system it now uses 132k for 308 users
-
Andrew Tridgell
34589d5a47 added some comments -
Andrew Tridgell
7c60ae5937 moved the domain sid lookup and enumeration of trusted domains into
the backends

at startup, loop until we get the domain sid for our primary domain,
trying every 10 seconds. This makes winbindd handle a room-wide power
failure better
-
Andrew Tridgell
4a6d297686 make sid_binstring available without HAVE_ADS -
Andrew Tridgell
77c1376456 explicitly encode NULL strings in the cache -
Andrew Tridgell
ec4c90fd7f removed a debug line -
Andrew Tridgell
fddb4f4c04 completely new winbindd cache infrastructure
this one looks like just another winbind backend, and has the
following properties:

- does -ve and +ve cacheing of all queries

- can be disabled with -n switch to winbindd

- stores all records packed, so even huge domains are not a problem
for a complete cache

- handles the server being down

- uses sequence numbers for all entries

This fixes a lot of problems with winbindd. Serving from cache is now
*very* fast.
-
Andrew Tridgell
9a084f0bb9 moved the sequence number fetch into the backend, and fetch the
sequence number via ldap when using ads
-
Andrew Tridgell
816e40a51a added name_to_sid to the backend -
Jeremy Allison
d3f5d5a4ac Added debugs to track down sequence lookup problems.
Jeremy.
-
Jeremy Allison
1f6cc536b2 Preparing to implement +ve and -ve caching for lookupname/lookupsid calls.
Jeremy.
-
Tim Potter
77c287e946 Caching user, group and domain sam handles was a stupid idea.
Now we just keep a record of the open pipes.
-
Tim Potter
caef54e400 Random connection robustness related fixes. Display some debugs about
the currently open connections when winbindd receives a USR1 signal.

Hmm - I've just realised this will conflict with the messaging code
but we don't use that yet.
-
Tim Potter
295dd2a581 Resurrected sam sequence number code.
Pass domain structure around in cache code rather than the domain name.

Some misc reformatting to make things look prettier.
-
Tim Potter
c369cf5af7 This is the start of a bit of a rewrite of winbindd's connection handling.
I've wrapped up all the decisions about managing, making and closing
connections into a connection manager in nsswitch/winbindd_cm.c.

It's rather incomplete at the moment - only querying basic user info works
at the moment (i.e finger -m DOMAIN/user) and everything else is broken.

Jeremy, please take a look and I'll start moving across the rest of
winbindd to this new system.
-
Simo Sorce
03dc67788f move to SAFE_FREE() -
Andrew Tridgell
8ec9c87b5d use LDSHFLAGS not -shared in several places -
Tim Potter
59f95416b6 Preliminary merge of winbind into HEAD. Note that this compiles and links
but I haven't actually run it yet so it probably doesn't work.  (-:
-
Jeremy Allison
94747b4639 Got "medieval on our ass" about adding the -1 to slprintf.
Jeremy.
-
David O'Neill
376601d17d Changes from APPLIANCE_HEAD:
testsuite/printing/psec.c
        - Use lock directory from smb.conf parameter when peeking at the
          ntdrivers.tdb file.
    source/rpc_parse/parse_sec.c
        - fix typo in debug message
    source/script/installbin.sh
        - create private directory as part of 'make install'.
    source/nsswitch/winbindd_cache.c
    source/nsswitch/winbindd_idmap.c
    source/passdb/secrets.c
    source/smbd/connection.c
        - always convert tdb key to unix code-page when generating.
    source/printing/nt_printing.c
        - always convert tdb key to unix code-page when generating.
        - don't prepend path to a filename that is NULL in
          add_a_printer_driver_3().
    source/rpc_server/srv_spoolss_nt.c
        - always convert tdb key to unix code-page when generating.
        - don't prepend server name to a path/filename that is NULL in the
          fill_printer_driver_info functions.
    source/printing/printing.c
        - always convert tdb key to unix code-page when generating.
        - move access check for print_queue_purge() outside of job delete
          loop.
    source/smbd/unix_acls.c
        - fix for setting ACLs (this got missed earlier)
    source/lib/messages.c
        - trivial sync with appliance_head
-
Tim Potter
a423c7c5f2 While we're all making incompatible tdb changes, I changed the implementation
of tdb_{store,get}_int() to store the length of the string key + 1 so the
stored key contains the trailing NULL character.  This allows normal
string library routines to manipulate keys.

Also renamed tdb_get_int() to tdb_fetch_int() to keep the set of verbs
consistent.
-
Andrew Tridgell
0189af5442 use "winbind separator" in tng as well -
Andrew Tridgell
3cac3ccf04 fixed some winbind cache bugs -
Andrew Tridgell
3fb862531a brought the winbindd code into head
this does not yet compile, but I'm working on that.
-