1 WHATS NEW IN Samba 3.0.1pre1
3 ==============================
5 This is a preview release of the Samba 3.0.1 code base and is
6 provided for testing only. This release is *not* intended for
7 production servers. Use at your own risk.
9 There have been several bug fixes since the 3.0.0 releaser that
10 we feel are important to make available to the Samba community
11 for wider testings. See the "Changes" section for details on
15 ######################################################################
22 Please refer to the CVS log for the SAMBA_3_0 branch for complete
27 * mangled map (deprecated)
30 * mangled stack (unused)
33 1) Change the interface for init_unistr2 to not take a length
34 but a flags field. We were assuming that
35 2*strlen(mb_string) == length of ucs2-le string. (bug 480).
36 2) Allow d_printf() to handle strings with escaped quotation
37 marks since the msg file includes the escape character (bug 489).
38 3) Fix bad html table row termination in SWAT wizard code (bug 413).
39 4) Fix to parse the level-2 strings.
40 5) Fix for "valid users = %S" in [homes]. Fix read/write
42 6) Change AC_CHECK_LIB_EXT to prepend libraries instead of append.
43 This is the same way AC_CHECK_LIB works (bug 508).
44 7) Testparm output fixes for clarity.
45 8) Fix broken wins hook functionality -- i18n bug (bug 528).
46 9) Take care of condition where DOS and NT error codes must differ.
47 10) Default to using only built-in charsets when a working iconv
48 implementation cannot be located.
49 11) Wrap internals of sys_setgroups() so the sys_XX() call can
50 be done unconditionally (bug 550).
51 12) Remove duplicate smbspool link on SWAT's front page (bug 541).
52 13) Save and restore CFLAGS before/after AC_PROG_CC. Ensures that
53 --enable-debug=[yes|no] works correctly.
54 14) Allow ^C to interrupt smbpasswd if using our getpass
55 (e.g. smbpasswd command).
56 15) Support signing only on RPC's (bug 167).
57 16) Correct bug that prevented Excel 2000 clients from opening
58 files marked as read-only.
59 17) Portability fix bugs 546 - 549).
60 18) Explicitly initialize the value of AR for vendor makes that don't
61 do this (e.g. HPUX 11). (bug 552).
62 19) More i18n fixes for SWAT (bug 413).
63 20) Change the cwd before the postexec script to ensure that a
65 21) Correct double free that caused winbindd to crash when a DC
66 is rebooted (bug 437).
67 22) Fix incorrect mode sum (bug 562).
68 23) Canonicalize SMB_INFO_ALLOCATION in the same was as
69 SMB_FS_FULL_SIZE_INFORMATION (bug 564).
70 24) Add script to generate *msg files.
71 25) Add Dutch SWAT translation file.
72 26) Make sure to call get_user_groups() with the full winbindd
73 name for a user if he/she has one (bug 406).
74 27) Fix up error code returns from Samba4 tester. Ensure invalid
75 paths are validated the same way.
76 28) Allow Samba3 to pass the Samba4 RAW-READ tests.
77 29) Refuse to configure if --with-expsam=$BACKEND was used but no
78 libraries were found for $BACKEND.
79 30) Move sysquotas autoconf tests to a separate file.
80 31) Match W2K w.r.t. writelock and writeclose. Samba4 torture
82 32) Make sure that the files that contain the static_init_$subsystem;
83 macro get recompiled after configure by removing the object
85 33) Ensure canceling a blocking lock returns the correct error
87 34) Match Samba 2.2, and make ACB_NORMAL the default ACB value.
91 ######################################################################
93 =======================================
94 The original 3.0.0 release notes follow
95 =======================================
101 1) Active Directory support. Samba 3.0 is now able to
102 join a ADS realm as a member server and authenticate
103 users using LDAP/Kerberos.
105 2) Unicode support. Samba will now negotiate UNICODE on the wire
106 and internally there is now a much better infrastructure for
107 multi-byte and UNICODE character sets.
109 3) New authentication system. The internal authentication system
110 has been almost completely rewritten. Most of the changes are
111 internal, but the new auth system is also very configurable.
113 4) New default filename mangling system.
115 5) A new "net" command has been added. It is somewhat similar to
116 the "net" command in windows. Eventually we plan to replace
117 numerous other utilities (such as smbpasswd) with subcommands
120 6) Samba now negotiates NT-style status32 codes on the wire. This
121 improves error handling a lot.
123 7) Better Windows 2000/XP/2003 printing support including publishing
124 printer attributes in active directory.
126 8) New loadable module support for passdb backends and character
129 9) New default dual-daemon winbindd support for better performance.
131 10) Support for migrating from a Windows NT 4.0 domain to a Samba
132 domain and maintaining user, group and domain SIDs.
134 11) Support for establishing trust relationships with Windows NT 4.0
137 12) Initial support for a distributed Winbind architecture using
138 an LDAP directory for storing SID to uid/gid mappings.
140 13) Major updates to the Samba documentation tree.
142 14) Full support for client and server SMB signing to ensure
143 compatibility with default Windows 2003 security settings.
145 15) Improvement of ACL mapping features based on code donated by
149 Plus lots of other improvements!
152 Additional Documentation
153 ------------------------
155 Please refer to Samba documentation tree (included in the docs/
156 subdirectory) for extensive explanations of installing, configuring
157 and maintaining Samba 3.0 servers and clients. It is advised to
158 begin with the Samba-HOWTO-Collection for overviews and specific
159 tasks (the current book is up to approximately 400 pages) and to
160 refer to the various man pages for information on individual options.
162 We are very glad to be able to include the second edition of
163 "Using Samba" by Jay Ts, Robert Eckstein, and David Collier-Brown
164 (O'Reilly & Associates) in this release. The book is available
165 on-line at http://samba.org/samba/docs/ and is included with
166 the Samba Web Administration Tool (SWAT). Thanks to the authors and
167 publisher for making "Using Samba" under the GNU Free Documentation
171 ######################################################################
172 Upgrading from a previous Samba 3.0 beta
173 ########################################
175 Beginning with Samba 3.0.0beta3, the RID allocation functions
176 have been moved into winbindd. Previously these were handled
177 by each passdb backend. This means that winbindd must be running
178 to automatically allocate RIDs for users and/or groups. Otherwise,
179 smbd will use the 2.2 algorithm for generating new RIDs.
181 If you are using 'passdb backend = tdbsam' with a previous Samba
182 3.0 beta release (or possibly alpha), it may be necessary to
183 move the RID_COUNTER entry from /usr/local/samba/private/passdb.tdb
184 to winbindd_idmap.tdb. To do this:
186 1) Ensure that winbindd_idmap.tdb exists (launch winbindd at least
188 2) build tdbtool by executing 'make tdbtool' in the source/tdb/
190 3) run: (note that 'tdb>' is the tool's prompt for input)
192 root# ./tdbtool /usr/local/samba/private/passdb.tdb
193 tdb> show RID_COUNTER
197 [000] 0A 52 00 00 .R.
199 tdb> move RID_COUNTER /usr/local/samba/var/locks/winbindd_idmap.tdb
203 If you are using 'passdb backend = ldapsam', it will be necessary to
204 store idmap entries in the LDAP directory as well (i.e. idmap backend
205 = ldap). Refer to the 'net idmap' command for more information on
206 migrating SID<->UNIX id mappings from one backend to another.
208 If the RID_COUNTER record does not exist, then these instructions are
209 unneccessary and the new RID_COUNTER record will be correctly generated
214 ########################
215 Upgrading from Samba 2.2
216 ########################
218 This section is provided to help administrators understand the details
219 involved with upgrading a Samba 2.2 server to Samba 3.0.
225 Many of the options to the GNU autoconf script have been modified
226 in the 3.0 release. The most noticeable are:
228 * removal of --with-tdbsam (is now included by default; see section
229 on passdb backends and authentication for more details)
231 * --with-ldapsam is now on used to provided backward compatible
232 parameters for LDAP enabled Samba 2.2 servers. Refer to the passdb
233 backend and authentication section for more details
235 * inclusion of non-standard passdb modules may be enabled using
236 --with-expsam. This includes an XML backend and a mysql backend.
238 * removal of --with-msdfs (is now enabled by default)
240 * removal of --with-ssl (no longer supported)
242 * --with-utmp now defaults to 'yes' on supported systems
244 * --with-sendfile-support is now enabled by default on supported
251 This section contains a brief listing of changes to smb.conf options
252 in the 3.0.0 release. Please refer to the smb.conf(5) man page for
253 complete descriptions of new or modified parameters.
255 Removed Parameters (order alphabetically):
258 * alternate permissions
261 * code page directory
265 * force unknown acl user
269 * printer driver file
270 * printer driver location
278 New Parameters (new parameters have been grouped by function):
282 * abort shutdown script
285 User and Group Account Management
286 ---------------------------------
289 * add user to group script
290 * algorithmic rid base
291 * delete group script
292 * delete user from group script
294 * set primary group script
310 * paranoid server security
320 * hide unwriteable files
322 * kernel change notify
332 * max reported print jobs
334 UNICODE and Character Sets
335 --------------------------
341 SID to uid/gid Mappings
342 -----------------------
346 * winbind enable local accounts
347 * winbind trusted domains only
348 * template primary group
349 * enable rid algorithm
356 * ldap machine suffix
360 General Configuration
361 ---------------------
365 Modified Parameters (changes in behavior):
367 * encrypt passwords (enabled by default)
368 * mangling method (set to 'hash2' by default)
371 * restrict anonymous (integer value)
372 * security (new 'ads' value)
373 * strict locking (enabled by default)
374 * unix extensions (enabled by default)
375 * winbind cache time (increased to 5 minutes)
376 * winbind uid (deprecated in favor of 'idmap uid')
377 * winbind gid (deprecated in favor of 'idmap gid')
383 This section contains brief descriptions of any new databases
384 introduced in Samba 3.0. Please remember to backup your existing
385 ${lock directory}/*tdb before upgrading to Samba 3.0. Samba will
386 upgrade databases as they are opened (if necessary), but downgrading
387 from 3.0 to 2.2 is an unsupported path.
389 Name Description Backup?
390 ---- ----------- -------
391 account_policy User policy settings yes
392 gencache Generic caching db no
393 group_mapping Mapping table from Windows yes
394 groups/SID to unix groups
395 winbindd_idmap ID map table from SIDS to UNIX yes
397 namecache Name resolution cache entries no
398 netsamlogon_cache Cache of NET_USER_INFO_3 structure no
399 returned as part of a successful
400 net_sam_logon request
401 printing/*.tdb Cached output from 'lpq no
402 command' created on a per print
404 registry Read-only samba registry skeleton no
405 that provides support for exporting
406 various db tables via the winreg RPCs
412 The following issues are known changes in behavior between Samba 2.2 and
413 Samba 3.0 that may affect certain installations of Samba.
415 1) When operating as a member of a Windows domain, Samba 2.2 would
416 map any users authenticated by the remote DC to the 'guest account'
417 if a uid could not be obtained via the getpwnam() call. Samba 3.0
418 rejects the connection as NT_STATUS_LOGON_FAILURE. There is no
419 current work around to re-establish the 2.2 behavior.
421 2) When adding machines to a Samba 2.2 controlled domain, the
422 'add user script' was used to create the UNIX identity of the
423 machine trust account. Samba 3.0 introduces a new 'add machine
424 script' that must be specified for this purpose. Samba 3.0 will
425 not fall back to using the 'add user script' in the absence of
426 an 'add machine script'
429 ######################################################################
430 Passdb Backends and Authentication
431 ##################################
433 There have been a few new changes that Samba administrators should be
434 aware of when moving to Samba 3.0.
436 1) encrypted passwords have been enabled by default in order to
437 inter-operate better with out-of-the-box Windows client
438 installations. This does mean that either (a) a samba account
439 must be created for each user, or (b) 'encrypt passwords = no'
440 must be explicitly defined in smb.conf.
442 2) Inclusion of new 'security = ads' option for integration
443 with an Active Directory domain using the native Windows
444 Kerberos 5 and LDAP protocols.
446 MIT kerberos 1.3.1 supports the ARCFOUR-HMAC-MD5 encryption
447 type which is neccessary for servers on which the
448 administrator password has not been changed, or kerberos-enabled
449 SMB connections to servers that require Kerberos SMB signing.
450 Besides this one difference, either MIT or Heimdal Kerberos
451 distributions are usable by Samba 3.0.
454 Samba 3.0 also includes the possibility of setting up chains
455 of authentication methods (auth methods) and account storage
456 backends (passdb backend). Please refer to the smb.conf(5)
457 man page for details. While both parameters assume sane default
458 values, it is likely that you will need to understand what the
459 values actually mean in order to ensure Samba operates correctly.
461 The recommended passdb backends at this time are
463 * smbpasswd - 2.2 compatible flat file format
464 * tdbsam - attribute rich database intended as an smbpasswd
465 replacement for stand alone servers
466 * ldapsam - attribute rich account storage and retrieval
467 backend utilizing an LDAP directory.
468 * ldapsam_compat - a 2.2 backward compatible LDAP account
471 Certain functions of the smbpasswd(8) tool have been split between the
472 new smbpasswd(8) utility, the net(8) tool, and the new pdbedit(8)
473 utility. See the respective man pages for details.
476 ######################################################################
480 This section outlines the new features affecting Samba / LDAP
486 A new object class (sambaSamAccount) has been introduced to replace
487 the old sambaAccount. This change aids us in the renaming of attributes
488 to prevent clashes with attributes from other vendors. There is a
489 conversion script (examples/LDAP/convertSambaAccount) to modify and LDIF
490 file to the new schema.
494 $ ldapsearch .... -b "ou=people,dc=..." > old.ldif
495 $ convertSambaAccount <DOM SID> old.ldif new.ldif
497 The <DOM SID> can be obtained by running 'net getlocalsid <DOMAINNAME>'
498 on the Samba PDC as root.
500 The old sambaAccount schema may still be used by specifying the
501 "ldapsam_compat" passdb backend. However, the sambaAccount and
502 associated attributes have been moved to the historical section of
503 the schema file and must be uncommented before use if needed.
504 The 2.2 object class declaration for a sambaAccount has not changed
505 in the 3.0 samba.schema file.
507 Other new object classes and their uses include:
509 * sambaDomain - domain information used to allocate rids
510 for users and groups as necessary. The attributes are added
511 in 'ldap suffix' directory entry automatically if
512 an idmap uid/gid range has been set and the 'ldapsam'
513 passdb backend has been selected.
515 * sambaGroupMapping - an object representing the
516 relationship between a posixGroup and a Windows
517 group/SID. These entries are stored in the 'ldap
518 group suffix' and managed by the 'net groupmap' command.
520 * sambaUnixIdPool - created in the 'ldap idmap suffix' entry
521 automatically and contains the next available 'idmap uid' and
524 * sambaIdmapEntry - object storing a mapping between a
525 SID and a UNIX uid/gid. These objects are created by the
526 idmap_ldap module as needed.
528 * sambaSidEntry - object representing a SID alone, as a Structural
529 class on which to build the sambaIdmapEntry.
532 New Suffix for Searching
533 ------------------------
535 The following new smb.conf parameters have been added to aid in directing
536 certain LDAP queries when 'passdb backend = ldapsam://...' has been
539 * ldap suffix - used to search for user and computer accounts
540 * ldap user suffix - used to store user accounts
541 * ldap machine suffix - used to store machine trust accounts
542 * ldap group suffix - location of posixGroup/sambaGroupMapping entries
543 * ldap idmap suffix - location of sambaIdmapEntry objects
545 If an 'ldap suffix' is defined, it will be appended to all of the
546 remaining sub-suffix parameters. In this case, the order of the suffix
547 listings in smb.conf is important. Always place the 'ldap suffix' first
550 Due to a limitation in Samba's smb.conf parsing, you should not surround
551 the DN's with quotation marks.
557 Samba 3.0 supports an ldap backend for the idmap subsystem. The
558 following options would inform Samba that the idmap table should be
559 stored on the directory server onterose in the "ou=idmap,dc=plainjoe,
564 idmap backend = ldap:ldap://onterose/
565 ldap idmap suffix = ou=idmap,dc=plainjoe,dc=org
566 idmap uid = 40000-50000
567 idmap gid = 40000-50000
569 This configuration allows winbind installations on multiple servers to
570 share a uid/gid number space, thus avoiding the interoperability problems
571 with NFS that were present in Samba 2.2.
575 ######################################################################
576 Trust Relationships and a Samba Domain
577 ######################################
579 Samba 3.0.0beta2 is able to utilize winbindd as the means of
580 allocating uids and gids to trusted users and groups. More
581 information regarding Samba's support for establishing trust
582 relationships can be found in the Samba-HOWTO-Collection included
583 in the docs/ directory of this release.
585 First create your Samba PDC and ensure that everything is
586 working correctly before moving on the trusts.
588 To establish Samba as the trusting domain (named SAMBA) from a Windows NT
589 4.0 domain named WINDOWS:
591 1) create the trust account for SAMBA in "User Manager for Domains"
592 2) connect the trust from the Samba domain using
593 'net rpc trustdom establish GLASS'
595 To create a trustlationship with SAMBA as the trusted domain:
597 1) create the initial trust account for GLASS using
598 'smbpasswd -a -i GLASS'. You may need to create a UNIX
599 account for GLASS$ prior to this step (depending on your
600 local configuration).
601 2) connect the trust from a WINDOWS DC using "User Manager
604 Now join winbindd on the Samba PDC to the SAMBA domain using
605 the normal steps for adding a Samba server to an NT4 domain:
606 (note that smbd & nmbd must be running at this point)
608 root# net rpc join -U root
609 Password: <enter root password from smbpasswd file here>
611 Start winbindd and test the join with 'wbinfo -t'.
613 Now test the trust relationship by connecting to the SAMBA DC
614 (e.g. POGO) as a user from the WINDOWS domain:
616 $ smbclient //pogo/netlogon -U Administrator -W WINDOWS
619 Now connect to the WINDOWS DC (e.g. CRYSTAL) as a Samba user:
621 $ smbclient //crystal/netlogon -U root -W WINDOWS
624 ######################################################################
628 Beginning with Samba3.0.0beta3, winbindd has been given new account
629 manage functionality equivalent to the 'add user script' family of
630 smb.conf parameters. The idmap design has also been changed to
631 centralize control of foreign SID lookups and matching to UNIX
635 Brief Description of Changes
636 ----------------------------
638 1) The sid_to_uid() family of functions (smbd/uid.c) have been
639 reverted to the 2.2.x design. This means that when resolving a
640 SID to a UID or similar mapping:
642 a) First consult winbindd
643 b) perform a local lookup only if winbindd fails to
644 return a successful answer
646 There are some variations to this, but these two rules generally
649 2) All idmap lookups have been moved into winbindd. This means that
650 a server must run winbindd (and support NSS) in order to achieve
651 any mappings of SID to dynamically allocated UNIX ids. This was
652 a conscious design choice.
654 3) New functions have been added to winbindd to emulate the 'add user
655 script' family of smbd functions without requiring that external
656 scripts be defined. This functionality is controlled by the 'winbind
657 enable local accounts' smb.conf parameter (enabled by default).
659 However, this account management functionality is only supported
660 in a local tdb (winbindd_idmap.tdb). If these new UNIX accounts
661 must be shared among multiple Samba servers (such as a PDC and BDCs),
662 it will be necessary to define your own 'add user script', et. al.
663 programs that place the accounts/groups in some form of directory
664 such as NIS or LDAP. This requirement was deemed beyond the scope
665 of winbind's account management functions. Solutions for
666 distributing UNIX system information have been deployed and tested
667 for many years. We saw no need to reinvent the wheel.
669 4) A member of a Samba controlled domain running winbindd is now able
670 to map domain users directly onto existing UNIX accounts while still
671 automatically creating accounts for trusted users and groups. This
672 behavior is controlled by the 'winbind trusted domains only' smb.conf
673 parameter (disabled by default to provide 2.2.x winbind behavior).
675 5) Group mapping support is wrapped in the local_XX_to_XX() functions
676 in smbd/uid.c. The reason that group mappings are not included
677 in winbindd is because the purpose of Samba's group map is to
678 match any Windows SID with an existing UNIX group. These UNIX
679 groups can be created by winbindd (see next section), but the
680 SID<->gid mapping is retreived by smbd, not winbindd.
686 * security = server running winbindd to allocate accounts on demand
688 * Samba PDC running winbindd to handle the automatic creation of UNIX
689 identities for machine trust accounts
691 * Automtically creating UNIX user and groups when migrating a Windows NT
692 4.0 PDC to a Samba PDC. Winbindd must be running when executing
693 'net rpc vampire' for this to work.
696 ######################################################################
700 * There are several bugs currently logged against the 3.0 codebase
701 that affect the use of NT 4.0 GUI domain management tools when run
702 against a Samba 3.0 PDC. This bugs should be released in an early
705 Please refer to https://bugzilla.samba.org/ for a current list of bugs
706 filed against the Samba 3.0 codebase.
709 ######################################################################
710 Reporting bugs & Development Discussion
711 #######################################
713 Please discuss this release on the samba-technical mailing list or by
714 joining the #samba-technical IRC channel on irc.freenode.net.
716 If you do report problems then please try to send high quality
717 feedback. If you don't provide vital information to help us track down
718 the problem then you will probably be ignored.
720 A new bugzilla installation has been established to help support the
721 Samba 3.0 community of users. This server, located at
722 https://bugzilla.samba.org/, has replaced the older jitterbug server
723 previously located at http://bugs.samba.org/.