Age | Commit message (Collapse) | Author | Files | Lines |
|
Samba now features a pluggable passdb interface, along the same lines as the
one in use in the auth subsystem. In this case, only one backend may be active
at a time by the 'normal' interface, and only one backend per passdb_context is
permitted outside that.
This pluggable interface is designed to allow any number of passdb backends to
be compiled in, with the selection at runtime. The 'passdb backend' paramater
has been created (and documented!) to support this.
As such, configure has been modfied to allow (for example) --with-ldap and the
old smbpasswd to be selected at the same time.
This patch also introduces two new backends: smbpasswd_nua and tdbsam_nua.
These two backends accept 'non unix accounts', where the user does *not* exist
in /etc/passwd. These accounts' don't have UIDs in the unix sense, but to
avoid conflicts in the algroitmic mapping of RIDs, they use the values
specified in the 'non unix account range' paramter - in the same way as the
winbind ranges are specifed.
While I was at it, I cleaned up some of the code in pdb_tdb (code copied
directly from smbpasswd and not really considered properly). Most of this was
to do with % macro expansion on stored data. It isn't easy to get the macros
into the tdb, and the first password change will 'expand' them. tdbsam needs
to use a similar system to pdb_ldap in this regard.
This patch only makes minor adjustments to pdb_nisplus and pdb_ldap, becouse I
don't have the test facilities for these. I plan to incoroprate at least
pdb_ldap into this scheme after consultation with Jerry.
Each (converted) passdb module now no longer has any 'static' variables, and
only exports 1 init function outside its .c file.
The non-unix-account support in this patch has been proven! It is now possible
to join a win2k machine to a Samba PDC without an account in /etc/passwd!
Other changes:
Minor interface adjustments:
pdb_delete_sam_account() now takes a SAM_ACCOUNT, not a char*.
pdb_update_sam_account() no longer takes the 'override' argument that was being
ignored so often (every other passdb backend). Extra checks have been added in
some places.
Minor code changes:
smbpasswd no longer attempts to initialise the passdb at startup, this is
now done on first use.
pdbedit has lost some of its 'machine account' logic, as this behaviour is now
controlled by the passdb subsystem directly.
The samr subsystem no longer calls 'local password change', but does the pdb
interactions directly. This allow the ACB_ flags specifed to be transferred
direct to the backend, without interference.
Doco:
I've updated the doco to reflect some of the changes, and removed some paramters
no longer applicable to HEAD.
(This used to be commit ff354c99c585068af6dc1ff35a1f109a806b326b)
|
|
smbd, and also makes it much cleaner inside winbindd.
It is mostly my code, with a few changes and testing performed by Alexander
Bokovoy <a.bokovoy@sam-solutions.net>. ab has tested it in security=domain and
security=ads, but more testing is always appricatiated.
The idea is that we no longer cart around a 'domain\user' string, we keep them
seperate until the last moment - when we push that string into a pwent on onto
the socket.
This removes the need to be constantly parsing that string - the domain prefix
is almost always already provided, (only a couple of functions actually changed
arguments in all this).
Some consequential changes to the RPC client code, to stop it concatonating the
two strings (it now passes them both back as params).
I havn't changed the cache code, however the usernames will no longer have a
double domain prefix in the key string. The actual structures are unchanged
- but the meaning of 'username' in the 'rid' will have changed. (The cache is
invalidated at startup, so on-disk formats are not an issue here).
Andrew Bartlett
(This used to be commit e870f0e727952aeb8599cf93ad2650ae56eca033)
|
|
(This used to be commit 7e876057d5e392f85e6fdb0f2c233b0fe76df688)
|
|
These strings are allocated using talloc(), either using its own memory context
stored on the SAM_ACCOUNT or one supplied by the caller.
The pdb_init_sam() and pdb_free_sam() function have been modifed so that a call
to pdb_free_sam() will either clean up (remove hashes from memory) and destroy
the TALLOC_CTX or just clean up depending on who supplied it.
The pdb_init_sam and pdb_free_sam functions now also return an NTSTATUS, and I
have modified the 3 places that actually checked these returns.
The only nasty thing about this patch is the small measure needed to maintin
interface compatability - strings set to NULL are actually set to "".
This is becouse there are too many places in Samba that do strlen() on these
strings without checking if they are NULL pointers.
A supp patch will follow to set all strings to "" in pdb_default_sam().
Andrew Bartlett
(This used to be commit 144345b41d39a6f68d01f62b7aee64ca0d328085)
|
|
(This used to be commit 63ea2bb0adf5ae742658f479613de90b1eec3db5)
|
|
prompt dmalloc to log information about what happening, so you can see
in flight why smbd is getting bloated.
(This used to be commit bcb443c5c4bf97fe6b5b0993e42496c2e64f0124)
|
|
of commands when specified on command line.
(This used to be commit 39d6b31e14144a3ff4b992d4286b706147e58566)
|
|
(This used to be commit 2fcdc520cee051631bbc2a0c06466d231390f8d5)
|
|
(This used to be commit faa1b222f170abe34f6930bb3493cbe8b4df4082)
|
|
(This used to be commit a9b9ae47e1a11492f036b308c408c6a239a690f6)
|
|
boring so far.
(This used to be commit 9b217dce7fe89d1e36a91d7d011c2a9fe185e0d3)
|
|
be information about memory usage, but this is not done yet.
(This used to be commit 830a126a442bdde28fc42e23e7260c344b6534b9)
|
|
Thou shalt not reference SAM_ACCOUNT members directly - always use
pdb_get/pdb_set.
This is achived by making the whole of SAM_ACCOUNT have a .private member,
where the real members live. This caught a pile of examples, and these have
beeen fixed.
The pdb_get..() functions are 'const' (have been for some time) and this
required a few small changes to constify other functions.
I've also added some debugs to the pdb get and set, they can be removed if
requested.
I've rewritten the copy_id2x_to_sam_pass() functions to use the new passdb
interface, but I need the flags info to do it properly.
The pdb_free_sam() funciton now blanks out the LM and NT hashes, and as such
I have removed many extra 'samr_clear_sam_passwd(smbpass)' calls as a result.
Finally, any and all testing is always appriciated - but the basics seem to
work.
Andrew Bartlett
(This used to be commit d3dd28f6c443187b8d820d5a39c7c5b3be2fa95c)
|
|
(This used to be commit 466f515240aaeca7b0fe2b7b3474ab23cab687cc)
|
|
These two little features are very useful, but the passing of options about
needs some serious work. The popt stuff in the shutdown code is #ifdef'ed out
until the main popt loop can be convinced not to chew on the options :-(
Andrew Bartlett
(This used to be commit 51c985be7fbfe5627c5b2590e7610653e7be98e3)
|
|
(This used to be commit c946c6bbc8192f5f0f3706d1b4a6cca0a994f36b)
|
|
but it will take more time as I don't want to loose any fixes that
are only in HEAD.
(This used to be commit efcde5d9d8ce44c0613764504d797be54ba21473)
|
|
probably will never actually be genearted, but I like the style in any case.
Also fix a segfault in 'net rpc' when the login failed and a small memory leak
on failure in the auth_info.c code.
Andrew Bartlett
(This used to be commit 2efae7cc522651c22fb120835bc800645559b63e)
|
|
members (such as uid and gid). This way we will be able to
keep ourselves from writing out default smb.conf settings when
the admin doesn't want to, That part is not done yet.
Tested compiles with ldap/tdb/smbpasswd. Tested connection with smbpasswd
backend.
oh...and smbpasswd doesn'y automatically expire accounts after 21 days
from the last password change either now. Just ifdef'd out that code
in build_sam_account().
Will merge updates into 2.2 as they are necessary.
jerry
(This used to be commit f0d43791157d8f04a13a07d029f203ad4384d317)
|
|
need to invert this to give the shell 0.
(This used to be commit ecc624067c54314834aacbf21d0f2ee54fce37e9)
|
|
don't know how many to expect.
(This used to be commit 53f1c0298b526dcacae956453a4b95fff226d0b8)
|
|
Factor out common code to wait until replies are received or timeout
expires.
Show debug message when messages are sent.
(This used to be commit 17bb0f60af13c5d0561c0ba50b0a6331bde52e8f)
|
|
(This used to be commit dfbe442c668480d88cb8b385c6b89f8e198ca500)
|
|
(This used to be commit 51268c512dbae94aba308668df9facaf15a2ce9e)
|
|
scripts
(This used to be commit 6d2f7ed708e75687d23f432ba9a186e88fa14118)
|
|
(This used to be commit 412e79c448bf02e3097b5c14a36fe0172d8d2895)
|
|
(This used to be commit 05a90a28843e0d69183a49a76617c5f32817df16)
|
|
- gss error code patch from a.bokovoy@sam-solutions.net
- better sid dumping in ads_dump
- fixed help in wbinfo
(This used to be commit ee1c3e1f044b4ef62169ad74c5cac40eef81bfda)
|
|
Jeremy
(This used to be commit 7b8fb8d85c406b8755f60cf14dc2377bc59eda53)
|
|
(This used to be commit f1231c2b54cac9d4fda7fa9d45fd329f1fd7b779)
|
|
(This used to be commit c26623671e2b0b2e80c6d6383a99880c4f439f04)
|
|
join does not have administrator privileges.
(This used to be commit af24b1036c8ceaa37e6b68ac988401846c5c7fe4)
|
|
(This used to be commit 60eb4dc7b1114275f035d27a890e0301a65e0e42)
|
|
(This used to be commit 882e5e3bb815e02407ecf6f689ffe5bb618845e8)
|
|
account already exists.
# net rpc join --user=Administrator%password
It's kind of weird seeing the mix of NET.EXE style of options (net command
subcommand /arg:value) with the GNU-style long options. I think it works.
(This used to be commit 3789c8c707acd9a4078d656c8de9ce1f4be9e388)
|
|
cleanup. Printq function cannot exactly mimic windows output using d_printf...oh well. Add some more command-specific options back into help.
(This used to be commit e135320e0547581c7d38126647a91b874d152622)
|
|
(This used to be commit 3c927e39e7354d2f65b3ff7148fc325b41552310)
|
|
(This used to be commit 0839cf03a92673b38f1afa103271c708fa7162a2)
|
|
Ignacio you can update your howto ;-)
samsync: a small patch to try chaning challenges.
J.F.
(This used to be commit c99bc305599698f2291efbfe20024355cb2bcde0)
|
|
(This used to be commit b107ecef7097e4b3b870f51fa6628b870703b4de)
|
|
(This used to be commit 4405a87fb754cece3a5428246ea6ecb9abba1996)
|
|
(This used to be commit 4e2691b1c13a7db4770effa6eddeb19adb47f8ae)
|
|
(This used to be commit 784a3f295176dc87c8befd76d5f2dc9ef1e9e383)
|
|
(This used to be commit 3628a978d1881aa2a0939594b1c752475468965e)
|
|
(This used to be commit 75621d528433a9c1af3eada0b748dfbcfdb8ad62)
|
|
(This used to be commit 2183c1f3b09db5c078327050279130ac825c71f8)
|
|
a SMB server
particularly useful for ADS is:
net time set -S DOMAIN#1B
this makes kerberos clock skew problems go away :)
(This used to be commit b3ba2293d0e4eac3b6408c3abc3dcacfa3f67fe4)
|
|
(This used to be commit c87d1ad32114200d3e678f8de88874c737f8e571)
|
|
protocol switch mechanism in place
(This used to be commit d20c3717dd58745da082d1b4df7698c6d6c38e6c)
|
|
cyrus-sasl which makes the code much less fragile. Also added code to auto-determine the server name or realm
(This used to be commit 435fdf276a79c2a517adcd7726933aeef3fa924b)
|