samba-tool group delete: use binary encoded group name
[Samba.git] / WHATSNEW.txt
blob2578423e35d67fb49dadf7db490e614ebe78ba47
1                    ==============================
2                    Release Notes for Samba 4.12.0
3                            March 03, 2020
4                    ==============================
7 This is the first stable release of the Samba 4.12 release series.
8 Please read the release notes carefully before upgrading.
11 NEW FEATURES/CHANGES
12 ====================
14 Python 3.5 Required
15 -------------------
17 Samba's minimum runtime requirement for python was raised to Python
18 3.4 with samba 4.11.  Samba 4.12 raises this minimum version to Python
19 3.5 both to access new features and because this is the oldest version
20 we test with in our CI infrastructure.
22 (Build time support for the file server with Python 2.6 has not
23 changed)
25 Removing in-tree cryptography: GnuTLS 3.4.7 required
26 ----------------------------------------------------
28 Samba is making efforts to remove in-tree cryptographic functionality,
29 and to instead rely on externally maintained libraries.  To this end,
30 Samba has chosen GnuTLS as our standard cryptographic provider.
32 Samba now requires GnuTLS 3.4.7 to be installed (including development
33 headers at build time) for all configurations, not just the Samba AD
34 DC.
36 Thanks to this work Samba no longer ships an in-tree DES
37 implementation and on GnuTLS 3.6.5 or later Samba will include no
38 in-tree cryptography other than the MD4 hash and that
39 implemented in our copy of Heimdal.
41 Using GnuTLS for SMB3 encryption you will notice huge performance and copy
42 speed improvements. Tests with the CIFS Kernel client from Linux Kernel 5.3
43 show a 3x speed improvement for writing and a 2.5x speed improvement for reads!
45 NOTE WELL: The use of GnuTLS means that Samba will honour the
46 system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
47 standard) and so will not operate in many still common situations if
48 this system-wide parameter is in effect, as many of our protocols rely
49 on outdated cryptography.
51 A future Samba version will mitigate this to some extent where good
52 cryptography effectively wraps bad cryptography, but for now that above
53 applies.
55 zlib library is now required to build Samba
56 -------------------------------------------
58 Samba no longer includes a local copy of zlib in our source tarball.
59 By removing this we do not need to ship (even where we did not
60 build) the old, broken zip encryption code found there.
62 New Spotlight backend for Elasticsearch
63 ---------------------------------------
65 Support for the macOS specific Spotlight search protocol has been enhanced
66 significantly. Starting with 4.12 Samba supports using Elasticsearch as search
67 backend. Various new parameters have been added to configure this:
69   spotlight backend = noindex | elasticsearch | tracker
70   elasticsearch:address = ADDRESS
71   elasticsearch:port = PORT
72   elasticsearch:use tls = BOOLEAN
73   elasticsearch:index = INDEXNAME
74   elasticsearch:mappings = PATH
75   elasticsearch:max results = NUMBER
77 Samba also ships a Spotlight client command "mdfind" which can be used to search
78 any SMB server that runs the Spotlight RPC service. See the manpage of mdfind
79 for details.
81 Note that when upgrading existing installations that are using the previous
82 default Spotlight backend Gnome Tracker must explicitly set "spotlight backend =
83 tracker" as the new default is "noindex".
85 'net ads kerberos pac save' and 'net eventlog export'
86 -----------------------------------------------------
88 The 'net ads kerberos pac save' and 'net eventlog export' tools will
89 no longer silently overwrite an existing file during data export.  If
90 the filename given exits, an error will be shown.
92 Fuzzing
93 -------
95 A large number of fuzz targets have been added to Samba, and Samba has
96 been registered in Google's oss-fuzz cloud fuzzing service.  In
97 particular, we now have good fuzzing coverage of our generated NDR
98 parsing code.
100 A large number of issues have been found and fixed thanks to this
101 effort.
103 'samba-tool' improvements add contacts as member to groups
104 ----------------------------------------------------------
106 Previously 'samba-tool group addmemers' can just add users, groups and
107 computers as members to groups. But also contacts can be members of
108 groups. Samba 4.12 adds the functionality to add contacts to
109 groups. Since contacts have no sAMAccountName, it's possible that
110 there are more than one contact with the same name in different
111 organizational units. Therefore it's necessary to have an option to
112 handle group members by their DN.
114 To get the DN of an object there is now the "--full-dn" option available
115 for all necessary commands.
117 The MS Windows UI allows to search for specific types of group members
118 when searching for new members for a group. This feature is included
119 here with the new samba-tool group addmembers "--object-type=OBJECTYPE"
120 option. The different types are selected accordingly to the Windows
121 UI. The default samba-toole behaviour shouldn't be changed.
123 Allow filtering by OU or subtree in samba-tool
124 ----------------------------------------------
126 A new "--base-dn" and "--member-base-dn" option is added to relevant
127 samba-tool user, group and ou management commands to allow operation
128 on just one part of the AD tree, such as a single OU.
133 SMB_VFS_NTIMES
134 --------------
136 Samba now uses a sentinel value based on utimensat(2) UTIME_OMIT to denote
137 to-be-ignored timestamp variables passed to the SMB_VFS_NTIMES() VFS function.
139 VFS modules can check whether any of the time values inside a struct
140 smb_file_time is to be ignored by calling is_omit_timespec() on the value.
142 'io_uring' vfs module
143 ---------------------
145 The module makes use of the new io_uring infrastructure
146 (intruduced in Linux 5.1), see https://lwn.net/Articles/776703/
148 Currently this implements SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV
149 and avoids the overhead of the userspace threadpool in the default
150 vfs backend. See also vfs_io_uring(8).
152 In order to build the module you need the liburing userspace library
153 and its developement headers installed, see
154 https://git.kernel.dk/cgit/liburing/
156 At runtime you'll need a Linux kernel with version 5.1 or higher.
157 Note that 5.4.14 and 5.4.15 have a regression that breaks the Samba
158 module! The regression was fixed in Linux 5.4.16 again.
160 MS-DFS changes in the VFS
161 -------------------------
163 This release changes set getting and setting of MS-DFS redirects
164 on the filesystem to go through two new VFS functions:
166 SMB_VFS_CREATE_DFS_PATHAT()
167 SMB_VFS_READ_DFS_PATHAT()
169 instead of smbd explicitly storing MS-DFS redirects inside
170 symbolic links on the filesystem. The underlying default
171 implementations of this has not changed, the redirects are
172 still stored inside symbolic links on the filesystem, but
173 moving the creation and reading of these links into the VFS
174 as first-class functions now allows alternate methods of
175 storing them (maybe in extended attributes) for OEMs who
176 don't want to mis-use filesystem symbolic links in this
177 way.
180 CTDB changes
181 ============
183 * The ctdb_mutex_fcntl_helper periodically re-checks the lock file
185   The re-check period is specified using a 2nd argument to this
186   helper.  The default re-check period is 5s.
188   If the file no longer exists or the inode number changes then the
189   helper exits.  This triggers an election.
192 REMOVED FEATURES
193 ================
195 The smb.conf parameter "write cache size" has been removed.
197 Since the in-memory write caching code was written, our write path has
198 changed significantly. In particular we have gained very flexible
199 support for async I/O, with the new linux io_uring interface in
200 development.  The old write cache concept which cached data in main
201 memory followed by a blocking pwrite no longer gives any improvement
202 on modern systems, and may make performance worse on memory-contrained
203 systems, so this functionality should not be enabled in core smbd
204 code.
206 In addition, it complicated the write code, which is a performance
207 critical code path.
209 If required for specialist purposes, it can be recreated as a VFS
210 module.
212 Retiring DES encryption types in Kerberos.
213 ------------------------------------------
214 With this release, support for DES encryption types has been removed from
215 Samba, and setting DES_ONLY flag for an account will cause Kerberos
216 authentication to fail for that account (see RFC-6649).
218 Samba-DC: DES keys no longer saved in DB.
219 -----------------------------------------
220 When a new password is set for an account, Samba DC will store random keys
221 in DB instead of DES keys derived from the password.  If the account is being
222 migrated to Windbows or to an older version of Samba in order to use DES keys,
223 the password must be reset to make it work.
225 Heimdal-DC: removal of weak-crypto.
226 -----------------------------------
227 Following removal of DES encryption types from Samba, the embedded Heimdal
228 build has been updated to not compile weak crypto code (HEIM_WEAK_CRYPTO).
230 vfs_netatalk: The netatalk VFS module has been removed.
231 -------------------------------------------------------
233 The netatalk VFS module has been removed. It was unmaintained and is not needed
234 any more.
236 BIND9_FLATFILE deprecated
237 -------------------------
239 The BIND9_FLATFILE DNS backend is deprecated in this release and will
240 be removed in the future.  This was only practically useful on a single
241 domain controller or under expert care and supervision.
243 This release removes the 'rndc command' smb.conf parameter, which
244 supported this configuration by writing out a list of DCs permitted to
245 make changes to the DNS Zone and nudging the 'named' server if a new
246 DC was added to the domain.  Administrators using BIND9_FLATFILE will
247 need to maintain this manually from now on.
250 smb.conf changes
251 ================
253   Parameter Name                     Description                Default
254   --------------                     -----------                -------
256   elasticsearch:address              New                        localhost
257   elasticsearch:port                 New                        9200
258   elasticsearch:use tls              New                        No
259   elasticsearch:index                New                        _all
260   elasticsearch:mappings             New                        DATADIR/elasticsearch_mappings.json
261   elasticsearch:max results          New                        100
262   nfs4:acedup                        Changed default            merge
263   rndc command                       Removed
264   write cache size                   Removed
265   spotlight backend                  New                        noindex
268 CHANGES SINCE 4.12.0rc4
269 =======================
271 o  Andrew Bartlett <abartlet@samba.org>
272    * BUG 14258: dsdb: Correctly handle memory in objectclass_attrs.
275 CHANGES SINCE 4.12.0rc3
276 =======================
278 o  Jeremy Allison <jra@samba.org>
279    * BUG 14269: s3: DFS: Don't allow link deletion on a read-only share.
281 o  Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
282    * BUG 14284: pidl/wscript: configure should insist on Parse::Yapp::Driver.
284 o  Andrew Bartlett <abartlet@samba.org>
285    * BUG 14270: ldb: Fix search with scope ONE and small result sets. 
286    * BUG 14284: build: Do not check if system perl modules should be bundled.
288 o  Volker Lendecke <vl@samba.org>
289    * BUG 14285: smbd fails to handle EINTR from open(2) properly.
291 o  Stefan Metzmacher <metze@samba.org>
292    * BUG 14270: ldb: version 2.1.1.
295 CHANGES SINCE 4.12.0rc2
296 =======================
298 o  Jeremy Allison <jra@samba.org>
299    * BUG 14282: Set getting and setting of MS-DFS redirects on the filesystem
300      to go through two new VFS functions SMB_VFS_CREATE_DFS_PATHAT() and
301      SMB_VFS_READ_DFS_PATHAT().
303 o  Andrew Bartlett <abartlet@samba.org>
304    * BUG 14255: bootstrap: Remove un-used dependency python3-crypto.
306 o  Volker Lendecke <vl@samba.org>
307    * BUG 14247: Fix CID 1458418 and 1458420.
308    * BUG 14281: lib: Fix a shutdown crash with "clustering = yes".
310 o  Stefan Metzmacher <metze@samba.org>
311    * BUG 14247: Winbind member (source3) fails local SAM auth with empty domain
312      name.
313    * BUG 14265: winbindd: Handle missing idmap in getgrgid().
314    * BUG 14271: Don't use forward declaration for GnuTLS typedefs.
315    * BUG 14280: Add io_uring vfs module.
317 o  Andreas Schneider <asn@samba.org>
318    * BUG 14250: libcli:smb: Improve check for gnutls_aead_cipher_(en|de)cryptv2.
321 CHANGES SINCE 4.12.0rc1
322 =======================
324 o  Jeremy Allison <jra@samba.org>
325    * BUG 14239: s3: lib: nmblib. Clean up and harden nmb packet processing.
327 o  Andreas Schneider <asn@samba.org>
328    * BUG 14253: lib:util: Log mkdir error on correct debug levels.
331 KNOWN ISSUES
332 ============
334 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.12#Release_blocking_bugs
337 #######################################
338 Reporting bugs & Development Discussion
339 #######################################
341 Please discuss this release on the samba-technical mailing list or by
342 joining the #samba-technical IRC channel on irc.freenode.net.
344 If you do report problems then please try to send high quality
345 feedback. If you don't provide vital information to help us track down
346 the problem then you will probably be ignored.  All bug reports should
347 be filed under the Samba 4.1 and newer product in the project's Bugzilla
348 database (https://bugzilla.samba.org/).
351 ======================================================================
352 == Our Code, Our Bugs, Our Responsibility.
353 == The Samba Team
354 ======================================================================