1 WHATS NEW IN Samba 3.0.0 beta3
3 ==============================
5 This is the third beta release of Samba 3.0.0. This is a
6 non-production release intended for testing purposes. Use
9 The purpose of this beta release is to get wider testing of the major
10 new pieces of code in the current Samba 3.0 development tree. We have
11 officially ceased development on the 2.2.x release of Samba and are
12 concentrating on Samba 3.0. To reduce the time before the final
13 Samba 3.0 release we need as many people as possible to start testing
14 these beta releases, and to provide high quality feedback on what
17 Samba 3.0 is feature complete. However there is still some final
18 work to be done on certain pieces of functionality. Please refer to
19 the section on "Known Issues" for more details.
25 1) Active Directory support. Samba 3.0 is now able to
26 to join a ADS realm as a member server and authenticate
27 users using LDAP/Kerberos.
29 2) Unicode support. Samba will now negotiate UNICODE on the wire and
30 internally there is now a much better infrastructure for multi-byte
31 and UNICODE character sets.
33 3) New authentication system. The internal authentication system has
34 been almost completely rewritten. Most of the changes are internal,
35 but the new auth system is also very configurable.
37 4) New filename mangling system. The filename mangling system has been
38 completely rewritten. An internal database now stores mangling maps
39 persistently. This needs lots of testing.
41 5) A new "net" command has been added. It is somewhat similar to
42 the "net" command in windows. Eventually we plan to replace
43 numerous other utilities (such as smbpasswd) with subcommands
46 6) Samba now negotiates NT-style status32 codes on the wire. This
47 improves error handling a lot.
49 7) Better Windows 2000/XP/2003 printing support including publishing
50 printer attributes in active directory.
52 8) New loadable RPC modules.
54 9) New dual-daemon winbindd support for better performance.
56 10) Support for migrating from a Windows NT 4.0 domain to a Samba
57 domain and maintaining user, group and domain SIDs.
59 11) Support for establishing trust relationships with Windows NT 4.0
62 12) Initial support for a distributed Winbind architecture using
63 an LDAP directory for storing SID to uid/gid mappings.
65 13) Major updates to the Samba documentation tree.
67 Plus lots of other improvements!
70 Additional Documentation
71 ------------------------
73 Please refer to Samba documentation tree (including in the docs/
74 subdirectory) for extensive explanations of installing, configuring
75 and maintaining Samba 3.0 servers and clients. It is advised to
76 begin with the Samba-HOWTO-Collection for overviews and specific
77 tasks (the current book is up to approximately 400 pages) and to
78 refer to the various man pages for information on individual options.
80 ######################################################################
81 Changes since 3.0beta2
82 ######################
84 Please refer to the CVS log for the SAMBA_3_0 branch for complete
87 1) Added fix for Japanese case names in statcache code;
88 these can change size on upper casing.
89 2) Correct issues with iconv detection in configure script
90 (support needed to find iconv libraries on FreeBSD).
91 3) Fix bug that caused a WINS server to be marked as dead
92 incorrectly (bug #190).
93 4) Removing additional deadlocks conditions that prevented
94 winbindd from running on a Samba PDC (used for trust
96 5) Add support for searching for Active Directory for
97 published printers (net ads printer search).
98 6) Separate UNIX username from DOMAIN\username in pipe
100 7) Auth modules now support returning NT_STATUS_NOT_IMPLEMENTED
101 for cases that they cannot handle.
102 8) Flush winbindd connection cache when the machine trust account
103 password is changed while a connection is open (bug #200).
104 9) Add support for 'OSVersion' server printer data string
105 (corrects problem with uploading printer drivers from
107 10) Numerous memory leak fixes.
108 11) LDAP fixes ("passdb backend = ldapsam" & "idmap backend = ldap"):
109 - Store domain SID in LDAP directory.
110 - store idmap information in existing entries (use sambaSID=...
111 if adding a new entry).
112 12) Fix incorrect usage of primary group SID when looking up user
114 13) Remove idmap_XX_to_XX calls from smbd. Move back to the the
115 winbind_XXX and local_XXX calls used in 2.2.
116 14) All uid/gid allocation must involve winbindd now
117 (we no attempt to map unknown SIDs to a UNIX identify).
118 15) Add 'winbind trusted domains only' parameter to force a domain
119 member. The server to use matching users names from /etc/passwd
120 for its domain (needed for domain member of a Samba domain).
121 16) Rename 'idmap only' to 'enable rid algorithm' for better clarity
123 17) Add support for multi-byte statcache code (bug #185)
124 18) Fix open mode race condition.
125 19) Implement winbindd local account management functions. Refer to
126 the "Winbind Changes" section for details.
127 20) Move RID allocation functions into idmap backend.
128 21) Fix parsing error that prevented publishing printers from a
129 Samba server in an AD domain.
130 22) Revive NTLMSSP support for named pipes.
131 23) More SCHANNEL fixes.
132 24) Correct SMB signing with NTLMSSP.
133 25) Fix coherency bug in print handle/printer object caching code
134 that could cause XP clients to infinitely loop while updating
135 their local printer cache.
136 26) Make winbindd use its dual-daemon mode by default (use -Y to
137 start as a single process).
138 27) Add support to nmbd and winbindd for 'smbcontrol <pid>
140 28) Correct problem with smbtar when dealing with files > 8Gb
145 Changes since 3.0beta1
146 ######################
148 1) Rework our smb signing code again, this factors out some of
149 the common MAC calculation code, and now supports multiple
150 outstanding packets (bug #40).
151 2) Enforce 'client plaintext auth', 'client lanman auth' and 'client
153 3) Correct timestamp problem on 64-bit machines (bug #140).
154 4) Add extra debugging statements to winbindd for tracking down
156 5) Fix bug when aliased 'winbind uid/gid' parameters are used.
157 ('winbind uid/gid' are now replaced with 'idmap uid/gid').
158 6) Added an auth flag that indicates if we should be allowed
159 to fall back to NTLMSSP for SASL if krb5 fails.
160 7) Fixed the bug that forced us not to use the winbindd cache when
161 we have a primary ADS domain and a secondary (trusted) NT4
163 8) Use lp_realm() to find the default realm for 'net ads password'.
164 9) Removed editreg from standard build until it is portable..
165 10) Fix domain membership for servers not running winbindd.
166 11) Correct race condition in determining the high water mark
167 in the idmap backend (bug #181).
168 12) Set the user's primary unix group from usrmgr.exe (partial
170 13) Show comments when doing 'net group -l' (bug #3).
171 14) Add trivial extension to 'net' to dump current local idmap
172 and restore mappings as well.
173 15) Modify 'net rpc vampire' to add new and existing users to
174 both the idmap and the SAM. This code needs further testing.
175 16) Fix crash bug in ADS searches.
176 17) Build libnss_wins.so as part of nsswitch target (bug #160).
177 18) Make net rpc vampire return an error if the sam sync RPC
179 19) Fail to join an NT 4 domain as a BDC if a workstation account
180 using our name exists.
181 20) Fix various memory leaks in server and client code
182 21) Remove the short option to --set-auth-user for wbinfo (-A) to
183 prevent confusion with the -a option (bug #158).
184 22) Added new 'map acl inherit' parameter.
185 23) Removed unused 'privileges' code from group mapping database.
186 24) Don't segfault on empty passdb backend list (bug #136).
187 25) Fixed acl sorting algorithm for Windows 2000 clients.
188 26) Replace universal group cache with netsamlogon_cache
189 from APPLIANCE_HEAD branch.
190 27) Fix autoconf detection issues surrounding --with-ads=yes
191 but no Krb5 header files installed (bug #152).
192 28) Add LDAP lookup for domain sequence number in case we are
193 joined using NT4 protocols to a native mode AD domain.
194 29) Fix backend method selection for trusted NT 4 (or 2k
196 30) Fixed bug that caused us to enumerate domain local groups
197 from native mode AD domains other than our own.
198 31) Correct group enumeration for viewing in the Windows
199 security tab (bug #110).
200 32) Consolidate the DC location code.
201 33) Moved 'ads server' functionality into 'password server' for
202 backwards compatibility.
203 34) Fix winbindd_idmap tdb upgrades from a 2.2 installation.
204 ( if you installed beta1, be sure to
205 'mv idmap.tdb winbindd_idmap.tdb' ).
206 35) Fix pdb_ldap segfaults, and wrong default values for
208 36) Enable negative connection cache for winbindd's ADS backend
210 37) Enable address caching for active directory DC's so we don't
211 have to hit DNS so much.
212 38) Fix bug in idmap code that caused mapping to randomly be
214 39) Add tdb locking code to prevent race condition when adding a
215 new mapping to idmap.
216 40) Fix 'map to guest = bad user' when acting as a PDC supporting
218 41) Prevent deadlock issues when running winbindd on a Samba PDC
219 to handle allocating uids & gids for trusted users and groups
220 42) added LOCALE patch from Steve Langasek (bug #122).
221 43) Add the 'guest' passdb backend automatically to the end of
222 the 'passdb backend' list if 'guest account' has a valid
224 44) Remove samstrict_dc auth method. Rework 'samstrict' to only
225 handle our local names (or domain name if we are a PDC).
226 Move existing permissive 'sam' method to 'sam_ignoredomain'
227 and make 'samstrict' the new default 'sam' auth method.
228 45) Match Windows NT4/2k behavior when authenticating a user with
229 and unknown domain (default to our domain if we are a DC or
230 domain member; default to our local name if we are a
232 46) Fix Get_Pwnam() to always fall back to lookup 'user' if the
233 'DOMAIN\user' lookup fails. This matches 2.2. behavior.
234 47) Fix the trustdom_cache code to update the list of trusted
235 domains when operating as a domain member and not using
237 48) Remove 'nisplussam' passdb backend since it has suffered for
238 too long without a maintainer.
243 ######################################################################
244 Upgrading from Samba 2.2
245 ########################
247 This section is provided to help administrators understand the details
248 involved with upgrading a Samba 2.2 server to Samba 3.0.
254 Many of the options to the GNU autoconf script have been modified
255 in the 3.0 release. The most noticeable are:
257 * removal of --with-tdbsam (is now included by default; see section
258 on passdb backends and authentication for more details)
260 * --with-ldapsam is now on used to provided backward compatible
261 parameters for LDAP enabled Samba 2.2 servers. Refer to the passdb
262 backend and authentication section for more details
264 * inclusion of non-standard passdb modules may be enabled using
265 --with-expsam. This includes an XML backend and a mysql backend.
267 * removal of --with-msdfs (is now enabled by default)
269 * removal of --with-ssl (no longer supported)
271 * --with-utmp now defaults to 'yes' on supported systems
273 * --with-sendfile-support is now enabled by default on supported
280 This section contains a brief listing of changes to smb.conf options
281 in the 3.0.0 release. Please refer to the smb.conf(5) man page for
282 complete descriptions of new or modified parameters.
284 Removed Parameters (order alphabetically):
287 * alternate permissions
290 * code page directory
294 * force unknown acl user
298 * printer driver file
299 * printer driver location
306 New Parameters (new parameters have been grouped by function):
310 * abort shutdown script
313 User and Group Account Management
314 ---------------------------------
317 * add user to group script
318 * algorithmic rid base
319 * delete group script
320 * delete user from group script
322 * set primary group script
338 * paranoid server security
347 * hide unwriteable files
349 * kernel change notify
359 * max reported print jobs
361 UNICODE and Character Sets
362 --------------------------
368 SID to uid/gid Mappings
369 -----------------------
373 * winbind enable local accounts
374 * winbind trusted domains only
375 * template primary group
376 * enable rid algorithm
383 * ldap machine suffix
388 General Configuration
389 ---------------------
393 Modified Parameters (changes in behavior):
395 * encrypt passwords (enabled by default)
396 * mangling method (set to 'hash2' by default)
399 * restrict anonymous (integer value)
400 * security (new 'ads' value)
401 * strict locking (enabled by default)
402 * winbind cache time (increased to 5 minutes)
403 * winbind uid (deprecated in favor of 'idmap uid')
404 * winbind gid (deprecated in favor of 'idmap gid')
410 This section contains brief descriptions of any new databases
411 introduced in Samba 3.0. Please remember to backup your existing
412 ${lock directory}/*tdb before upgrading to Samba 3.0. Samba will
413 upgrade databases as they are opened (if necessary), but downgrading
414 from 3.0 to 2.2 is an unsupported path.
416 Name Description Backup?
417 ---- ----------- -------
418 account_policy User policy settings yes
419 gencache Generic caching db no
420 group_mapping Mapping table from Windows yes
421 groups/SID to unix groups
422 winbindd_idmap ID map table from SIDS to UNIX yes
424 namecache Name resolution cache entries no
425 netsamlogon_cache Cache of NET_USER_INFO_3 structure no
426 returned as part of a successful
427 net_sam_logon request
428 printing/*.tdb Cached output from 'lpq no
429 command' created on a per print
431 registry Read-only samba registry skeleton no
432 that provides support for exporting
433 various db tables via the winreg RPCs
439 The following issues are known changes in behavior between Samba 2.2 and
440 Samba 3.0 that may affect certain installations of Samba.
442 1) When operating as a member of a Windows domain, Samba 2.2 would
443 map any users authenticated by the remote DC to the 'guest account'
444 if a uid could not be obtained via the getpwnam() call. Samba 3.0
445 rejects the connection as NT_STATUS_LOGON_FAILURE. There is no
446 current work around to re-establish the 2.2 behavior.
448 2) When adding machines to a Samba 2.2 controlled domain, the
449 'add user script' was used to create the UNIX identity of the
450 machine trust account. Samba 3.0 introduces a new 'add machine
451 script' that must be specified for this purpose. Samba 3.0 will
452 not fall back to using the 'add user script' in the absence of
453 an 'add machine script'
456 ######################################################################
457 Passdb Backends and Authentication
458 ##################################
460 There have been a few new changes that Samba administrators should be
461 aware of when moving to Samba 3.0.
463 1) encrypted passwords have been enabled by default in order to
464 inter-operate better with out-of-the-box Windows client
465 installations. This does mean that either (a) a samba account
466 must be created for each user, or (b) 'encrypt passwords = no'
467 must be explicitly defined in smb.conf.
469 2) Inclusion of new 'security = ads' option for integration
470 with an Active Directory domain using the native Windows
471 Kerberos 5 and LDAP protocols.
473 Samba 3.0 also includes the possibility of setting up chains
474 of authentication methods (auth methods) and account storage
475 backends (passdb backend). Please refer to the smb.conf(5)
476 man page for details. While both parameters assume sane default
477 values, it is likely that you will need to understand what the
478 values actually mean in order to ensure Samba operates correctly.
480 The recommended passdb backends at this time are
482 * smbpasswd - 2.2 compatible flat file format
483 * tdbsam - attribute rich database intended as an smbpasswd
484 replacement for stand alone servers
485 * ldapsam - attribute rich account storage and retrieval
486 backend utilizing an LDAP directory.
487 * ldapsam_compat - a 2.2 backward compatible LDAP account
490 Certain functions of the smbpasswd(8) tool have been split between the
491 new smbpasswd(8) utility, the net(8) tool, and the new pdbedit(8)
492 utility. See the respective man pages for details.
495 ######################################################################
499 This section outlines the new features affecting Samba / LDAP
505 A new object class (sambaSamAccount) has been introduced to replace
506 the old sambaAccount. This change aids us in the renaming of attributes
507 to prevent clashes with attributes from other vendors. There is a
508 conversion script (examples/LDAP/convertSambaAccount) to modify and LDIF
509 file to the new schema.
513 $ ldapsearch .... -b "ou=people,dc=..." > old.ldif
514 $ convertSambaAccount <DOM SID> old.ldif new.ldif
516 The <DOM SID> can be obtained by running 'net getlocalsid <DOMAINNAME>'
517 on the Samba PDC as root.
519 The old sambaAccount schema may still be used by specifying the
520 "ldapsam_compat" passdb backend. However, the sambaAccount and
521 associated attributes have been moved to the historical section of
522 the schema file and must be uncommented before use if needed.
523 The 2.2 object class declaration for a sambaAccount has not changed
524 in the 3.0 samba.schema file.
526 Other new object classes and their uses include:
528 * sambaDomain - domain information used to allocate rids
529 for users and groups as necessary. The attributes are added
530 in 'ldap suffix' directory entry automatically if
531 an idmap uid/gid range has been set and the 'ldapsam'
532 passdb backend has been selected.
534 * sambaGroupMapping - an object representing the
535 relationship between a posixGroup and a Windows
536 group/SID. These entries are stored in the 'ldap
537 group suffix' and managed by the 'net groupmap' command.
539 * sambaUnixIdPool - created in the 'ldap idmap suffix' entry
540 automatically and contains the next available 'idmap uid' and
543 * sambaIdmapEntry - object storing a mapping between a
544 SID and a UNIX uid/gid. These objects are created by the
545 idmap_ldap module as needed.
547 * sambaSidEntry - object representing a SID alone, as a Structural
548 class on which to build the sambaIdmapEntry.
551 New Suffix for Searching
552 ------------------------
554 The following new smb.conf parameters have been added to aid in directing
555 certain LDAP queries when 'passdb backend = ldapsam://...' has been
558 * ldap suffix - used to search for user and computer accounts
559 * ldap user suffix - used to store user accounts
560 * ldap machine suffix - used to store machine trust accounts
561 * ldap group suffix - location of posixGroup/sambaGroupMapping entries
562 * ldap idmap suffix - location of sambaIdmapEntry objects
564 If an 'ldap suffix' is defined, it will be appended to all of the
565 remaining sub-suffix parameters. In this case, the order of the suffix
566 listings in smb.conf is important. Always place the 'ldap suffix' first
569 Due to a limitation in Samba's smb.conf parsing, you should not surround
570 the DN's with quotation marks.
576 Samba 3.0 supports an ldap backend for the idmap subsystem. The
577 following options would inform Samba that the idmap table should be
578 stored on the directory server onterose in the "ou=idmap,dc=plainjoe,
583 idmap backend = ldap:ldap://onterose/
584 ldap idmap suffix = ou=idmap,dc=plainjoe,dc=org
585 idmap uid = 40000-50000
586 idmap gid = 40000-50000
588 This configuration allows winbind installations on multiple servers to
589 share a uid/gid number space, thus avoiding the interoperability problems
590 with NFS that were present in Samba 2.2.
594 ######################################################################
595 Trust Relationships and a Samba Domain
596 ######################################
598 Samba 3.0.0beta2 is able to utilize winbindd as the means of
599 allocating uids and gids to trusted users and groups. More
600 information regarding Samba's support for establishing trust
601 relationships can be found in the Samba-HOWTO-Collection included
602 in the docs/ directory of this release.
604 First create your Samba PDC and ensure that everything is
605 working correctly before moving on the trusts.
607 To establish Samba as the trusting domain (named SAMBA) from a Windows NT
608 4.0 domain named WINDOWS:
610 1) create the trust account for SAMBA in "User Manager for Domains"
611 2) connect the trust from the Samba domain using
612 'net rpc trustdom establish GLASS'
614 To create a trustlationship with SAMBA as the trusted domain:
616 1) create the initial trust account for GLASS using
617 'smbpasswd -a -i GLASS'. You may need to create a UNIX
618 account for GLASS$ prior to this step (depending on your
619 local configuration).
620 2) connect the trust from a WINDOWS DC using "User Manager
623 Now join winbindd on the Samba PDC to the SAMBA domain using
624 the normal steps for adding a Samba server to an NT4 domain:
625 (note that smbd & nmbd must be running at this point)
627 root# net rpc join -U root
628 Password: <enter root password from smbpasswd file here>
630 Start winbindd and test the join with 'wbinfo -t'.
632 Now test the trust relationship by connecting to the SAMBA DC
633 (e.g. POGO) as a user from the WINDOWS domain:
635 $ smbclient //pogo/netlogon -U Administrator -W WINDOWS
638 Now connect to the WINDOWS DC (e.g. CRYSTAL) as a Samba user:
640 $ smbclient //crystal/netlogon -U root -W WINDOWS
643 ######################################################################
647 Beginning with Samba3.0.0beta3, winbindd has been given new account
648 manage functionality equivalent to the 'add user script' family of
649 smb.conf parameters. The idmap design has also been changed to
650 centralize control of foreign SID lookups and matching to UNIX
654 Brief Description of Changes
655 ----------------------------
657 1) The sid_to_uid() family of functions (smbd/uid.c) have been
658 reverted to the 2.2.x design. This means that when resolving a
659 SID to a UID or similar mapping:
661 a) First consult winbindd
662 b) perform a local lookup only if winbindd fails to
663 return a successful answer
665 There are some variations to this, but these two rules generally
668 2) All idmap lookups have been moved into winbindd. This means that
669 a server must run winbindd (and support NSS) in order to achieve
670 any mappings of SID to dynamically allocated UNIX ids. This was
671 a conscious design choice.
673 3) New functions have been added to winbindd to emulate the 'add user
674 script' family of smbd functions without requiring that external
675 scripts be defined. This functionality is controlled by the 'winbind
676 enable local accounts' smb.conf parameter (enabled by default).
678 However, this account management functionality is only supported
679 in a local tdb (winbindd_idmap.tdb). If these new UNIX accounts
680 must be shared among multiple Samba servers (such as a PDC and BDCs),
681 it will be necessary to define your own 'add user script', et. al.
682 programs that place the accounts/groups in some form of directory
683 such as NIS or LDAP. This requirement was deemed beyond the scope
684 of winbind's account management functions. Solutions for
685 distributing UNIX system information have been deployed and tested
686 for many years. We saw no need to reinvent the wheel.
688 4) A member of a Samba controlled domain running winbindd is now able
689 to map domain users directly onto existing UNIX accounts while still
690 automatically creating accounts for trusted users and groups. This
691 behavior is controlled by the 'winbind trusted domains only' smb.conf
692 parameter (disabled by default to provide 2.2.x winbind behavior).
694 5) Group mapping support is wrapped in the local_XX_to_XX() functions
695 in smbd/uid.c. The reason that group mappings are not included
696 in winbindd is because the purpose of Samba's group map is to
697 match any Windows SID with an existing UNIX group. These UNIX
698 groups can be created by winbindd (see next section), but the
699 SID<->gid mapping is retreived by smbd, not winbindd.
705 * security = server running winbindd to allocate accounts on demand
707 * Samba PDC running winbindd to handle the automatic creation of UNIX
708 identities for machine trust accounts
710 * Automtically creating UNIX user and groups when migrating a Windows NT
711 4.0 PDC to a Samba PDC. Winbindd must be running when executing
712 'net rpc vampire' for this to work.
715 ######################################################################
719 * The smbldap perl scripts for managing user entries in an LDAP
720 directory have not be updated to function with the Samba 3.0
721 schema changes. This (or an equivalent solution) work is planned
722 to be completed prior to the stable 3.0.0 release.
724 Please refer to https://bugzilla.samba.org/ for a current list of bugs
725 filed against the Samba 3.0 codebase.
728 ######################################################################
729 Reporting bugs & Development Discussion
730 #######################################
732 Please discuss this release on the samba-technical mailing list or by
733 joining the #samba-technical IRC channel on irc.freenode.net.
735 If you do report problems then please try to send high quality
736 feedback. If you don't provide vital information to help us track down
737 the problem then you will probably be ignored.
739 A new bugzilla installation has been established to help support the
740 Samba 3.0 community of users. This server, located at
741 https://bugzilla.samba.org/, will replace the existing jitterbug server
742 and the old http://bugs.samba.org now points to the new bugzilla server.