This is an intermediate commit.
[Samba.git] / WHATSNEW.txt
blob24019eeb5041b8901819fe688f2c60b3b4338e4d
1               WHATS NEW IN Samba 2.2.3a  - 6th February 2002
2               ==============================================
4 This is the latest stable release of Samba. This is the version that all
5 production Samba servers should be running for all current bug-fixes.
7 There are several important scaling bugs that have been fixed in this release
8 for large server systems so an upgrade is recommended.
10 Change from 2.2.3
11 -----------------
13 This is a minor bugfix release for the 2.2.3 release. The 2.2.3
14 release had a problem that was visible to Windows 2000 Explorer
15 users in that copying files into a share that already existed 
16 failed with "Access Denied" rather than asking the user if an
17 overwrite was required. This was due to an incorrect error mapping
18 between the UNIX EEXIST error code and the NT status error.
20 As Windows Explorer is a highly visible end user application a quick
21 bugfix release was required, hence 2.2.3a.
23 Compilation on HPUX versions earlier than HPUX 11 has also been
24 corrected.
26 The cvs.log file is no longer included with this release, as it adds
27 13Mb to the size of the release, and is easily available on the Web.
29 LDAP update
30 -----------
32 Much work has been done on the LDAP backend code. The configure
33 option --with-ldapsam is now considered to be stable. The schema
34 used has changed, see the file examples/LDAP/samba.schema for the
35 new schema.
37 New documentation explaining how to set up a Samba only PDC/BDC
38 setup has been added in the files Samba-LDAP-HOWTO and Samba-BDC-HOWTO
39 in the documentation tree.
41 winbindd daemon extended
42 ------------------------
44 Samba 2.2.2 was the first release to include the winbind daemon.
45 This code allows UNIX systems that implement the name service
46 switch (nss) to be entered into a Windows NT/2000 domain and
47 use the Domain controller for all user and group enumeration.
49 Samba 2.2.3 fixes the known memory leaks in winbindd and has
50 been extended to work with SGI IRIX and HPUX (11.x) in addition
51 to the earlier targets of Linux and Solaris.
53 For more information on using winbind, see the man pages for 
54 winbindd and wbinfo.
56 Note that winbindd is not installed by default.
58 New/Changed parameters in 2.2.3a
59 --------------------------------
61 For more information on these parameters, see the man pages for
62 smb.conf.
64 Added/changed parameters.
65 -------------------------
67 unix extensions
69 Enables the experimental UNIX CIFS extensions in smbd. See the manpage
70 for more details.
72 default devmode
74 Some printer drivers will crash the Windows NT/2000 spooler service
75 if they are given a default devmode, some require it. This parameter
76 allows the administrator a choice of whether smbd returns such a 
77 default devmode for a driver.
79 share modes
81 This parameter has been restored to allow people who wish smbd to ignore
82 client share modes. This is *very dangerous* and should not be set without
83 full knowledge of what this is designed for.
85 Changes in 2.2.3
86 -----------------
88 1). Fixed shared library compile for Solaris with native compiler.
89 2). UNIX CIFS extensions code added (donated by HP).
90 3). Changed to using NT status codes on the wire if the client can support
91 this.
92 4). altname command to show 8.3 name added to smbclient.
93 5). const-safe endian macros now used.
94 6). client code now uses UNICODE on the wire.
95 7). Correctly return fault PDU's on bad handle.
96 8). Improved NT error code mapping table.
97 9). Many new point and print RPC calls added.
98 10). Win9x clients can now see full user list.
99 11). fileid added to identify simultaneous open files (no longer
100 use dev/inode/time as unique value).
101 12). HPUX ACL code added (donated by HP).
102 13). vfs interfaces updated (again !).
103 14). MSDOS Code Page 866 -> 1251 mapping added.
104 15). winbindd now processes quit/hup signals correctly.
105 16). No tdb traversal done on startup/shutdown - ensures scalability.
106 17). Fix bug with paths for homes share.
107 18). Fixed copyfile for OS/2.
108 19). Fix group membership when groups are on more than one line.
109 20). Fixed core dumps in posix ACL mapping code.
110 21). Tidyup of UNICODE functions (put/get).
111 22). Move rpcclient to the new libsmb code.
112 23). Add missing Windows 2000 passthough trans2 calls.
113 24). Return check all tdb calls.
114 25). Make local name lookup work even if wins server is down.
115 26). pam session code added to winbind.
116 27). Added winbindd cache to all lookups.
117 28). Fix allocate bugs that caused file sizes to be incorrect.
118 29). Fixed write cache code - now safe to use.
119 30). Fixed winbindd memory leaks.
120 31). winbindd will now do name lookups (to allow non Open Source
121 systems to do the nsswitch WINS lookup). Fixed by SGI.
122 32). passdb memory leaks fixed.
123 33). LDAP code updates and now properly maintained.
124 34). Finally figured out how changeid is meant to work.
125 35). Downlevel printing now looks as NT does in print monitor window.
126 36). Many fixups in spoolss printing RPC parsing.
127 37). Speed up password enumeration as a PDC.
128 38). Fix printer changed notify messages (work from HP).
129 39). Fix modify timestamp on close code.
130 40). Fix long standing mangled names bug.
131 41). Fix delete on close semantics.
132 42). Stop opening all files with O_NONBLOCK !
133 43). Use O_NOFOLLOW for systems that have it and don't want symlinks.
134 44). Ensure NT suplementary groups get added to user token.
135 45). Try and mitigate effects of DNS timeout (do less lookups).
136 46). Added current user connection context stack.
137 47). Fixes to utmp code.
138 48). smbw code tidyups.
139 49). Added tdb open log code. Several tdb fixes.
141 Older release notes for Samba 2.2.x follow.
143 -----------------------------------------------------------------------------
145 New daemon included - winbindd
146 ------------------------------
148 Samba 2.2.2 is the first release to include the winbind daemon.
149 This code allows UNIX systems that implement the name service
150 switch (nss) to be entered into a Windows NT/2000 domain and
151 use the Domain controller for all user and group enumeration.
153 This allows a Samba server added to a Windows domain to serve
154 file and print services with *NO* local users needed in /etc/passwd
155 and /etc/group - all users and groups are read directly from the
156 Windows domain controller. In addition with pam_winbind which allows
157 a PAM enabled UNIX system to use a Windows domain for authentication
158 service this allows single sign on and account control across
159 UNIX and Windows systems.
161 The current version of winbindd shipped in 2.2.2 does have some
162 memory leaks, which will be addressed for the next Samba release,
163 so it is advisable to monitor the winbind process. This code is
164 being used in production by several vendors, so the leaks are
165 managable. In addition, this version of winbind does not work
166 correctly against a Samba PDC, due to some missing calls on the
167 PDC side. These problems are being addressed for the next Samba
168 release, but it was thought better to release the code now rather
169 than delay the main Samba code to match the winbind release schedule.
171 For more information on using winbind, see the man pages for
172 winbindd and wbinfo.
174 Note that winbindd is not installed by default.
176 New/Changed parameters in 2.2.2
177 -------------------------------
179 For more information on these parameters, see the man pages for
180 smb.conf.
182 Added/changed parameters.
183 -------------------------
185 strict allocate
187 Causes Samba not to create UNIX 'sparse' files, but to follow the
188 Windows behaviour of always allocating on-disk space.
190 use mmap
192 Set to 'on' by default, only set to 'off' on HPUX 11.x or below or other
193 UNIX systems that don't have coherent mmap/read-write internal caches.
194 You should not need to set this parameter.
196 nt acl support
198 This parameter has been changed to a per-share option, and is very
199 useful in enabling Windows 2000 SP2 to load/save profiles from a 
200 Samba share.
202 New printing parameters.
203 ------------------------
205 disable spoolss
207 Setting this parameter causes Samba to go back to the old 2.0.x
208 LANMAN printing behaviour, for people who wish to disable the
209 new SPOOLSS pipe.
211 use client driver
213 Causes Windows NT/2000 clients to need have a local printer driver
214 installed and to treat the printer as local.
216 New LDAP parameters.
217 --------------------
219 Samba 2.2.2 contains new code to maintain a Samba SAM database
220 on a remote LDAP server. These parameters have been added as
221 part of this code. These parameters are only available when Samba
222 has been compiled with the --with-ldapsam option.
224 ldap admin dn
225 ldap ssl
227 New SSL parameters.
228 -------------------
230 The SSL support in Samba has been fixed. These new parameters
231 are part of the changes added. These parameters are only available
232 when Samba has been compiled with the --with-ssl option. 
233 Please see the smb.conf man page for details.
235 ssl egd socket
236 ssl entropy file
237 ssl entropy bytes
239 New winbindd parameters.
240 ------------------------
242 These parameters are used by winbindd. See the man page for
243 winbindd for details.
245 winbind separator
246 winbind uid
247 winbind gid
248 winbind cache time
249 winbind enum users
250 winbind enum groups
251 template homedir
252 template shell
254 Removed parameters.
255 -------------------
257 share modes
258 ldap root
259 ldap root passwd
261 New Documentation.
262 ------------------
264 Some new README's have been added in the docs/ directory. These cover
265 using roving profiles with Windows 2000 SP2 (docs/README.Win2kSP2),
266 and how to use Samba to help prevent Windows virus spread
267 (docs/README.Win32-Viruses).
269 Quota problems on a Linux 2.4 kernel.
270 -------------------------------------
272 Currently the quota interfaces have diverged between the Linus
273 2.4.x kernels and the Alan Cox 2.4.x kernels (the Alan Cox varients
274 are shipped with RedHat). Running quota-enabled Samba compiled on
275 an Alan Cox kernel works correctly on an Alan Cox kernel (the one
276 shipped by default with RedHat 7.x) but fails on a Linus kernel.
278 This is a mess, and hopefully Alan and Linus will sort it out soon.
279 In the meantime we need to ship.....
281 Changes in 2.2.2
282 -----------------
284 1). mmap tdb code disabled on HPUX. This should prevent the reports of
285 tdb corruption on HUPX.
286 2). Large file support set to off in Solaris 5.5 and below.
287 3). Better CUPS detection.
288 4). New SAM (password database) backends - smbpasswd (traditional),
289 LDAP, NIS+ and Samba TDB.
290 5). Quota fixups on Linux.
291 6). libsmbclient stand-alone code added. Can be built as a shared library
292 under Linux.
293 7). Tru64 ACL suppport added.
294 8). winbindd option added.
295 9). Realloc fail tidyup fixes all over the code.
296 10). Large improvement in hash table code efficiency - would be found with
297 large stat caches.
298 11). Error code consistency improved (still needs more work).
299 12). Profile shared memory support added to nmbd.
300 13). New Windows 2000/NT passthrough info levels added.
301 14). readraw/writeraw code rewritten - many bugs fixed.
302 15). UNIX password sync (non pam) code fixed, use correct wildcard matcher.
303 16). Reverse DNS lookup avoided on socket open.
304 17). Bug preventing nmbd re-registering names on WINS server timeout fixed.
305 18). Zero length byte range lock code added. Much closer to Windows semantics.
306 19). Alignment fault fixes for Linux/Alpha.
307 20). Error checking on tdb returns vastly improved.
308 21). Handling of delete on close fixed. No longer possible to leave 'dead'
309 file entries.
310 22). Handling of oplock break failure cleanups improved. Should not be
311 able to leave 'dead' entries.
312 23). Fix handling of errors trying to set 64 bit locks on 32 bit NFS mounts.
313 24). Misc. MS-DFS code fixes.
314 25). Ignore logon packets if not a PDC (needed for PDC/BDC failover).
315 26). winbind pam module added.
316 27). Order N^^2 enumeration of printers problem fixed.
317 28). Password backend database code re-ordered to allow different password
318 backends (at compile time currently).
319 29). Improved print driver version detection for Windows 2000.
320 30). Driver DEVMODE initialization fixes.
321 31). Improved SYSV print parse code.
322 32). Fixed enumeration of large numbers of users/groups from Windows clients.
323 Code still too slow.
324 33). Fix for buggy NetApp RPC pipe clients.
325 34). Fix for NT sending multiple SetPrinterDataEx calls.
326 35). Fix for logic bug where smbd could delay oplock break request messages
327 from other smbd daemons whilst client kept us busy.
328 36). Fix deadlock problem with connections tdb on enumeration.
329 37). Fixes for setting/getting NT ACLs - improved POSIX mapping both ways.
330 38). Removed unused readbmpx/writebmpx code.
331 39). Attempt to fix Linux 2.4.x quota mess.
332 40). Improved ctemp code for Windows 2000 compatibilty.
333 41). Finally understood difference between set EOF and set allocation requests.
334 Added strict allocate parameter to help.
335 42). Correctly return name types on name to SID lookups.
336 43). tdb spinlock code update.
337 44). Use pread/pwrite on systems that have it to fix race condition in tdb code.
339 Older release notes for Samba 2.2.x follow.
341 -----------------------------------------------------------------------------
342 The release notes for 2.2.1a follow :
344 This is a minor bugfix release for 2.2.1, *NOT* security related.
346 1). 2.2.1 had a bug where using smbpasswd -m to add a Windows NT or
347 Windows2000 machine into a Samba hosted PDC would fail due to our
348 stricter user name checking. We were disallowing user names
349 containing '$', which is needed when using smbpasswd to add a
350 machine into a domain. Automatically adding machines (using the
351 native Windows tools) into a Samba domain worked correctly.
353 2.2.1a fixes this single problem.
355 -----------------------------------------------------------------------------
356 The release notes for 2.2.1 follow :
358 New/Changed parameters in 2.2.1
359 -------------------------------
361 Added parameters.
362 -----------------
364 obey pam restrictions
366 When Samba is configured to use PAM, turns on or off Samba checking
367 the PAM account restrictions. Defaults to off.
369 pam password change
371 When Samba is configured to use PAM, turns on or off Samba passing
372 the password changes to PAM. Defaults to off.
374 large readwrite
376 New option to allow new Windows 2000 large file (64k) streaming
377 read/write options. Needs a 64 bit underlying operating system
378 (for Linux use kernel 2.4 with glibc 2.2 or above). Can improve performance
379 by 10% with Windows 2000 clients. Defaults to off. Not as tested
380 as some other Samba code paths.
382 hide unreadable
384 Prevents clients from seeing the existance of files that cannot
385 be read. Off by default.
387 enhanced browsing
389 Turn on/off the enhanced Samba browing functionality (*1B names).
390 Default is "on". Can prevent eternal machines in workgroups when
391 WINS servers are not synchronised.
393 Removed parameters.
394 -------------------
396 domain groups
397 domain admin users
398 domain guest users
400 Changes in 2.2.1
401 -----------------
403 1). "find" command removed for smbclient. Internal code now used.
404 2). smbspool updates to retry connections from Michael Sweet.
405 3). Fix for mapping 8859-15 characters to UNICODE.
406 4). Changed "security=server" to try with invalid username to prevent
407     account lockouts.
408 5). Fixes to allow Windows 2000 SP2 clients to join a Samba PDC.
409 6). Support for Windows 9x Nexus tools to allow security changes from Win9x.
410 7). Two locking fixes added. Samba 2.2.1 now passes the Clarion network
411     lock tester tool for distributed databases.
412 8). Preliminary support added for Windows 2000 large file read/write SMBs.
413 9). Changed random number generator in Samba to prevent guess attacks.
414 10). Fixes for tdb corruption in connections.tdb and file locking brlock.tdb.
415      smbd's clean the tdb files on startup and shutdown.
416 11). Fixes for default ACLs on Solaris.
417 12). Tidyup of password entry caching code.
418 13). Correct shutdowns added for send fails. Helps tdb cleanup code.
419 14). Prevent invalid '/' characters in workgroup names.
420 15). Removed more static arrays in SAMR code.
421 16). Client code is now UNICODE on the wire.
422 17). Fix 2 second timstamp resolution everywhere if dos timestamp set to yes.
423 18). All tdb opens now going through logging function.
424 19). Add pam password changing and pam restrictions code.
425 20). Printer driver management improvements (delete driver).
426 21). Fix difference between NULL security descriptors and empty
427      security descriptors.
428 22). Fix SID returns for server roles.
429 23). Allow Windows 2000 mmc to view and set Samba share security descriptors.
430 24). Allow smbcontrol to forcibly disconnect a share.
431 25). tdb fixes for HPUX, OpenBSD and other OS's that don't have a coherent
432      mmap/file read/write cache.
433 26). Fix race condition in returning create disposition for file create/open.
434 27). Fix NT rewriting of security descriptors to their canonical form for
435      ACLs.
436 28). Fix for Samba running on top of Linux VFAT ftruncate bug.
437 29). Swat fixes for being run with xinetd that doesn't set the umask.
438 30). Fix for slow writes with Win9x Explorer clients. Emulates Microsoft
439      TCP stack early ack specification error.
440 31). Changed lock & persistant tdb directory to /var/cache/samba by default on
441      RedHat and Mandrake as they clear the /var/lock/samba directory on reboot.
443 -----------------------------------------------------------------------------
444 The release notes for 2.2.0a follow :
446 SECURITY FIX
447 ============
449 This is a security bugfix release for Samba 2.2.0. This release provides the
450 following two changes *ONLY* from the 2.2.0 release.
452 1). Fix for the security hole discovered by Michal Zalewski (lcamtuf@bos.bindview.com)
453     and described in the security advisory below.
454 2). Fix for the hosts allow/hosts deny parameters not being honoured.
456 No other changes are being made for this release to ensure a security fix only.
457 For new functionality (including these security fixes) download Samba 2.2.1
458 when it is available.
460 The security advisory follows :
463                 IMPORTANT: Security bugfix for Samba
464                 ------------------------------------
466 June 23rd 2001
469 Summary
470 -------
472 A serious security hole has been discovered in all versions of Samba
473 that allows an attacker to gain root access on the target machine for
474 certain types of common Samba configuration.
476 The immediate fix is to edit your smb.conf configuration file and
477 remove all occurances of the macro "%m". Replacing occurances of %m
478 with %I is probably the best solution for most sites.
480 Details
481 -------
483 A remote attacker can use a netbios name containing unix path
484 characters which will then be substituted into the %m macro wherever
485 it occurs in smb.conf. This can be used to cause Samba to create a log
486 file on top of an important system file, which in turn can be used to
487 compromise security on the server.
489 The most commonly used configuration option that can be vulnerable to
490 this attack is the "log file" option. The default value for this
491 option is VARDIR/log.smbd. If the default is used then Samba is not
492 vulnerable to this attack.
494 The security hole occurs when a log file option like the following is
495 used:
497   log file = /var/log/samba/%m.log
499 In that case the attacker can use a locally created symbolic link to
500 overwrite any file on the system. This requires local access to the
501 server.
503 If your Samba configuration has something like the following:
505   log file = /var/log/samba/%m
507 Then the attacker could successfully compromise your server remotely
508 as no symbolic link is required. This type of configuration is very
509 rare.
511 The most commonly used log file configuration containing %m is the
512 distributed in the sample configuration file that comes with Samba:
514   log file = /var/log/samba/log.%m
516 in that case your machine is not vulnerable to this attack unless you
517 happen to have a subdirectory in /var/log/samba/ which starts with the
518 prefix "log."
520 Credit
521 ------
523 Thanks to Michal Zalewski (lcamtuf@bos.bindview.com) for finding this
524 vulnerability.
527 New Release
528 -----------
530 While we recommend that vulnerable sites immediately change their
531 smb.conf configuration file to prevent the attack we will also be
532 making new releases of Samba within the next 24 hours to properly fix
533 the problem. Please see http://www.samba.org/ for the new releases.
535 Please report any attacks to the appropriate authority.
537         The Samba Team
538         security@samba.org
540 ---------------------------------------------------------------------------
542 The release notes for 2.2.0 follow :
544 This is the official Samba 2.2.0 release. This version of Samba provides
545 the following new features and enhancements.
547 Integration between Windows oplocks and NFS file opens (IRIX and Linux
548 2.4 kernel only). This gives complete data and locking integrity between
549 Windows and UNIX file access to the same data files.
551 Ability to act as an authentication source for Windows 2000 clients as
552 well as for NT4.x clients.
554 Integration with the winbind daemon that provides a single
555 sign on facility for UNIX servers in Windows 2000/NT4 networks
556 driven by a Windows 2000/NT4 PDC. winbind is not included in
557 this release, it currently must be obtained separately. We are
558 committed to including winbind in a future Samba 2.2.x release.
560 Support for native Windows 2000/NT4 printing RPCs. This includes
561 support for automatic printer driver download.
563 Support for server supported Access Control Lists (ACLs).
564 This release contains support for the following filesystems: 
566     Solaris 2.6+ 
567     SGI Irix 
568     Linux Kernel with ACL patch from http://acl.bestbits.at
569         Linux Kernel with XFS ACL support.
570         Caldera/SCO UnixWare
571         IBM AIX
572         FreeBSD (with external patch)
574 Other platforms will be supported as resources are
575 available to test and implement the encessary modules. If
576 you are interested in writing the support for a particular
577 ACL filesystem, please join the samba-technical mailing
578 list and coordinate your efforts. 
580 On PAM (Pluggable Authentication Module) based systems - better debugging
581 messages and encrypted password users now have access control verified via
582 PAM - Note: Authentication still uses the encrypted password database.
584 Rewritten internal locking semantics for more robustness.
585 This release supports full 64 bit locking semantics on all
586 (even 32 bit) platforms. SMB locks are mapped onto POSIX
587 locks (32 bit or 64 bit) as the underlying system allows.
589 Conversion of various internal flat data structures to use
590 database records for increased performance and
591 flexibility. 
593 Support for acting as a MS-DFS (Distributed File System) server.
595 Support for manipulating Samba shares using Windows client tools
596 (server manager). Per share security can be set using these tools
597 and Samba will obey the access restrictions applied.
599 Samba profiling support (see below).
601 Compile time option for enabling a (Virtual file system) VFS layer 
602 to allow non-disk resources to be exported as Windows filesystems
603 (such as databases etc.).
605 The documentation in this release has been updated and converted
606 from Yodl to DocBook 4.1. There are many new parameters since 2.0.7
607 and some defaults have changed.
609 Profiling support.
610 ------------------
611 Support for collection of profile information. A shared 
612 memory area has been created which contains counters for
613 the number of calls to and the amount of time spent in
614 various system calls, smb transactions and nmbd activity. See 
615 the file profile.h for a complete listing of the information 
616 collected. Sample code for a samba pmda (collection agent
617 for Performance Co-Pilot) has been included in the pcp
618 directory. 
620 To enable the profile data collection code in samba, you must 
621 compile samba with profile data support (run configure with 
622 the --with-profiling-data option). On startup, collection of 
623 data is disabled. To begin collecting data use the smbcontrol
624 program to turn on profiling (see the smbcontrol man page).
625 Profile information collection can be enabled for nmbd, all smbd
626 processes or one or more selected processes. The profiling
627 data collected is the aggragate for all processes that have
628 profiling enabled.
630 With samba compiled for profile data collection, you may see
631 a very slight degradation in performance even with profiling
632 collection turned off. On initial tests with NetBench on an
633 SGI Origin 200 server, this degradation was not measureable 
634 with profile collection off compared to no profile collection
635 compiled into samba. 
637 With count profile collection enabled on all clients, the 
638 degradation was less than 2%. With full profile collection 
639 enabled on all clients, the degradation was about 8.5%. 
641 =====================================================================
643 If you think you have found a bug please email a report to :
645         samba@samba.org
647 As always, all bugs are our responsibility.
649 Regards,
651         The Samba Team.