vfs: restore stat fields in vfs_stat_fsp()
[Samba.git] / WHATSNEW.txt
blob904db5fefc393491cd51a33e31bcc00921ae093b
1 Release Announcements
2 =====================
4 This is the third release candidate of Samba 4.11.  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.11 will be the next version of the Samba suite.
12 UPGRADING
13 =========
15 AD Database compatibility
16 -------------------------
18 Samba 4.11 has changed how the AD database is stored on disk. AD users should
19 not really be affected by this change when upgrading to 4.11. However, AD
20 users should be extremely careful if they need to downgrade from Samba 4.11 to
21 an older release.
23 Samba 4.11 maintains database compatibility with older Samba releases. The
24 database will automatically get rewritten in the new 4.11 format when you
25 first start the upgraded samba executable.
27 However, when downgrading from 4.11 you will need to manually downgrade the AD
28 database yourself. Note that you will need to do this step before you install
29 the downgraded Samba packages. For more details, see:
30 https://wiki.samba.org/index.php/Downgrading_an_Active_Directory_DC
32 When either upgrading or downgrading, users should also avoid making any
33 database modifications between installing the new Samba packages and starting
34 the samba executable.
36 Note that when moving between major Samba releases in general, we recommend
37 that the AD DC is rejoined to the domain. Using this approach avoids the need
38 to explicitly downgrade the database manually. For more details, see:
39 https://wiki.samba.org/index.php/Upgrading_a_Samba_AD_DC
41 SMB1 is disabled by default
42 ---------------------------
44 The defaults of 'client min protocol' and 'server min protocol'
45 have been changed to SMB2_02.
47 This means clients without support for SMB2 or SMB3 are no longer
48 able to connect to smbd (by default).
50 It also means client tools like smbclient and other,
51 as well as applications making use of libsmbclient are no longer
52 able to connect to servers without SMB2 or SMB3 support (by default).
54 It's still possible to allow SMB1 dialects, e.g. NT1, LANMAN2
55 and LANMAN1 for client and server, as well as CORE and COREPLUS on
56 the client.
58 Note that most commandline tools e.g. smbclient, smbcacls and others
59 also support the '--option' argument to overwrite smb.conf options,
60 e.g. --option='client min protocol=NT1' might be useful.
62 As Microsoft no longer installs SMB1 support in recent releases
63 or uninstalls it after 30 days without usage, the Samba Team
64 tries to get remove the SMB1 usage as much as possible.
66 SMB1 is officially deprecated and might be removed step by step
67 in the following years. If you have a strong requirement for SMB1
68 (except for supporting old Linux Kernels), please file a bug
69 at https://bugzilla.samba.org and let us know about the details.
71 LanMan and plaintext authentication deprecated
72 ----------------------------------------------
74 The "lanman auth" and "encrypt passwords" parameters are deprecated
75 with this release as both are only applicable to SMB1 and are quite
76 insecure.  NTLM, NTLMv2 and Kerberos authentication are unaffected, as
77 "encrypt passwords = yes" has been the default since Samba 3.0.0.
79 If you have a strong requirement for these authentication protocols,
80 please file a bug at https://bugzilla.samba.org and let us know about
81 the details.
83 BIND9_FLATFILE deprecated
84 -------------------------
86 The BIND9_FLATFILE DNS backend is deprecated in this release and will
87 be removed in the future.  This was only practically useful on a single
88 domain controller or under expert care and supervision.
90 This release therefore deprecates the "rndc command" smb.conf
91 parameter, which is used to support this configuration.  After writing
92 out a list of DCs permitted to make changes to the DNS Zone "rndc
93 command" is called with reload to tell the 'named' server if a DC was
94 added/removed to to the domain.
97 NEW FEATURES/CHANGES
98 ====================
100 Default samba process model
101 ---------------------------
103 The default for the '--model' argument passed to the samba executable has changed
104 from 'standard' to 'prefork'. This means a difference in the number of samba
105 child processes that are created to handle client connections. The previous
106 default would create a separate process for every LDAP or NETLOGON client
107 connection. For a network with a lot of persistent client connections, this
108 could result in significant memory overhead.  Now, with the new default of
109 'prefork', the LDAP, NETLOGON, and KDC services will create a fixed number of
110 worker processes at startup and share the client connections amongst these
111 workers. The number of worker processes can be configured by the 'prefork
112 children' setting in the smb.conf (the default is 4).
114 Authentication Logging
115 ----------------------
117 Winbind now logs PAM_AUTH and NTLM_AUTH events, a new attribute "logonId" has
118 been added to the Authentication JSON log messages.  This contains a random
119 logon id that is generated for each PAM_AUTH and NTLM_AUTH request and is passed
120 to SamLogon, linking the windbind and SamLogon requests.
122 The serviceDescription of the messages is set to "winbind", the authDescription
123 is set to one of:
124    "PASSDB, <command>, <pid>"
125    "PAM_AUTH, <command>, <pid>"
126    "NTLM_AUTH, <command>, <pid>"
127 where:
128    <command> is the name of the command makinmg the winbind request i.e. wbinfo
129    <pid>     is the process id of the requesting process.
131 The version of the JSON Authentication messages has been changed from 1.1 to
132 1.2.
134 LDAP referrals
135 --------------
137 The scheme of returned LDAP referrals now reflects the scheme of the original
138 request, i.e. referrals received via ldap are prefixed with "ldap://"
139 and those over ldaps are prefixed with "ldaps://".
141 Previously all referrals were prefixed with "ldap://".
143 Bind9 logging
144 -------------
146 It is now possible to log the duration of DNS operations performed by Bind9.
147 This should aid future diagnosis of performance issues and could be used to
148 monitor DNS performance. The logging is enabled by setting log level to
149 "dns:10" in smb.conf.
151 The logs are currently human readable text only, i.e. no JSON formatted output.
153 Log lines are of the form:
155     <function>: DNS timing: result: [<result>] duration: (<duration>)
156     zone: [<zone>] name: [<name>] data: [<data>]
158     durations are in microseconds.
160 Default schema updated to 2012_R2
161 ---------------------------------
163 Default AD schema changed from 2008_R2 to 2012_R2.  2012_R2 functional level
164 is not yet available.  Older schemas can be used by provisioning with the
165 '--base-schema' argument.  Existing installations can be updated with the
166 samba-tool command "domain schemaupgrade".
168 Samba's replication code has also been improved to handle replication
169 with the 2012 schema (the core of this replication fix has also been
170 backported to 4.9.11 and will be in a 4.10.x release).
172 For more about how the AD schema relates to overall Windows compatibility,
173 please read:
174 https://wiki.samba.org/index.php/Windows_2012_Server_compatibility
176 GnuTLS 3.2 required
177 -------------------
179 Samba is making efforts to remove in-tree cryptographic functionality,
180 and to instead rely on externally maintained libraries.  To this end,
181 Samba has chosen GnuTLS as our standard cryptographic provider.
183 Samba now requires GnuTLS 3.2 to be installed (including development
184 headers at build time) for all configurations, not just the Samba AD
187 NOTE WELL: The use of GnuTLS means that Samba will honour the
188 system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
189 standard) and so will not operate in many still common situations if
190 this system-wide parameter is in effect, as many of our protocols rely
191 on outdated cryptography.
193 A future Samba version will mitigate this to some extent where good
194 cryptography effectively wraps bad cryptography, but for now that above
195 applies.
197 samba-tool improvements
198 -----------------------
200 A new "samba-tool contact" command has been added to allow the
201 command-line manipulation of contacts, as used for address book
202 lookups in LDAP.
204 The "samba-tool [user|group|computer|group|contact] edit" command has been
205 improved to operate more pleasantly on international character sets.
207 100,000 USER and LARGER Samba AD DOMAINS
208 ========================================
210 Extensive efforts have been made to optimise Samba for use in
211 organisations (for example) targeting 100,000 users, plus 120,000
212 computer objects, as well as large number of group memberships.
214 Many of the specific efforts are detailed below, but the net results
215 is to remove barriers to significantly larger Samba deployments
216 compared to previous releases.
218 Reindex performance improvements
219 --------------------------------
221 The performance of samba-tool dbcheck --reindex has been improved,
222 especially for large domains.
224 join performance improvements
225 -----------------------------
227 The performance of samba-tool domain join has been improved,
228 especially for large domains.
230 LDAP Server memory improvements
231 -------------------------------
233 The LDAP server has improved memory efficiency, ensuring that large
234 LDAP responses (for example a search for all objects) is not copied
235 multiple times into memory.
237 Setting lmdb map size
238 ---------------------
240 It is now possible to set the lmdb map size (the maximum permitted
241 size for the database).  "samba-tool" now accepts the
242 "--backend-store-size" i.e. --backend-store-size=4Gb.  If not
243 specified it defaults to 8Gb.
245 This option is avaiable for the following sub commands:
246  * domain provision
247  * domain join
248  * domain dcpromo
249  * drs clone-dc-database
251 LDB "batch_mode"
252 ----------------
254 To improve performance during batch operations i.e. joins, ldb now
255 accepts a "batch_mode" option.  However to prevent any index or
256 database inconsistencies if an operation fails, the entire transaction
257 will be aborted at commit.
259 New LDB pack format
260 -------------------
262 On first use (startup of 'samba' or the first transaction write)
263 Samba's sam.ldb will be updated to a new more efficient pack format.
264 This will take a few moments.
266 New LDB <= and >= index mode to improve replication performance
267 ---------------------------------------------------------------
269 As well as a new pack format, Samba's sam.ldb uses a new index format
270 allowing Samba to efficiently select objects changed since the last
271 replication cycle.  This in turn improves performance during
272 replication of large domains.
274 https://wiki.samba.org/index.php/LDB_Greater_than_and_Less_than_indexing
276 Improvements to ldb search performance
277 --------------------------------------
279 Search performance on large LDB databases has been improved by
280 reducing memory allocations made on each object.
282 Improvements to subtree rename performance
283 ------------------------------------------
285 Improvements have been made to Samba's handling of subtree renames,
286 for example of containers and organisational units, however large
287 renames are still not recommended.
289 CTDB changes
290 ============
292 * nfs-linux-kernel-callout now defaults to using systemd service names
294   The Red Hat service names continue to be the default.
296   Other distributions should patch this file when packaging it.
298 * The onnode -o option has been removed
300 * ctdbd logs when it is using more than 90% of a CPU thread
302   ctdbd is single threaded, so can become saturated if it uses the
303   full capacity of a CPU thread.  To help detect this situation, ctdbd
304   now logs messages when CPU utilisation exceeds 90%.  Each change in
305   CPU utilisation over 90% is logged.  A message is also logged when
306   CPU utilisation drops below the 90% threshold.
308 * Script configuration variable CTDB_MONITOR_SWAP_USAGE has been removed
310   05.system.script now monitors total memory (i.e. physical memory +
311   swap) utilisation using the existing CTDB_MONITOR_MEMORY_USAGE
312   script configuration variable.
314 CephFS Snapshot Integration
315 ---------------------------
317 CephFS snapshots can now be exposed as previous file versions using the new
318 ceph_snapshots VFS module. See the vfs_ceph_snapshots(8) man page for details.
321 REMOVED FEATURES
322 ================
324 Web server
325 ----------
327 As a leftover from work related to the Samba Web Administration Tool (SWAT),
328 Samba still supported a Python WSGI web server (which could still be turned on
329 from the 'server services' smb.conf parameter). This service was unused and has
330 now been removed from Samba.
332 samba-tool join subdomain
333 -------------------------
335 The subdomain role has been removed from the join command.  This option did
336 not work and has no tests.
338 Python2 support
339 ---------------
341 Samba 4.11 will not have any runtime support for Python 2.
343 If you are building Samba using the '--disable-python' option
344 (i.e. you're excluding all the run-time Python support), then this
345 will continue to work on a system that supports either python2 or
346 python3.
348 To build Samba with python2 you *must* set the 'PYTHON' environment
349 variable for both the 'configure' and 'make' steps, i.e.
350    'PYTHON=python2 ./configure'
351    'PYTHON=python2 make'
352 This will override the python3 default.
354 Except for this specific build-time use of python2, Samba now requires
355 Python 3.4 as a minimum.
357 smb.conf changes
358 ================
360   Parameter Name                     Description                Default
361   --------------                     -----------                -------
363   allocation roundup size            Default changed/           0
364                                      Deprecated
365   client min protocol                Changed default            SMB2_02
366   server min protocol                Changed default            SMB2_02
367   mangled names                      Changed default            illegal
368   web port                           Removed
369   fruit:zero_file_id                 Changed default            False
370   debug encryption                   New: dump encryption keys  False
371   rndc command                       Deprecated
372   lanman auth                        Deprecated
373   encrypt passwords                  Deprecated
376 CHANGES SINCE 4.11.0rc2
377 =======================
379 o  Michael Adam <obnox@samba.org>
380    * BUG 13972: Different Device Id for GlusterFS FUSE mount is causing data
381      loss in CTDB cluster.
383 o  Jeremy Allison <jra@samba.org>
384    * BUG 14035: CVE-2019-10197: Permissions check deny can allow user to escape
385      from the share.
387 o  Andrew Bartlett <abartlet@samba.org>
388    * BUG 14059: ldb: Release ldb 2.0.6 (log database repack so users know what
389      is happening).
390    * BUG 14092: docs: Deprecate "rndc command" for Samba 4.11.
392 o  Tim Beale <timbeale@catalyst.net.nz>
393    * BUG 14059: ldb: Free memory when repacking database.
395 o  Ralph Boehme <slow@samba.org>
396    * BUG 14089: vfs_default: Use correct flag in vfswrap_fs_file_id.
397    * BUG 14090: vfs_glusterfs: Initialize st_ex_file_id, st_ex_itime and
398      st_ex_iflags.
400 o  Anoop C S <anoopcs@redhat.com>
401    * BUG 14093: vfs_glusterfs: Enable profiling for file system operations.
403 o  Aaron Haslett <aaronhaslett@catalyst.net.nz>
404    * BUG 14059: Backport sambadowngradedatabase for v4.11.
406 o  Stefan Metzmacher <metze@samba.org>
407    * BUG 14035: CVE-2019-10197: Permissions check deny can allow user to escape
408      from the share.
410 o  Christof Schmitt <cs@samba.org>
411    * BUG 14032: vfs_gpfs: Implement special case for denying owner access to
412      ACL.
414 o  Martin Schwenke <martin@meltin.net>
415    * BUG 14084: Avoid marking a node as connected before it can receive packets.
416    * BUG 14086: Fix onnode test failure with ShellCheck >= 0.4.7.
417    * BUG 14087: ctdb-daemon: Stop "ctdb stop" from completing before freezing
418      databases.
421 KNOWN ISSUES
422 ============
424 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.11#Release_blocking_bugs
427 #######################################
428 Reporting bugs & Development Discussion
429 #######################################
431 Please discuss this release on the samba-technical mailing list or by
432 joining the #samba-technical IRC channel on irc.freenode.net.
434 If you do report problems then please try to send high quality
435 feedback. If you don't provide vital information to help us track down
436 the problem then you will probably be ignored.  All bug reports should
437 be filed under the Samba 4.1 and newer product in the project's Bugzilla
438 database (https://bugzilla.samba.org/).
441 ======================================================================
442 == Our Code, Our Bugs, Our Responsibility.
443 == The Samba Team
444 ======================================================================