ctdb-tests: Add an extra conf loading test case
[Samba.git] / WHATSNEW.txt
blob97cd50b225e8d32bc51af9ec426085ff580c85da
1 Release Announcements
2 =====================
4 This is the third release candidate of Samba 4.9.  This is *not*
5 intended for production environments and is designed for testing
6 purposes only.  Please report any defects via the Samba bug reporting
7 system at https://bugzilla.samba.org/.
9 Samba 4.9 will be the next version of the Samba suite.
12 UPGRADING
13 =========
16 NEW FEATURES/CHANGES
17 ====================
20 net ads setspn
21 ---------------
23 There is a new 'net ads setspn' sub command for managing Windows SPN(s)
24 on the AD. This command aims to give the basic functionality that is
25 provided on windows by 'setspn.exe' e.g. ability to add, delete and list
26 Windows SPN(s) stored in a Windows AD Computer object.
28 The format of the command is:
30 net ads setspn list [machine]
31 net ads setspn [add | delete ] SPN [machine]
33 'machine' is the name of the computer account on the AD that is to be managed.
34 If 'machine' is not specified the name of the 'client' running the command
35 is used instead.
37 The format of a Windows SPN is
38   'serviceclass/host:port/servicename' (servicename and port are optional)
40 serviceclass/host is generally sufficient to specify a host based service.
42 net ads keytab changes
43 ----------------------
44 net ads keytab add no longer attempts to convert the passed serviceclass
45 (e.g. nfs, html etc.) into a Windows SPN which is added to the Windows AD
46 computer object. By default just the keytab file is modified.
48 A new keytab subcommand 'add_update_ads' has been added to preserve the
49 legacy behaviour. However the new 'net ads setspn add' subcommand should
50 really be used instead.
52 net ads keytab create no longer tries to generate SPN(s) from existing
53 entries in a keytab file. If it is required to add Windows SPN(s) then
54 'net ads setspn add' should be used instead.
56 Local authorization plugin for MIT Kerberos
57 -------------------------------------------
59 This plugin controls the relationship between Kerberos principals and AD
60 accounts through winbind. The module receives the Kerberos principal and the
61 local account name as inputs and can then check if they match. This can resolve
62 issues with canonicalized names returned by Kerberos within AD. If the user
63 tries to log in as 'alice', but the samAccountName is set to ALICE (uppercase),
64 Kerberos would return ALICE as the username. Kerberos would not be able to map
65 'alice' to 'ALICE' in this case and auth would fail.  With this plugin account
66 names can be correctly mapped. This only applies to GSSAPI authentication,
67 not for the getting the initial ticket granting ticket.
69 VFS audit modules
70 -----------------
72 The vfs_full_audit module has changed it's default set of monitored successful
73 and failed operations from "all" to "none". That helps to prevent potential
74 denial of service caused by simple addition of the module to the VFS objects.
76 Also, modules vfs_audit, vfs_ext_audit and vfs_full_audit now accept any valid
77 syslog(3) facility, in accordance with the manual page.
79 Database audit support
80 ----------------------
82 Changes to the Samba AD's sam.ldb database are now logged to Samba's debug log
83 under the "dsdb_audit" debug class and "dsdb_json_audit" for JSON formatted log
84 entries.
86 Transaction commits and roll backs are now logged to Samba's debug logs under
87 the "dsdb_transaction_audit" debug class and "dsdb_transaction_json_audit" for
88 JSON formatted log entries.
90 Password change audit support
91 -----------------------------
93 Password changes in the AD DC are now logged to Samba's debug logs under the
94 "dsdb_password_audit" debug class and "dsdb_password_json_audit" for JSON
95 formatted log entries.
97 Group membership change audit support
98 -------------------------------------
100 Group membership changes on the AD DC are now logged to
101 Samba's debug log under the "dsdb_group_audit" debug class and
102 "dsdb_group_json_audit" for JSON formatted log entries.
104 Log Authentication duration
105 ---------------------------
107 For NTLM and Kerberos KDC authentication, the authentication duration is now
108 logged. Note that the duration is only included in the JSON formatted log
109 entries.
111 JSON library Jansson required for the AD DC
112 -------------------------------------------
114 By default the Jansson JSON library is required for Samba to build.
115 It is strictly required for the Samba AD DC, and is optional for
116 builds --without-ad-dc by specifying --without-json-audit at configure
117 time.
119 New Experimental LMDB LDB backend
120 ---------------------------------
122 A new experimental LDB backend using LMDB is now available. This allows
123 databases larger than 4Gb (Currently the limit is set to 6Gb, but this will be
124 increased in a future release). To enable lmdb, provision or join a domain using
125 the --backend-store=mdb option.
127 This requires that a version of lmdb greater than 0.9.16 is installed and that
128 samba has not been built with the --without-ldb-lmdb option.
130 Please note this is an experimental feature and is not recommended for
131 production deployments.
133 Password Settings Objects
134 -------------------------
135 Support has been added for Password Settings Objects (PSOs). This AD feature is
136 also known as Fine-Grained Password Policies (FGPP).
138 PSOs allow AD administrators to override the domain password policy settings
139 for specific users, or groups of users. For example, PSOs can force certain
140 users to have longer password lengths, or relax the complexity constraints for
141 other users, and so on. PSOs can be applied to groups or to individual users.
142 When multiple PSOs apply to the same user, essentially the PSO with the best
143 precedence takes effect.
145 PSOs can be configured and applied to users/groups using the 'samba-tool domain
146 passwordsettings pso' set of commands.
148 Domain backup and restore
149 -------------------------
150 A new samba-tool command has been added that allows administrators to create a
151 backup-file of their domain DB. In the event of a catastrophic failure of the
152 domain, this backup-file can be used to restore Samba services.
154 The new 'samba-tool domain backup online' command takes a snapshot of the
155 domain DB from a given DC. In the event of a catastrophic DB failure, all DCs
156 in the domain should be taken offline, and the backup-file can then be used to
157 recreate a fresh new DC, using the 'samba-tool domain backup restore' command.
158 Once the backed-up domain DB has been restored on the new DC, other DCs can
159 then subsequently be joined to the new DC, in order to repopulate the Samba
160 network.
162 Domain rename tool
163 ------------------
164 Basic support has been added for renaming a Samba domain. The rename feature is
165 designed for the following cases:
166 1). Running a temporary alternate domain, in the event of a catastrophic
167 failure of the regular domain. Using a completely different domain name and
168 realm means that the original domain and the renamed domain can both run at the
169 same time, without interfering with each other. This is an advantage over
170 creating a regular 'online' backup - it means the renamed/alternate domain can
171 provide core Samba network services, while trouble-shooting the fault on the
172 original domain can be done in parallel.
173 2). Creating a realistic lab domain or pre-production domain for testing.
175 Note that the renamed tool is currently not intended to support a long-term
176 rename of the production domain. Currently renaming the GPOs is not supported
177 and would need to be done manually.
179 The domain rename is done in two steps: first, the 'samba-tool domain backup
180 rename' command will clone the domain DB, renaming it in the process, and
181 producing a backup-file. Then, the 'samba-tool domain backup restore' command
182 takes the backup-file and restores the renamed DB to disk on a fresh DC.
184 New samba-tool options for diagnosing DRS replication issues
185 ------------------------------------------------------------
187 The 'samba-tool drs showrepl' command has two new options controlling
188 the output. With --summary, the command says very little when DRS
189 replication is working well. With --json, JSON is produced. These
190 options are intended for human and machine audiences, respectively.
192 The 'samba-tool visualize uptodateness' visualizes replication lag as
193 a heat-map matrix based on the DRS uptodateness vectors. This will
194 show you if (but not why) changes are failing to replicate to some DCs.
196 Automatic site coverage and GetDCName improvements
197 --------------------------------------------------
199 Samba's AD DC now automatically claims otherwise empty sites based on
200 which DC is the nearest in the replication topology.
202 This, combined with efforts to correctly identify the client side in
203 the GetDCName Netlogon call will improve service to sites without a
204 local DC.
206 Improved samba-tool computer command
207 ------------------------------------
209 The 'samba-tool computer' command allow manipulation of computer
210 accounts including creating a new computer and resetting the password.
211 This allows an 'offline join' of a member server or workstation to the
212 Samba AD domain.
214 Samba performance tool now operates against Microsoft Windows AD
215 ----------------------------------------------------------------
217 The Samba AD performance testing tool traffic_reply can now operate
218 against a Windows based AD domain.  Previously it only operated
219 correctly against Samba.
221 DNS entries are now cleaned up during DC demote
222 -----------------------------------------------
224 DNS records are now cleaned up as part of the 'samba-tool domain
225 demote' including both the default and --remove-other-dead-server
226 modes.
228 Additionally DNS records can be automatically cleaned up for a given
229 name with the 'samba-tool dns cleanup' command, which aids in cleaning
230 up partially removed DCs.
232 samba-tool ntacl sysvolreset is now much faster
233 -----------------------------------------------
235 The 'samba-tool ntacl sysvolreset' command, used on the Samba AD DC,
236 is now much faster than in previous versions, after an internal
237 rework.
239 Samba now tested with CI GitLab
240 -------------------------------
242 Samba developers now have pre-commit testing available in GitLab,
243 giving reviewers confidence that the submitted patches pass a full CI
244 before being submitted to the Samba Team's own autobuild system.
246 Dynamic DNS record scavenging support
247 -------------------------------------
249 It is now possible to enable scavenging of DNS Zones to remove DNS
250 records that were dynamically created and have not been touched in
251 some time.
253 This support should however only be enabled on new zones or new
254 installations.  Sadly old Samba versions suffer from BUG 12451 and
255 mark dynamic DNS records as static and static records as dynamic.
256 While a dbcheck rule may be able to find these in the future,
257 currently a reliable test has not been devised.
259 Finally, there is not currently a command-line tool to enable this
260 feature, currently it should be enabled from the DNS Manager tool from
261 Windows. Also the feature needs to have been enabled by setting the smb.conf
262 parameter "dns zone scavenging = yes".
264 CTDB changes
265 ------------
267 There are many changes to CTDB in this release.
269 * Configuration has been completely overhauled
271   - Daemon and tool options are now specified in a new ctdb.conf
272     Samba-style configuration file.  See ctdb.conf(5) for details.
274   - Event script configuration is no longer specified in the top-level
275     configuration file.  It can now be specified per event script.
276     For example, configuration options for the 50.samba event script
277     can be placed alongside the event script in a file called
278     50.samba.options.  Script options can also be specified in a new
279     script.options file.  See ctdb-script.options(5) for details.
281   - Options that affect CTDB startup should be configured in the
282     distribution-specific configuration file.  See ctdb.sysconfig(5)
283     for details.
285   - Tunable settings are now loaded from ctdb.tunables.  Using
286     CTDB_SET_TunableVariable=<value> in the main configuration file is
287     no longer supported.  See ctdb-tunables(7) for details.
289   A example script to migrate an old-style configuration to the new
290   style is available in ctdb/doc/examples/config_migrate.sh.
292 * The following configuration variables and corresponding ctdbd
293   command-line options have been removed and not replaced with
294   counterparts in the new configuration scheme:
296     CTDB_PIDFILE                     --pidfile
297     CTDB_SOCKET                      --socket
298     CTDB_NODES                       --nlist
299     CTDB_PUBLIC_ADDRESSES            --public-addresses
300     CTDB_EVENT_SCRIPT_DIR            --event-script-dir
301     CTDB_NOTIFY_SCRIPT               --notification-script
302     CTDB_PUBLIC_INTERFACE            --public-interface
303     CTDB_MAX_PERSISTENT_CHECK_ERRORS --max-persistent-check-errors
305   - The compile-time defaults should be used for the first 6 of these.
306   - Use a symbolic link from the configuration directory to specify a
307     different location for nodes or public_addresses (e.g. in the
308     cluster filesystem).
309   - Executable notification scripts in the notify.d/ subdirectory of
310     the configuration directory are now run by unconditionally.
311   - Interfaces for public IP addresses must always be specified in the
312     public_addresses file using the currently supported format.
314   Some related items that have been removed are:
316   - The ctdb command's --socket command-line option
317   - The ctdb command's CTDB_NODES environment variable
319   When writing tests there are still mechanisms available to change
320   the locations of certain directories and files.
322 * Event scripts have moved to the scripts/legacy subdirectory of the
323   configuration directory
325   Event scripts must now end with a ".script" suffix.
327 * The "ctdb event" command has changed in 2 ways:
329   - A component is now required for all commands
331     In this release the only valid component is "legacy".
333   - There is no longer a default event when running "ctdb event status"
335     Listing the status of the "monitor" event is now done via:
337       ctdb event status legacy monitor
339    See ctdb(1) for details.
341 * The following service-related event script options have been
342   removed:
344     CTDB_MANAGES_SAMBA
345     CTDB_MANAGES_WINBIND
347     CTDB_MANAGES_CLAMD
348     CTDB_MANAGES_HTTPD
349     CTDB_MANAGES_ISCSI
350     CTDB_MANAGES_NFS
351     CTDB_MANAGES_VSFTPD
353     CTDB_MANAGED_SERVICES
355   Event scripts for services are now disabled by default.  To enable
356   an event script and, therefore, manage a service use a command like
357   the following:
359     ctdb event script enable legacy 50.samba
361 * Notification scripts have moved to the scripts/notification
362   subdirectory of the configuration directory
364   Notification scripts must now end with a ".script" suffix.
366 * Support for setting CTDB_DBDIR=tmpfs has been removed
368   This feature has not been implemented in the new configuration
369   system.  If this is desired then a tmpfs filesystem should be
370   manually mounted on the directory pointed to by the "volatile
371   database directory" option.  See ctdb.conf(5) for more details.
373 * Support for the NoIPHostOnAllDisabled tunable has been removed
375   If all nodes are unhealthy or disabled then CTDB will not host
376   public IP addresses.  That is, CTDB now behaves as if
377   NoIPHostOnAllDisabled were set to 1.
379 * The onnode command's CTDB_NODES_FILE environment variable has been
380   removed
382   The -f option can still be used to specify an alternate node file.
384 * The 10.external event script has been removed
386 * The CTDB_SHUTDOWN_TIMEOUT configuration variable has been removed
388   As with other daemons, if ctdbd does not shut down when requested
389   then manual intervention is required.  There is no safe way of
390   automatically killing ctdbd after a failed shutdown.
392 * CTDB_SUPPRESS_COREFILE and CTDB_MAX_OPEN_FILES configuration
393   variable have been removed
395   These should be setup in the systemd unit/system file or, for SYSV
396   init, in the distribution-specific configuration file for the ctdb
397   service.
399 * CTDB_PARTIALLY_ONLINE_INTERFACES incompatibility no longer enforced
401   11.natgw and 91.lvs will no longer fail if
402   CTDB_PARTIALLY_ONLINE_INTERFACES=yes.  The incompatibility is,
403   however, well documented.  This option will be removed in future and
404   replaced by sensible behaviour where public IP addresses simply
405   switch interfaces or become unavailable when interfaces are down.
407 * Configuration file /etc/ctdb/sysconfig/ctdb is no longer supported
409 GPO Improvements
410 ----------------
412 The samba_gpoupdate command (used in applying Group Policies to the
413 samba machine itself) has been renamed to samba_gpupdate and had the
414 syntax changed to better match the same tool on Windows.
417 REMOVED FEATURES
418 ================
422 smb.conf changes
423 ================
425 As the most popular Samba install platforms (Linux and FreeBSD) both
426 support extended attributes by default, the parameters "map readonly",
427 "store dos attributes" and "ea support" have had their defaults changed
428 to allow better Windows fileserver compatibility in a default install.
430   Parameter Name                     Description             Default
431   --------------                     -----------             -------
432   map readonly                       Default changed              no
433   store dos attributes               Default changed             yes
434   ea support                         Default changed             yes
435   full_audit:success                 Default changed            none
436   full_audit:failure                 Default changed            none
438 VFS interface changes
439 =====================
441 The VFS ABI interface version has changed to 39. Function changes
442 are:
444 SMB_VFS_FSYNC: Removed: Only async versions are used.
445 SMB_VFS_READ: Removed: Only PREAD or async versions are used.
446 SMB_VFS_WRITE: Removed: Only PWRITE or async versions are used.
447 SMB_VFS_CHMOD_ACL: Removed: Only CHMOD is used.
448 SMB_VFS_FCHMOD_ACL: Removed: Only FCHMOD is used.
450 Any external VFS modules will need to be updated to match these
451 changes in order to work with 4.9.x.
454 CHANGES SINCE 4.9.0rc2
455 ======================
457 o  Jeremy Allison <jra@samba.org>
458    * BUG 13453: CVE-2018-10858: libsmb: Harden smbc_readdir_internal() against
459      returns from malicious servers.
461 o  Andrew Bartlett <abartlet@samba.org>
462    * BUG 13374: CVE-2018-1140: ldbsearch '(distinguishedName=abc)' and DNS query
463      with escapes crashes, ldb: Release LDB 1.3.5 for CVE-2018-1140
464    * BUG 13552: CVE-2018-10918: cracknames: Fix DoS (NULL pointer de-ref) when
465      not servicePrincipalName is set on a user.
467 o  Tim Beale <timbeale@catalyst.net.nz>
468    * BUG 13434: CVE-2018-10919: acl_read: Fix unauthorized attribute access via
469      searches.
471 o  Samuel Cabrero <scabrero@suse.de>
472    * BUG 13540: ctdb_mutex_ceph_rados_helper: Set SIGINT signal handler.
474 o  Günther Deschner <gd@samba.org>
475    * BUG 13360: CVE-2018-1139 libcli/auth: Do not allow ntlmv1 over SMB1 when it
476      is disabled via "ntlm auth".
477    * BUG 13529: s3-tldap: do not install test_tldap.
479 o  David Disseldorp <ddiss@samba.org>
480    * BUG 13540: ctdb_mutex_ceph_rados_helper: Fix deadlock via lock renewals.
482 o  Andrej Gessel <Andrej.Gessel@janztec.com>
483    * BUG 13374: CVE-2018-1140 Add NULL check for ldb_dn_get_casefold() in
484      ltdb_index_dn_attr().
486 o  Amitay Isaacs <amitay@gmail.com>
487    * BUG 13554: ctdb-eventd: Fix CID 1438155.
489 o  Volker Lendecke <vl@samba.org>
490    * BUG 13553: Fix CIDs 1438243, (Unchecked return value) 1438244
491      (Unsigned compared against 0), 1438245 (Dereference before null check) and
492      1438246 (Unchecked return value).
493    * BUG 13554: ctdb: Fix a cut&paste error.
495 o  Oleksandr Natalenko <oleksandr@redhat.com>
496    * BUG 13559: systemd: Only start smb when network interfaces are up.
498 o  Noel Power <noel.power@suse.com>
499    * BUG 13553: Fix quotas don't work with SMB2.
500    * BUG 13563: s3/smbd: Ensure quota code is only called when quota support
501      detected.
503 o  Anoop C S <anoopcs@redhat.com>
504    * BUG 13204: s3/libsmb: Explicitly set delete_on_close token for rmdir.
506 o  Andreas Schneider <asn@samba.org>
507    * BUG 13561: s3:waf: Install eventlogadm to /usr/sbin.
509 o  Justin Stephenson <jstephen@redhat.com>
510    * BUG 13562: Shorten description in vfs_linux_xfs_sgid manual.
513 CHANGES SINCE 4.9.0rc1
514 ======================
516 o  Jeremy Allison <jra@samba.org>
517    * BUG 13537: s3: smbd:  Using "sendfile = yes" with SMB2 can cause CPU spin.
519 o  Ralph Boehme <slow@samba.org>
520    * BUG 13535: s3: smbd: Fix path check in
521      smbd_smb2_create_durable_lease_check().
523 o  Alexander Bokovoy <ab@samba.org>
524    * BUG 13538: samba-tool trust: Support discovery via netr_GetDcName.
525    * BUG 13542: s4-dsdb: Only build dsdb Python modules for AD DC.
527 o  Amitay Isaacs <amitay@gmail.com>
528    * BUG 13520: Fix portability issues on freebsd.
530 o  Gary Lockyer <gary@catalyst.net.nz>
531    * BUG 13536: DNS wildcard search does not handle multiple labels correctly.
533 o  Stefan Metzmacher <metze@samba.org>
534    * BUG 13308: samba-tool domain trust: Fix trust compatibility to Windows
535      Server 1709 and FreeIPA.
537 o  Martin Schwenke <martin@meltin.net>
538    * BUG 13520: Fix portability issues on freebsd.
539    * BUG 13545: ctdb-protocol: Fix CTDB compilation issues.
540    * BUG 13546: ctdb-docs: Replace obsolete reference to CTDB_DEBUG_HUNG_SCRIPT
541      option.
542    * BUG 13550: ctdb-doc: Provide an example script for migrating old
543      configuration.
544    * BUG 13551: ctdb-event: Implement event tool "script list" command.
547 KNOWN ISSUES
548 ============
550 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.9#Release_blocking_bugs
553 #######################################
554 Reporting bugs & Development Discussion
555 #######################################
557 Please discuss this release on the samba-technical mailing list or by
558 joining the #samba-technical IRC channel on irc.freenode.net.
560 If you do report problems then please try to send high quality
561 feedback. If you don't provide vital information to help us track down
562 the problem then you will probably be ignored.  All bug reports should
563 be filed under the Samba 4.1 and newer product in the project's Bugzilla
564 database (https://bugzilla.samba.org/).
567 ======================================================================
568 == Our Code, Our Bugs, Our Responsibility.
569 == The Samba Team
570 ======================================================================