Added strstr_m() function. Use in all places where we might run into mb
[Samba/bb.git] / WHATSNEW.txt
blob69036fae3c635d6c3c25c9180fa2d16f5ad91937
1                     WHATS NEW IN Samba 3.0.0
2                         September 24, 2003
3                   ==============================
5 This is the first official release of Samba 3.0.0 code base.  Work
6 on the SAMBA_3_0 CVS branch continues.  Please refer to the section 
7 on "Known Issues" for more details.
10 Major new features:
11 -------------------
13 1)  Active Directory support.  Samba 3.0 is now able to  
14     join a ADS realm as a member server and authenticate 
15     users using LDAP/Kerberos.
17 2)  Unicode support. Samba will now negotiate UNICODE on the wire 
18     and internally there is now a much better infrastructure for 
19     multi-byte and UNICODE character sets.
21 3)  New authentication system. The internal authentication system 
22     has been almost completely rewritten. Most of the changes are 
23     internal, but the new auth system is also very configurable.
25 4)  New default filename mangling system.
27 5)  A new "net" command has been added. It is somewhat similar to 
28     the "net" command in windows. Eventually we plan to replace 
29     numerous other utilities (such as smbpasswd) with subcommands 
30     in "net".
32 6)  Samba now negotiates NT-style status32 codes on the wire. This
33     improves error handling a lot.
35 7)  Better Windows 2000/XP/2003 printing support including publishing
36     printer attributes in active directory.
38 8)  New loadable module support for passdb backends and character 
39     sets.
41 9)  New default dual-daemon winbindd support for better performance.
43 10) Support for migrating from a Windows NT 4.0 domain to a Samba 
44     domain and maintaining user, group and domain SIDs.
46 11) Support for establishing trust relationships with Windows NT 4.0
47     domain controllers.
48   
49 12) Initial support for a distributed Winbind architecture using
50     an LDAP directory for storing SID to uid/gid mappings.
51   
52 13) Major updates to the Samba documentation tree.
54 14) Full support for client and server SMB signing to ensure
55     compatibility with default Windows 2003 security settings.
57 15) Improvement of ACL mapping features based on code donated by
58     Andreas Grünbacher.
61 Plus lots of other improvements!
64 Additional Documentation
65 ------------------------
67 Please refer to Samba documentation tree (included in the docs/ 
68 subdirectory) for extensive explanations of installing, configuring
69 and maintaining Samba 3.0 servers and clients.  It is advised to 
70 begin with the Samba-HOWTO-Collection for overviews and specific 
71 tasks (the current book is up to approximately 400 pages) and to 
72 refer to the various man pages for information on individual options.
74 We are very glad to be able to include the second edition of
75 "Using Samba" by Jay Ts, Robert Eckstein, and David Collier-Brown
76 (O'Reilly & Associates) in this release.  The book is available
77 on-line at http://samba.org/samba/docs/ and is included with 
78 the Samba Web Administration Tool (SWAT).  Thanks to the authors and
79 publisher for making "Using Samba" under the GNU Free Documentation 
80 License.
83 ######################################################################
84 Changes since 3.0rc4
85 ####################
87 Please refer to the CVS log for the SAMBA_3_0 branch for complete 
88 details:
90 1)  Fix bug that prevented restoring filenames of length
91     >100 characters.
92 2)  Fix bug that prevented fast path code in strchr_m 
93     from being used.
94 3)  Make sure we store the desired access flag on incoming 
95     SAMR rpc calls.
96 4)  Fix smbd crash when dealing with mangled file names.
97 5)  Ensure that the group comment field is not overwritten
98     if it already exists.
99 6)  Fix bug that prevented 'net rpc join' from working
100     with mixed mode AD domains (bug 442).
101 7)  Fix crash in smbd when a Samba PDC is not able to 
102     enumerate trusted domains (bug 450).
103 8)  Fix crash bug found by the Samba4 testsuite.
104 9)  Fix bug that prevented smbd from returning an ACL list
105     if one of the SIDs could not be resolved (bug 470).
106 10) Remove -P option from smbclient printing scripts since it
107     has a different meaning in Samba 3.0 (bug 473).
108 11) Sync smbldap-tools with latest version 
109 12) Cleanup some warnings produced by the Sun C compiler.
110 13) Several fixes for SWAT relating to international character 
111     sets.
114 Changes since 3.0rc3
115 ####################
117 1)  Fix incorrect error message in testparm.c regarding 'map system'.
118 2)  Protect against core dump if ioctl for print job sends invalid 
119     fid.
120 3)  Fix bug in generic hash cacluation.
121 4)  Remove references to unused 'strip dot' parameter
122 5)  Fix CPU burn bug in multi-byte character conversion.
123 6)  Use opt_target_workgroup instead of lp_workgroup() in vampire 
124     code so we can override the value in smb.conf with the -w option.
125 7)  Display an error if we can't create a posix account for the 
126     user when running 'net rpc vampire' (bug 323).
127 8)  Fix UTF8 conversion bugs in LDAP passdb and idmap code (bug 296).
128 9)  Fix smbd crash when changing the machine trust account password 
129     (bug 273).
130 10) Remove getpwnam() calls from init_sam_from_xxx().  This means 
131     that %u & %g will no longer expand in the "login ..." set of 
132     smb.conf options, but %U and %G still do. The payback is that 
133     winbindd local accounts for users work with 'wbinfo -u' 
134     when winbind is running on a Samba PDC.
135 11) Fix unitiailized timestamp where merging print_jobs and 
136     lpq listing.
137 12) Fix bug in debian packaging files affecting non-i386 platforms.
140 Changes since 3.0rc2
141 ####################
143 1)  Remove Perl module dependencies in generated RedHat 8/9 RPMS.
144 2)  Update mount helper to take synonyms for file_mode and 
145     dir_mode (fmask and dmask).
146 3)  Fix portability bug with log2pcaphex.
147 4)  Use different algorithm to generate codepages source code which 
148     allows to take gaps into account thus making unnecessary 
149     extended [index] = value, syntax in to_ucs2 array (bug 380).
150 5)  Fix comment strings to 43 bytes as per spec.
151 6)  Fix pam_winbind compile bug on FreeBSD (bug 261).
152 7)  Support for in-memory keytabs, which are needed to make heimdal 
153     work properly.  MIT does not support them, so this check will be 
154     used to decide whether to use them.  (partial fix for bug 372).
155 8)  Disable RC4-HMAC on broken heimdal setups.  (remainder of bug 
156     372).
157 9)  Correct bug in smbclient that resulted in errors when untarring
158     long filenames (bug 308).
159 10) Improve autoconf checks for PAM header files and libs.
160 11) Added fast path to convert_string() when dealing with 
161     ASCII->ASCII, UCS2-LE->ASCII, and ASCII->UCS2-LE with 
162     values <= 0x7F. 
163 12) Quiet debug messages when we don't find a module and it is not
164     a critical error (bug 375).
165 13) Fix UNIX passwd sync properly.
166 14) Fix more transitive trust issues in winbindd (bug 305).
167 15) Ensure that winbindd functions with 'disable netbios = yes'
168 16) Store the real short domain name in secrets.tdb as soon as we
169     know it.  Also display an error message when joining an AD
170     domain and the 'workgroup' parameter has not been specified.
171 17) Return 0 DFS links instead of -1 when dfs support is not enabled.
172 18) Update LDAP schema for Netscape DS 4.x and Novell eDirectory 8.7
173 19) Ensure that name types can be specified using name#type notation
174     in the 'net' command (bug 73).
175 20) Add retry looks to ADS sequence number and domain SID lookups 
176     (bug 364).
177 21) use a variant of alloc_sub_basic() for string lists such as 
178     'valid users', 'write list', and 'read list' (bug 397).
179 22) Fix seg fault when winbindd receives an error from the AD server
180     in response to an LDAP search (bug 282).
181 23) Update findsmb to use the new syntax for smbclient and nmblookup.
182 24) Fix bug that prevented variables from being used in explicitly 
183     defined path in [homes].
184 25) Only set SIDs when they're returned by the MySQL query 
185     (pdb_mysql.so).
186 26) Include support for NTLMv2 key exchange.
187 27) Revert default for 'client ntlmv2 auth' to off (bug 359).
188 28) Fix crash in winbindd when the trust account password gets 
189     changed underneath us via 'net rpc changetrustpw' (bug 382).
190 29) Use djb-algorithm string hash - faster than the tdb one we 
191     used to use.  Does not change on disk format or hashing location.
192 30) Implements some kind of improved AFS support for Samba on
193     Linux with OpenAFS 1.2.10. './configure --with-fake-kaserver'
194     assumes that you have OpenAFS on your machine.
195 31) When enumerating dfs shares loop from 0 to lp_numservices() instead 
196     of relying on lp_servicename(n) to return an empty string for 
197     invalid service numbers (bug 403).
198 32) Fix crash bug in 'net rpc samdump' (bug 334).
199 33) Fix crash bug in WINS NSS module (bug 299).
200 34) Fix a few minor compile errors on HP-UX.
204 Changes since 3.0rc1
205 ####################
207 1)  Add levels 261 and 262 to search. Found using Samba4 tester.
208 2)  Correct bad error return code in session setup reply
209 3)  Fix bug where smbd returned DOS error codes from SMBsearch
210     even when NT1 protocol was negotiated.
211 4)  Implement SMBexit properly.
212 5)  Return group lists from a Samba PDC to a Windows 9x/ME box
213     in implementing user level access control (bug 314).
214 6)  Prevent SWAT from crashing when adding shares (bug 254)
215 7)  Fix various documentation issues (bugs 304 & 214)
216 8)  Fix wins server listing in SWAT (bug 197)
217 9)  Fix problem in rpcclient that caused enumerating printer 
218     drivers to report failure (bug 294).
219 10) Use kerberos 5 authentication in our client code whenever possible
220 11) Fix schannel bug that caused Active Directory DC's to downgrade our
221     machine account to an NT member.
222 12) Implement missing SAMR_REMOVE_USER_FOREIGN_DOMAIN call (bug 252).
223 13) Implement automatic generation of include/version.h
224 14) Include initial version of smbldap-tool scripts for the Samba 
225     3.0 schema.
226 15) Implement numerous fixes for multi-byte character strings.
227 16) Enable 'unix extensions' parameter by default.
228 17) Make sure we set the SID type when falling back to the rid 
229     algorithm (bug 245).
230 18) Correct linking problems with pam_smbpass (bug 327).
231 19) Add SYSV defines for Irix and Solaris to ensure the 'printing'
232     parameter default to the correct value (bug 230)
233 20) Fix recursion bug in alloc_string_sub() (bug 289, et. al.)
234 21) Ensure that 'make install' includes the static and shared 
235     versions of the libsmbclient libraries.
236 22) Add CP850 and CP437 internal character set support (bug 150).
237 23) Add support to examples/LDAP/convertSambaAccount for generating
238     LDIF modify files instead of just add (303).
239 24) Fix support for -W option in smbclient (bug 39)
240 25) Remove 'ldap trust ids' parameter since it could not be supported
241     by the current architecture.
242 26) Don't crash when no argument is given to -T in smbclient (bug 345).
243 27) Ensure smbadduser contains the same paths for the smbpasswd file 
244     as the other Samba tools (bug 290).
245 28) Port of 'available = no' fix for [homes] from SAMBA_2_2 cvs tree.
246 29) Add sanity checks to DeletePrinterData[Ex]() and ensure that the
247     modified printer is written to disk.
248 30) Force winbindd to periodically update the trusted domain cache.
249 31) Remove outdated import/export script to convert an smbpasswd file
250     to and from and LDAP directory.  Use the pdbedit tool instead.
251 32) Ensure that %U substitution is restored on next valid packet
252     if a logon fails.
255 Changes since 3.0beta3
256 ######################
258 1)  Various memory leak fixes.
259 2)  Provide full support for SMB signing (server and client)
260 3)  Check for broken getgrouplist() in glibc.
261 4)  Don't get stuck in an infinite loop listing directories 
262     recursively if the server returns an empty directory name
263     (bug 222).
264 5)  Idle LDAP connections after 150 seconds.
265 6)  Patched make uninstallmodules (bug 236).
266 7)  Fix bug that caused smbd to return incomplete directory listings
267     when UNIX files contained MS wildcard characters.
268 8)  Quiet default debug messages in command line tools.
269 9)  Fixes to avoid panics on invalid multi-byte strings.
270 10) Fix error messages when creating a new smbpasswd file (bug 198).
271 11) Implemented better detection routines in autoconf scripts for 
272     locating ads support on the host OS.
273 12) Fix bug that caused libraries in /usr/local/lib to be ignored 
274     (bug 174).
275 13) Ensure winbindd_ads uses the correct realm or domain name when 
276     connecting to trusted DC.
277 14) Ensure a correct prototype is created for snprintf() (bug 187)
278 15) Stop files being created on read-only shares in some circumstances.
279 16) Fix wbinfo -p (bug 251)
280 17) Support schannel on any tcp/ip connection if necessary
281 18) Correct bug in user_in_list() so that it works with winbind groups 
282     again.
283 19) Ensure the schannel bind credentials default to the domain 
284     of the destination host.
285 20) Default password expiration time in account_pol.tdb to never 
286     expire.  Remove any existing account_pol.tdb file to reset
287     the new default policy (bug 184). 
288 21) Add buttons to SWAT to change the view of smb.conf (bug 212)
289 22) Fix incorrect checks that determine whether or not the 'add user 
290     script' has been set.
291 23) More cleanup for internal character set conversions.
292 24) Fixes for multi-byte strings in stat cache code.
293 25) Ensure that the net command honors the 'workgroup' parameter 
294     in smb.conf when not overridden from the command line.
295 26) Add gss-spnego support to the ntlm_auth tool.
296 27) Add vfs_default_quota VFS module.
297 28) Added server support for NT quota interfaces.
298 29) Prevent Krb5 replay attacks by adding a replay_cache.
299 30) Fix problems with winbindd and transitive trusts in AD domains.
300 31) Added -S to client tools for setting SMB signing options on the 
301     command line.
302 32) Fix bug causing the 'passwd change program' to be called as the 
303     connected user and not root.
304 33) Fixed data corruption bug in byte-range locking (e.g. affected MS Excel).
305 34) Support winbindd on FreeBSD is possible.
306 35) Look at only the first OID in the security blob sent in the session 
307     setup request to determine the token type.
308 36) Only push locks onto a blocking lock queue if the posix lock failed with 
309     EACCES or EAGAIN (this means another lock conflicts). Else return an 
310     error and don't queue the request.
311 37) Fix command line argument processing for smbtar.
312 38) Correct issue that caused smbd to return generic unix_user.<uid> 
313     for lookupsid().
314 39) Default to algorithmic mapping when generating a rid for a group
315     mapping.
316 40) Expand %g and %G in logon script, profile path, etc... during
317     a domain logon (bug 208).
318 41) Make sure smbclient obeys '-s <config>'
319 42) Added win2k3 shadow copy operations to VFS interface.
320 43) Allow connections to samba domain member as SERVER\user (don't
321     always default to DOMAIN\user).
322 44) Remove checks in winbindd that caused it to attempt to use 
323     non-transitive trust relationships.
324 45) Remove delays in winbindd caused by invalid DNS lookups.
325 46) Fix supplementary group memberships on systems with slightly 
326     broken NSS implementations (bug 267).
327 47) Correct issue that prevented smbclient from viewing shares on 
328     a win2k server when using a non-anonymous connection (bug 284).
329 48) Add --domain=DOMAIN_NAME to wbinfo for limiting operations like 
330     'wbinfo -u' to a single domain.  The '.' character represents 
331     our domain.
332 49) Fix group enumeration bug when using an LDAP directory for 
333     storing group mappings.
334 50) Default to use NTLMv2 if available.  Fallback to not use LM/NTLM
335     when the extended security capability bit is not set.
336 51) Fix crash in 'wbinfo -a' when using extended characters in the 
337     username (bug 269).
338 52) Fix multi-byte strupper() panics (bug 205).
339 53) Add vfs_readonly VFS module.
340 54) Make sure to initialize the sambaNextUserRid and sambaNextGroupRid
341     attributes when using 'idmap backend = ldap' (bug 280).
342 55) Make sure that users shared between a Samba PDC and member 
343     samba server are seen as domain users and not local users on the 
344     domain member.
345 56) Fix Query FS Info level 2.
346 57) Allow enumeration of users and groups by win9x "file server" (bug 
347     286).
348 58) Create symlinks during install for modules that support mutliple
349     functions (bug 91).
350 59) More iconv detection fixes.
351 60) Fix path length error in vfs_recycle module (bug 291).
352 61) Added server support for the LSA_DS UUID on the \lsarpc pipe.
353     (server DsRoleGetPrimaryDomainInfo() is currently disabled).
354 62) Fix SMBseek and get/set position calls.
355 62) Fix SetFileInfo level 1.
356 63) Added tool to convert smbd log file to a pcap file (log2pcaphex).
360 Changes since 3.0beta2
361 ######################
363 1)  Added fix for Japanese case names in statcache code; 
364     these can change size on upper casing.
365 2)  Correct issues with iconv detection in configure script
366     (support needed to find iconv libraries on FreeBSD).
367 3)  Fix bug that caused a WINS server to be marked as dead
368     incorrectly (bug #190).
369 4)  Removing additional deadlocks conditions that prevented 
370     winbindd from running on a Samba PDC (used for trust 
371     relationships).
372 5)  Add support for searching for Active Directory for 
373     published printers (net ads printer search).
374 6)  Separate UNIX username from DOMAIN\username in pipe 
375     credentials.
376 7)  Auth modules now support returning NT_STATUS_NOT_IMPLEMENTED
377     for cases that they cannot handle.
378 8)  Flush winbindd connection cache when the machine trust account
379     password is changed while a connection is open (bug #200).
380 9)  Add support for 'OSVersion' server printer data string
381     (corrects problem with uploading printer drivers from 
382     WinXP clients).
383 10) Numerous memory leak fixes.
384 11) LDAP fixes ("passdb backend = ldapsam" & "idmap backend = ldap"):
385     - Store domain SID in LDAP directory.
386     - store idmap information in existing entries (use sambaSID=... 
387       if adding a new entry).
388 12) Fix incorrect usage of primary group SID when looking up user 
389     groups (bug #109).
390 13) Remove idmap_XX_to_XX calls from smbd.  Move back to the the
391     winbind_XXX and local_XXX calls used in 2.2.
392 14) All uid/gid allocation must involve winbindd now (we do not 
393     attempt to map unknown SIDs to a UNIX identify).
394 15) Add 'winbind trusted domains only' parameter to force a domain
395     member.  The server to use matching users names from /etc/passwd 
396     for its domain   (needed for domain member of a Samba domain).
397 16) Rename 'idmap only' to 'enable rid algorithm' for better clarity 
398     (defaults to "yes").
399 17) Add support for multi-byte statcache code (bug #185)
400 18) Fix open mode race condition.
401 19) Implement winbindd local account management functions.  Refer to
402     the "Winbind Changes" section for details.
403 20) Move RID allocation functions into idmap backend.
404 21) Fix parsing error that prevented publishing printers from a 
405     Samba server in an AD domain.
406 22) Revive NTLMSSP support for named pipes.
407 23) More SCHANNEL fixes.
408 24) Correct SMB signing with NTLMSSP.
409 25) Fix coherency bug in print handle/printer object caching code
410     that could cause XP clients to infinitely loop while updating 
411     their local printer cache.
412 26) Make winbindd use its dual-daemon mode by default (use -Y to 
413     start as a single process).
414 27) Add support to nmbd and winbindd for 'smbcontrol <pid> 
415     reload-config'.
416 28) Correct problem with smbtar when dealing with files > 8Gb 
417     (bug #102).
421 Changes since 3.0beta1
422 ######################
424 1)  Rework our smb signing code again, this factors out some of 
425     the common MAC calculation code, and now supports multiple 
426     outstanding packets (bug #40).
427 2)  Enforce 'client plaintext auth', 'client lanman auth' and 'client
428     ntlmv2 auth'.
429 3)  Correct timestamp problem on 64-bit machines (bug #140).
430 4)  Add extra debugging statements to winbindd for tracking down
431     failures.
432 5)  Fix bug when aliased 'winbind uid/gid' parameters are used.
433     ('winbind uid/gid' are now replaced with 'idmap uid/gid').
434 6)  Added an auth flag that indicates if we should be allowed 
435     to fall back to NTLMSSP for SASL if krb5 fails.
436 7)  Fixed the bug that forced us not to use the winbindd cache when 
437     we have a primary ADS domain and a secondary (trusted) NT4 
438     domain. 
439 8)  Use lp_realm() to find the default realm for 'net ads password'.
440 9)  Removed editreg from standard build until it is portable..
441 10) Fix domain membership for servers not running winbindd.
442 11) Correct race condition in determining the high water mark
443     in the idmap backend (bug #181).
444 12) Set the user's primary unix group from usrmgr.exe (partial 
445     fix for bug #45).
446 13) Show comments when doing 'net group -l' (bug #3).
447 14) Add trivial extension to 'net' to dump current local idmap
448     and restore mappings as well.
449 15) Modify 'net rpc vampire' to add new and existing users to
450     both the idmap and the SAM.  This code needs further testing.
451 16) Fix crash bug in ADS searches.
452 17) Build libnss_wins.so as part of nsswitch target (bug #160).
453 18) Make net rpc vampire return an error if the sam sync RPC 
454     returns an error.
455 19) Fail to join an NT 4 domain as a BDC if a workstation account
456     using our name exists.
457 20) Fix various memory leaks in server and client code
458 21) Remove the short option to --set-auth-user for wbinfo (-A) to 
459     prevent confusion with the -a option (bug #158).
460 22) Added new 'map acl inherit' parameter.
461 23) Removed unused 'privileges' code from group mapping database.
462 24) Don't segfault on empty passdb backend list (bug #136).
463 25) Fixed acl sorting algorithm for Windows 2000 clients.
464 26) Replace universal group cache with netsamlogon_cache 
465     from APPLIANCE_HEAD branch.
466 27) Fix autoconf detection issues surrounding --with-ads=yes
467     but no Krb5 header files installed (bug #152).
468 28) Add LDAP lookup for domain sequence number in case we are 
469     joined using NT4 protocols to a native mode AD domain.
470 29) Fix backend method selection for trusted NT 4 (or 2k 
471     mixed mode) domains. 
472 30) Fixed bug that caused us to enumerate domain local groups
473     from native mode AD domains other than our own.
474 31) Correct group enumeration for viewing in the Windows 
475     security tab (bug #110).
476 32) Consolidate the DC location code.
477 33) Moved 'ads server' functionality into 'password server' for
478     backwards compatibility.
479 34) Fix winbindd_idmap tdb upgrades from a 2.2 installation.
480     ( if you installed beta1, be sure to 
481       'mv idmap.tdb winbindd_idmap.tdb' ).
482 35) Fix pdb_ldap segfaults, and wrong default values for 
483     ldapsam_compat.
484 36) Enable negative connection cache for winbindd's ADS backend 
485     functions.
486 37) Enable address caching for active directory DC's so we don't 
487     have to hit DNS so much.
488 38) Fix bug in idmap code that caused mapping to randomly be 
489     redefined.
490 39) Add tdb locking code to prevent race condition when adding a 
491     new mapping to idmap.
492 40) Fix 'map to guest = bad user' when acting as a PDC supporting 
493     trust relationships.
494 41) Prevent deadlock issues when running winbindd on a Samba PDC 
495     to handle allocating uids & gids for trusted users and groups
496 42) added LOCALE patch from Steve Langasek (bug #122).
497 43) Add the 'guest' passdb backend automatically to the end of 
498     the 'passdb backend' list if 'guest account' has a valid 
499     username.
500 44) Remove samstrict_dc auth method.  Rework 'samstrict' to only 
501     handle our local names (or domain name if we are a PDC).  
502     Move existing permissive 'sam' method to 'sam_ignoredomain' 
503     and make 'samstrict' the new default 'sam' auth method.
504 45) Match Windows NT4/2k behavior when authenticating a user with
505     and unknown domain (default to our domain if we are a DC or 
506     domain member; default to our local name if we are a 
507     standalone server).
508 46) Fix Get_Pwnam() to always fall back to lookup 'user' if the 
509     'DOMAIN\user' lookup fails.  This matches 2.2. behavior.
510 47) Fix the trustdom_cache code to update the list of trusted 
511     domains when operating as a domain member and not using 
512     winbindd.
513 48) Remove 'nisplussam' passdb backend since it has suffered for 
514     too long without a maintainer.
515     
519 ######################################################################
520 Upgrading from a previous Samba 3.0 beta
521 ########################################
523 Beginning with Samba 3.0.0beta3, the RID allocation functions
524 have been moved into winbindd.  Previously these were handled
525 by each passdb backend.  This means that winbindd must be running
526 to automatically allocate RIDs for users and/or groups.  Otherwise,
527 smbd will use the 2.2 algorithm for generating new RIDs.
529 If you are using 'passdb backend = tdbsam' with a previous Samba 
530 3.0 beta release (or possibly alpha), it may be necessary to 
531 move the RID_COUNTER entry from /usr/local/samba/private/passdb.tdb
532 to winbindd_idmap.tdb.  To do this:
534 1)  Ensure that winbindd_idmap.tdb exists (launch winbindd at least 
535     once)
536 2)  build tdbtool by executing 'make tdbtool' in the source/tdb/ 
537     directory
538 3)  run: (note that 'tdb>' is the tool's prompt for input)
540        root# ./tdbtool /usr/local/samba/private/passdb.tdb
541        tdb> show RID_COUNTER
542        key 12 bytes
543        RID_COUNTER
544        data 4 bytes
545        [000] 0A 52 00 00                                       .R.
547        tdb> move RID_COUNTER /usr/local/samba/var/locks/winbindd_idmap.tdb
548        ....
549        record moved
551 If you are using 'passdb backend = ldapsam', it will be necessary to 
552 store idmap entries in the LDAP directory as well (i.e. idmap backend 
553 = ldap).  Refer to the 'net idmap' command for more information on 
554 migrating SID<->UNIX id mappings from one backend to another.
556 If the RID_COUNTER record does not exist, then these instructions are
557 unneccessary and the new RID_COUNTER record will be correctly generated
558 if needed.  
562 ########################
563 Upgrading from Samba 2.2
564 ########################
566 This section is provided to help administrators understand the details
567 involved with upgrading a Samba 2.2 server to Samba 3.0.
570 Building
571 --------
573 Many of the options to the GNU autoconf script have been modified 
574 in the 3.0 release.  The most noticeable are:
576   * removal of --with-tdbsam (is now included by default; see section
577     on passdb backends and authentication for more details)
578     
579   * --with-ldapsam is now on used to provided backward compatible
580     parameters for LDAP enabled Samba 2.2 servers.  Refer to the passdb 
581     backend and authentication section for more details
582   
583   * inclusion of non-standard passdb modules may be enabled using
584     --with-expsam.  This includes an XML backend and a mysql backend.
585       
586   * removal of --with-msdfs (is now enabled by default)
587   
588   * removal of --with-ssl (no longer supported)
589   
590   * --with-utmp now defaults to 'yes' on supported systems
591   
592   * --with-sendfile-support is now enabled by default on supported 
593     systems
594   
595     
596 Parameters
597 ----------
599 This section contains a brief listing of changes to smb.conf options
600 in the 3.0.0 release.  Please refer to the smb.conf(5) man page for
601 complete descriptions of new or modified parameters.
603 Removed Parameters (order alphabetically):
605   * admin log
606   * alternate permissions
607   * character set
608   * client codepage
609   * code page directory
610   * coding system
611   * domain admin group
612   * domain guest group
613   * force unknown acl user
614   * nt smb support
615   * postscript
616   * printer driver
617   * printer driver file
618   * printer driver location
619   * status
620   * strip dot
621   * total print jobs
622   * use rhosts
623   * valid chars
624   * vfs options
626 New Parameters (new parameters have been grouped by function):
628   Remote management
629   -----------------
630   * abort shutdown script
631   * shutdown script
633   User and Group Account Management
634   ---------------------------------
635   * add group script
636   * add machine script
637   * add user to group script
638   * algorithmic rid base
639   * delete group script
640   * delete user from group script
641   * passdb backend
642   * set primary group script
644   Authentication
645   --------------
646   * auth methods
647   * realm
649   Protocol Options
650   ----------------
651   * client lanman auth
652   * client NTLMv2 auth
653   * client schannel
654   * client signing
655   * client use spnego
656   * disable netbios
657   * ntlm auth
658   * paranoid server security
659   * server schannel
660   * server signing
661   * smb ports
662   * use spnego
664   File Service
665   ------------
666   * get quota command
667   * hide special files
668   * hide unwriteable files
669   * hostname lookups
670   * kernel change notify
671   * mangle prefix
672   * map acl inherit
673   * msdfs proxy
674   * set quota command
675   * use sendfile
676   * vfs objects
677   
678   Printing
679   --------
680   * max reported print jobs
682   UNICODE and Character Sets
683   --------------------------
684   * display charset
685   * dos charset
686   * unicode
687   * unix charset
688   
689   SID to uid/gid Mappings
690   -----------------------
691   * idmap backend
692   * idmap gid
693   * idmap uid
694   * winbind enable local accounts
695   * winbind trusted domains only
696   * template primary group
697   * enable rid algorithm
699   LDAP
700   ----
701   * ldap delete dn
702   * ldap group suffix
703   * ldap idmap suffix
704   * ldap machine suffix
705   * ldap passwd sync
706   * ldap user suffix
707   
708   General Configuration
709   ---------------------
710   * preload modules
711   * private dir
713 Modified Parameters (changes in behavior):
715   * encrypt passwords (enabled by default)
716   * mangling method (set to 'hash2' by default)
717   * passwd chat
718   * passwd program
719   * restrict anonymous (integer value)
720   * security (new 'ads' value)
721   * strict locking (enabled by default)
722   * unix extensions (enabled by default)
723   * winbind cache time (increased to 5 minutes)
724   * winbind uid (deprecated in favor of 'idmap uid')
725   * winbind gid (deprecated in favor of 'idmap gid')
728 Databases
729 ---------
731 This section contains brief descriptions of any new databases 
732 introduced in Samba 3.0.  Please remember to backup your existing 
733 ${lock directory}/*tdb before upgrading to Samba 3.0.  Samba will 
734 upgrade databases as they are opened (if necessary), but downgrading 
735 from 3.0 to 2.2 is an unsupported path.
737 Name                    Description                             Backup?
738 ----                    -----------                             -------
739 account_policy          User policy settings                    yes
740 gencache                Generic caching db                      no
741 group_mapping           Mapping table from Windows              yes
742                         groups/SID to unix groups        
743 winbindd_idmap          ID map table from SIDS to UNIX          yes
744                         uids/gids.
745 namecache               Name resolution cache entries           no
746 netsamlogon_cache       Cache of NET_USER_INFO_3 structure      no
747                         returned as part of a successful
748                         net_sam_logon request 
749 printing/*.tdb          Cached output from 'lpq                 no
750                         command' created on a per print 
751                         service basis
752 registry                Read-only samba registry skeleton       no
753                         that provides support for exporting
754                         various db tables via the winreg RPCs
757 Changes in Behavior
758 -------------------
760 The following issues are known changes in behavior between Samba 2.2 and 
761 Samba 3.0 that may affect certain installations of Samba.
763   1)  When operating as a member of a Windows domain, Samba 2.2 would 
764       map any users authenticated by the remote DC to the 'guest account'
765       if a uid could not be obtained via the getpwnam() call.  Samba 3.0
766       rejects the connection as NT_STATUS_LOGON_FAILURE.  There is no 
767       current work around to re-establish the 2.2 behavior.
768       
769   2)  When adding machines to a Samba 2.2 controlled domain, the 
770       'add user script' was used to create the UNIX identity of the 
771       machine trust account.  Samba 3.0 introduces a new 'add machine 
772       script' that must be specified for this purpose.  Samba 3.0 will
773       not fall back to using the 'add user script' in the absence of 
774       an 'add machine script'
775   
777 ######################################################################
778 Passdb Backends and Authentication
779 ##################################
781 There have been a few new changes that Samba administrators should be
782 aware of when moving to Samba 3.0.
784   1) encrypted passwords have been enabled by default in order to 
785      inter-operate better with out-of-the-box Windows client 
786      installations.  This does mean that either (a) a samba account
787      must be created for each user, or (b) 'encrypt passwords = no'
788      must be explicitly defined in smb.conf.
789     
790   2) Inclusion of new 'security = ads' option for integration 
791      with an Active Directory domain using the native Windows
792      Kerberos 5 and LDAP protocols.
794      MIT kerberos 1.3.1 supports the ARCFOUR-HMAC-MD5 encryption 
795      type which is neccessary for servers on which the 
796      administrator password has not been changed, or kerberos-enabled 
797      SMB connections to servers that require Kerberos SMB signing.
798      Besides this one difference, either MIT or Heimdal Kerberos
799      distributions are usable by Samba 3.0.
800      
802 Samba 3.0 also includes the possibility of setting up chains
803 of authentication methods (auth methods) and account storage 
804 backends (passdb backend).  Please refer to the smb.conf(5) 
805 man page for details.  While both parameters assume sane default 
806 values, it is likely that you will need to understand what the 
807 values actually mean in order to ensure Samba operates correctly.
809 The recommended passdb backends at this time are
811   * smbpasswd - 2.2 compatible flat file format
812   * tdbsam - attribute rich database intended as an smbpasswd
813     replacement for stand alone servers
814   * ldapsam - attribute rich account storage and retrieval 
815     backend utilizing an LDAP directory.  
816   * ldapsam_compat - a 2.2 backward compatible LDAP account 
817     backend
818     
819 Certain functions of the smbpasswd(8) tool have been split between the 
820 new smbpasswd(8) utility, the net(8) tool, and the new pdbedit(8) 
821 utility.  See the respective man pages for details.
822     
823      
824 ######################################################################
825 LDAP
826 ####
828 This section outlines the new features affecting Samba / LDAP 
829 integration.
831 New Schema
832 ----------
833   
834 A new object class (sambaSamAccount) has been introduced to replace 
835 the old sambaAccount.  This change aids us in the renaming of attributes 
836 to prevent clashes with attributes from other vendors.  There is a 
837 conversion script (examples/LDAP/convertSambaAccount) to modify and LDIF 
838 file to the new schema.
839   
840 Example:
841   
842         $ ldapsearch .... -b "ou=people,dc=..." > old.ldif
843         $ convertSambaAccount <DOM SID> old.ldif new.ldif
844         
845 The <DOM SID> can be obtained by running 'net getlocalsid <DOMAINNAME>' 
846 on the Samba PDC as root.
847     
848 The old sambaAccount schema may still be used by specifying the 
849 "ldapsam_compat" passdb backend.  However, the sambaAccount and
850 associated attributes have been moved to the historical section of
851 the schema file and must be uncommented before use if needed.
852 The 2.2 object class declaration for a sambaAccount has not changed
853 in the 3.0 samba.schema file. 
854   
855 Other new object classes and their uses include:
856   
857   * sambaDomain - domain information used to allocate rids 
858     for users and groups as necessary.  The attributes are added
859     in 'ldap suffix' directory entry automatically if 
860     an idmap uid/gid range has been set and the 'ldapsam'
861     passdb backend has been selected.
862       
863   * sambaGroupMapping - an object representing the 
864     relationship between a posixGroup and a Windows
865     group/SID.  These entries are stored in the 'ldap 
866     group suffix' and managed by the 'net groupmap' command.
867     
868   * sambaUnixIdPool - created in the 'ldap idmap suffix' entry 
869     automatically and contains the next available 'idmap uid' and 
870     'idmap gid'
871     
872   * sambaIdmapEntry - object storing a mapping between a 
873     SID and a UNIX uid/gid.  These objects are created by the 
874     idmap_ldap module as needed.
876   * sambaSidEntry - object representing a SID alone, as a Structural
877     class on which to build the sambaIdmapEntry.
879     
880 New Suffix for Searching
881 ------------------------
882   
883 The following new smb.conf parameters have been added to aid in directing
884 certain LDAP queries when 'passdb backend = ldapsam://...' has been
885 specified.
887   * ldap suffix         - used to search for user and computer accounts
888   * ldap user suffix    - used to store user accounts
889   * ldap machine suffix - used to store machine trust accounts
890   * ldap group suffix   - location of posixGroup/sambaGroupMapping entries
891   * ldap idmap suffix   - location of sambaIdmapEntry objects
893 If an 'ldap suffix' is defined, it will be appended to all of the 
894 remaining sub-suffix parameters.  In this case, the order of the suffix
895 listings in smb.conf is important.  Always place the 'ldap suffix' first
896 in the list.  
898 Due to a limitation in Samba's smb.conf parsing, you should not surround 
899 the DN's with quotation marks.
902 IdMap LDAP support
903 ------------------
905 Samba 3.0 supports an ldap backend for the idmap subsystem.  The 
906 following options would inform Samba that the idmap table should be
907 stored on the directory server onterose in the "ou=idmap,dc=plainjoe,
908 dc=org" partition.
910  [global]
911     ...
912     idmap backend     = ldap:ldap://onterose/
913     ldap idmap suffix = ou=idmap,dc=plainjoe,dc=org
914     idmap uid         = 40000-50000
915     idmap gid         = 40000-50000
917 This configuration allows winbind installations on multiple servers to
918 share a uid/gid number space, thus avoiding the interoperability problems
919 with NFS that were present in Samba 2.2.
920     
923 ######################################################################
924 Trust Relationships and a Samba Domain
925 ######################################
927 Samba 3.0.0beta2 is able to utilize winbindd as the means of 
928 allocating uids and gids to trusted users and groups.  More
929 information regarding Samba's support for establishing trust 
930 relationships can be found in the Samba-HOWTO-Collection included
931 in the docs/ directory of this release.
933 First create your Samba PDC and ensure that everything is 
934 working correctly before moving on the trusts.
936 To establish Samba as the trusting domain (named SAMBA) from a Windows NT
937 4.0 domain named WINDOWS:
939   1) create the trust account for SAMBA in "User Manager for Domains"
940   2) connect the trust from the Samba domain using
941      'net rpc trustdom establish GLASS'
943 To create a trustlationship with SAMBA as the trusted domain:
945   1) create the initial trust account for GLASS using
946      'smbpasswd -a -i GLASS'.  You may need to create a UNIX
947      account for GLASS$ prior to this step (depending on your
948      local configuration).
949   2) connect the trust from a WINDOWS DC using "User Manager
950      for Domains"
952 Now join winbindd on the Samba PDC to the SAMBA domain using
953 the normal steps for adding a Samba server to an NT4 domain:
954 (note that smbd & nmbd must be running at this point)
956    root# net rpc join -U root
957    Password: <enter root password from smbpasswd file here>
959 Start winbindd and test the join with 'wbinfo -t'.
961 Now test the trust relationship by connecting to the SAMBA DC
962 (e.g. POGO) as a user from the WINDOWS domain:
964    $ smbclient //pogo/netlogon -U Administrator -W WINDOWS
965    Password:
967 Now connect to the WINDOWS DC (e.g. CRYSTAL) as a Samba user:
969    $ smbclient //crystal/netlogon -U root -W WINDOWS
970    Password:
972 ######################################################################
973 Changes in Winbind
974 ##################
976 Beginning with Samba3.0.0beta3, winbindd has been given new account
977 manage functionality equivalent to the 'add user script' family of
978 smb.conf parameters.  The idmap design has also been changed to 
979 centralize control of foreign SID lookups and matching to UNIX 
980 uids and gids.
983 Brief Description of Changes
984 ----------------------------
986 1) The sid_to_uid() family of functions (smbd/uid.c) have been 
987    reverted to the 2.2.x design.  This means that when resolving a 
988    SID to a UID or similar mapping:
990         a) First consult winbindd
991         b) perform a local lookup only if winbindd fails to
992            return a successful answer
994    There are some variations to this, but these two rules generally
995    apply.
997 2) All idmap lookups have been moved into winbindd.  This means that
998    a server must run winbindd (and support NSS) in order to achieve
999    any mappings of SID to dynamically allocated UNIX ids.  This was
1000    a conscious design choice.
1002 3) New functions have been added to winbindd to emulate the 'add user 
1003    script' family of smbd functions without requiring that external
1004    scripts be defined.  This functionality is controlled by the 'winbind 
1005    enable local accounts' smb.conf parameter (enabled by default).
1007    However, this account management functionality is only supported 
1008    in a local tdb (winbindd_idmap.tdb).  If these new UNIX accounts 
1009    must be shared among multiple Samba servers (such as a PDC and BDCs), 
1010    it will be necessary to define your own 'add user script', et. al.
1011    programs that place the accounts/groups in some form of directory
1012    such as NIS or LDAP.  This requirement was deemed beyond the scope
1013    of winbind's account management functions.  Solutions for 
1014    distributing UNIX system information have been deployed and tested 
1015    for many years.  We saw no need to reinvent the wheel.
1017 4) A member of a Samba controlled domain running winbindd is now able 
1018    to map domain users directly onto existing UNIX accounts while still
1019    automatically creating accounts for trusted users and groups.  This
1020    behavior is controlled by the 'winbind trusted domains only' smb.conf
1021    parameter (disabled by default to provide 2.2.x winbind behavior).
1023 5) Group mapping support is wrapped in the local_XX_to_XX() functions
1024    in smbd/uid.c.  The reason that group mappings are not included
1025    in winbindd is because the purpose of Samba's group map is to
1026    match any Windows SID with an existing UNIX group.  These UNIX
1027    groups can be created by winbindd (see next section), but the
1028    SID<->gid mapping is retreived by smbd, not winbindd.
1031 Examples
1032 --------
1034 * security = server running winbindd to allocate accounts on demand
1036 * Samba PDC running winbindd to handle the automatic creation of UNIX
1037   identities for machine trust accounts
1039 * Automtically creating UNIX user and groups when migrating a Windows NT
1040   4.0 PDC to a Samba PDC.  Winbindd must be running when executing
1041   'net rpc vampire' for this to work.
1043    
1044 ######################################################################
1045 Known Issues
1046 ############
1048 * There are several bugs currently logged against the 3.0 codebase
1049   that affect the use of NT 4.0 GUI domain management tools when run
1050   against a Samba 3.0 PDC.  This bugs should be released in an early 
1051   3.0.x release.
1053 Please refer to https://bugzilla.samba.org/ for a current list of bugs 
1054 filed against the Samba 3.0 codebase.
1057 ######################################################################
1058 Reporting bugs & Development Discussion
1059 #######################################
1061 Please discuss this release on the samba-technical mailing list or by
1062 joining the #samba-technical IRC channel on irc.freenode.net.
1064 If you do report problems then please try to send high quality
1065 feedback. If you don't provide vital information to help us track down
1066 the problem then you will probably be ignored.  
1068 A new bugzilla installation has been established to help support the 
1069 Samba 3.0 community of users.  This server, located at 
1070 https://bugzilla.samba.org/, has replaced the older jitterbug server 
1071 previously located at http://bugs.samba.org/.