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