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