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