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