Difference between revisions of "Samba 4.6 Features added/changed"

m (Updated category)
(Samba 4.6.0)
Line 1: Line 1:
==Samba 4.6.0 rc3==
+
==Samba 4.6.0==
:Release Notes for Samba 4.6.0 rc3
+
:Release Notes for Samba 4.6.0
:February 14, 2017
+
:March 7, 2017
  
 
===Release Announcements===
 
===Release Announcements===
  
This is the third release candidate of Samba 4.6.  This is *not* intended for production environments and is designed for testing purposes only.  Please report any defects via the Samba bug reporting system at
+
This is the first stable release of Samba 4.6.
https://bugzilla.samba.org/.
 
  
Samba 4.6 will be the next version of the Samba suite.
+
Please read the release notes carefully before upgrading.
  
 +
===UPGRADING===
 +
 +
====ID Mapping====
 +
We discovered that the majority of users have an invalid or incorrect ID mapping configuration. We implemented checks in the 'testparm' tool to validate the ID mapping configuration. You should run it and check if it prints any warnings or errors after upgrading! If it does you should fix them. See the 'IDENTITY MAPPING CONSIDERATIONS' section in the smb.conf manpage. There are some ID mapping backends which are not allowed to be used for the default backend. Winbind will no longer start if an invalid backend is configured as the default backend.
  
===UPGRADING===
+
To avoid problems in future we advise all users to run 'testparm' after changing the smb.conf file!
  
 
====vfs_fruit option "fruit:resource" spelling correction====
 
====vfs_fruit option "fruit:resource" spelling correction====
Line 23: Line 26:
 
Users who were using the wrong spelling "ressource" with two "s" can keep the setting, but are advised to switch to the correct spelling.
 
Users who were using the wrong spelling "ressource" with two "s" can keep the setting, but are advised to switch to the correct spelling.
  
====ID Mapping====
+
====vfs_fruit Netatalk metadata xattr name on *BSD====
We discovered that the majority of users have an invalid or incorrect ID mapping configuration. We implemented checks in the 'testparm' tool to validate the ID mapping configuration. You should run it and check if it prints any warnings or errors after upgrading! If it does you should fix them. See the 'IDENTITY MAPPING CONSIDERATIONS' section in the smb.conf manpage. There are some ID mapping backends which are not allowed to be used for the default backend. Winbind will no longer start if an invalid backend is configured as the default backend.
+
 
 +
Users on *BSD must rename the metadata xattr used by vfs_fruit when using the default setting "fruit:metadata = netatalk".
 +
 
 +
Due to a glitch in the Samba xattr API compatibility layer for FreeBSD and a mistake in vfs_fruit, vfs_fruit ended up using the wrong xattr name when configured with "fruit:metadata = netatalk" (default). Instead of the correct
 +
 
 +
  org.netatalk.Metadata
 +
 
 +
it used
  
To avoid problems in future we advise all users to run 'testparm' after changing the smb.conf file!
+
  netatalk.Metadata
  
 +
Starting with Samba 4.6 vfs_fruit will use the correct "org.netatalk.Metadata" which means existing installations must rename this xattrs. For this purpose Samba now includes a new tool `mvxattr`. See below for further details.
  
 
===NEW FEATURES/CHANGES===
 
===NEW FEATURES/CHANGES===
Line 41: Line 52:
 
The OS Version for the printing server has been increased to announce Windows Server 2003 R2 SP2. If a driver needs a newer version then you should check the smb.conf manpage for details.
 
The OS Version for the printing server has been increased to announce Windows Server 2003 R2 SP2. If a driver needs a newer version then you should check the smb.conf manpage for details.
  
====new option for owner inheritance====
+
====New option for owner inheritance====
  
 
The "inherit owner" smb.conf parameter instructs smbd to set the owner of files to be the same as the parent directory's owner. Up until now, this parameter could be set to "yes" or "no". A new option, "unix only", enables this feature only for the UNIX owner of the file, not affecting the SID owner in the Windows NT ACL of the file. This can be used to emulate something very similar to folder quotas.
 
The "inherit owner" smb.conf parameter instructs smbd to set the owner of files to be the same as the parent directory's owner. Up until now, this parameter could be set to "yes" or "no". A new option, "unix only", enables this feature only for the UNIX owner of the file, not affecting the SID owner in the Windows NT ACL of the file. This can be used to emulate something very similar to folder quotas.
Line 51: Line 62:
 
As part of this change, the NETLOGON service will now run on a distinct TCP port, rather than being shared with all other RPC services (LSA, SAMR, DRSUAPI etc).
 
As part of this change, the NETLOGON service will now run on a distinct TCP port, rather than being shared with all other RPC services (LSA, SAMR, DRSUAPI etc).
  
====new options for controlling TCP ports used for RPC services====
+
====New options for controlling TCP ports used for RPC services====
  
 
The new 'rpc server port' option controls the default port used for RPC services other than Netlogon.  The Netlogon server honours instead the 'rpc server port:netlogon' option.  The default value for both these options is the first available port including or after 1024.
 
The new 'rpc server port' option controls the default port used for RPC services other than Netlogon.  The Netlogon server honours instead the 'rpc server port:netlogon' option.  The default value for both these options is the first available port including or after 1024.
  
====Improve AD performance and replication improvements====
+
====AD LDAP and replication performance improvements====
  
Samba's LDB and replication code continues to improve, particularly in respect to the handling of large numbers of linked attributes. We now respect an 'uptodateness vector' which will dramatically reduce the over-replication of links from new DCs. We have also made the parsing of on-disk linked attributes much more efficient.
+
Samba's LDB (the database holding the AD directory tree, as seen via LDAP) and our DRSUAPI replication code continues to improve, particularly in respect to the handling of large numbers of objects or linked attributes.
 +
 
 +
* We now respect an 'uptodateness vector' which will dramatically reduce the over-replication of links from new DCs.
 +
* We have also made the parsing of on-disk linked attributes much more efficient.
 +
* We rely on ldb 1.1.28.  This ldb version has improved memory handling for ldb search results, improving poorly indexed and unindexed search result processing speed by around 20%.
  
 
====DNS improvements====
 
====DNS improvements====
Line 82: Line 97:
 
:: ctdb-recovery: Messages from CTDB database recovery
 
:: ctdb-recovery: Messages from CTDB database recovery
 
:: ctdb-eventd: Messages from CTDB's event daemon
 
:: ctdb-eventd: Messages from CTDB's event daemon
:: ctdb-takeover: Messgaes from CTDB's public IP takeover subsystem
+
:: ctdb-takeover: Messages from CTDB's public IP takeover subsystem
  
 
* The mapping between symbolic and numeric debug levels has changed
 
* The mapping between symbolic and numeric debug levels has changed
Line 88: Line 103:
  
 
*  Tunable IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs
 
*  Tunable IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs
::  See ctdb-tunables(7) for details
+
::  See ctdb-tunables(7) for details.
  
 
* CTDB's configuration tunables should be consistently set across a cluster
 
* CTDB's configuration tunables should be consistently set across a cluster
Line 95: Line 110:
 
* CTDB ships with recovery lock helper call-outs for etcd and Ceph RADOS
 
* CTDB ships with recovery lock helper call-outs for etcd and Ceph RADOS
 
::  To build/install these, use the
 
::  To build/install these, use the
::: --enable-etcd-reclock and
+
::: "--enable-etcd-reclock" and
::: --enable-ceph-reclock configure options.
+
::: "--enable-ceph-reclock" configure options.
  
 
====winbind changes====
 
====winbind changes====
  
4.6 winbind simplifies the calculation of supplementary groups to make it more reliable and predictable. Before 4.6, winbind contained code that tried to emulate the group membership calculation that domain controllers do when a user logs in. This group membership calculation is a very complex process, in particular for domain trust relationship situations. Also, in many scenarios it is impossible for winbind to correctly do this calculation due to access restrictions in the domains: winbind using its machine account simply does not have the rights to ask for an arbitrary user's group memberships.
+
winbind contains code that tries to emulate the group membership calculation that domain controllers do when a user logs in. This group membership calculation is a very complex process, in particular for domain trust relationship situations. Also, in many scenarios it is impossible for winbind to correctly do this calculation due to access restrictions in the domains: winbind using its machine account simply does not have the rights to ask for an arbitrary user's group memberships.
  
 
When a user logs in to a Samba server, the domain controller correctly calculates the user's group memberships authoritatively and makes the information available to the Samba server. This is the only reliable way Samba can get informed about the groups a user is member of.
 
When a user logs in to a Samba server, the domain controller correctly calculates the user's group memberships authoritatively and makes the information available to the Samba server. This is the only reliable way Samba can get informed about the groups a user is member of.
  
Because of its flakiness, the fallback group membership code was removed.
+
Because of its flakiness, the fallback group membership code is unwished, and our code pathes try hard to only use of the group memberships calculated by the domain controller.
 +
 
 +
However, a lot of admins rely on the fallback behavior in order to support access for nfs access, ssh public key authentication and passwordless sudo.
 +
 
 +
That's the reason for changing this back between 4.6.0rc4 and 4.6.0 (See [https://bugzilla.samba.org/show_bug.cgi?id=12612 BUG #12612]).
 +
 
 +
The winbind change to simplify the calculation of supplementary groups to make it more reliable and predictable has been deferred to 4.7 or later.
  
 
This means that "id <username>" without the user having logged in previously stops showing any supplementary groups. Also, it will show "DOMAIN\Domain Users" as the primary group. Once the user has logged in, "id <username>" will correctly show the primary group and supplementary group list.
 
This means that "id <username>" without the user having logged in previously stops showing any supplementary groups. Also, it will show "DOMAIN\Domain Users" as the primary group. Once the user has logged in, "id <username>" will correctly show the primary group and supplementary group list.
Line 121: Line 142:
  
 
to retrieve the home directory and login shell from the "Unix Attributes" of the user. This supersedes the "winbind nss info" parameter with a per-domain configuration option.
 
to retrieve the home directory and login shell from the "Unix Attributes" of the user. This supersedes the "winbind nss info" parameter with a per-domain configuration option.
 +
 +
====mvxattr====
 +
 +
mvxattr is a simple utility to recursively rename extended attributes of all files and directories in a directory tree.
 +
 +
  Usage: mvxattr -s STRING -d STRING PATH [PATH ...]
 +
    -s, --from=STRING        xattr source name
 +
    -d, --to=STRING          xattr destination name
 +
    -l, --follow-symlinks    follow symlinks, the default is to ignore them
 +
    -p, --print              print files where the xattr got renamed
 +
    -v, --verbose            print files as they are checked
 +
    -f, --force              force overwriting of destination xattr
 +
 +
  Help options:
 +
    -?, --help                Show this help message
 +
    --usage                  Display brief usage message
 +
 +
====idmap_hash====
 +
 +
The idmap_hash module is marked as deprecated with this release and will be removed in a future version. See the manpage of the module for details.
  
 
===smb.conf changes===
 
===smb.conf changes===
Line 135: Line 176:
 
===KNOWN ISSUES===
 
===KNOWN ISSUES===
  
Currently none.
+
https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.6#Release_blocking_bugs
 +
 
 +
=====CHANGES SINCE 4.6.0rc4=====
 +
*  Jeremy Allison <jra@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12592 BUG #12592]: Fix several issues found by covscan.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12608 BUG #12608]: s3: smbd: Restart reading the incoming SMB2 fd when the send queue is drained.
 +
*  Ralph Boehme <slow@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12427 BUG #12427]: vfs_fruit doesn't work with fruit:metadata=stream.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12526 BUG #12526]: vfs_fruit: Only veto AppleDouble files if "fruit:resource" is set to "file".
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12604 BUG #12604]: vfs_fruit: Enabling AAPL extensions must be a global switch.
 +
*  Volker Lendecke <vl@samba.org>
 +
:* BUG 12612: Re-enable token groups fallback.
 +
*  Stefan Metzmacher <metze@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=9048 BUG #9048]: Samba4 ldap error codes.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12557 BUG #12557]: gensec:spnego: Add debug message for the failed principal.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12605 BUG #12605]: s3:winbindd: Fix endless forest trust scan.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12612 BUG #12612]: winbindd: Find the domain based on the sid within wb_lookupusergroups_send().
 +
*  Andreas Schneider <asn@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12557 BUG #12557]: s3:librpc: Handle gss_min in gse_get_client_auth_token() correctly.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12582 BUG #12582]: idmap_hash: Add a deprecation message, improve the idmap_hash manpage.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12592 BUG #12592]: Fix several issues found by covscan.
 +
*  Martin Schwenke <martin@meltin.net>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12592 BUG #12592]: ctdb-logging: CID 1396883 Dereference null return value (NULL_RETURNS).
 +
 
 +
=====CHANGES SINCE 4.6.0rc3=====
 +
*  Jeremy Allison <jra@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12545 BUG #12545]: s3: rpc_server/mdssvc: Add attribute "kMDItemContentType".
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12572 BUG #12572]: s3: smbd: Don't loop infinitely on bad-symlink resolution.
 +
*  Ralph Boehme <slow@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12490 BUG #12490]: vfs_fruit: Correct Netatalk metadata xattr on FreeBSD.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12536 BUG #12536]: s3/smbd: Check for invalid access_mask smbd_calculate_access_mask().
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12591 BUG #12591]: vfs_streams_xattr: use fsp, not base_fsp.
 +
*  Amitay Isaacs <amitay@gmail.com>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12580 BUG #12580]: ctdb-common: Fix use-after-free error in comm_fd_handler().
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12595 BUG #12595]: build: Fix generation of CTDB manpages while creating tarball.
 +
*  Bryan Mason <bmason@redhat.com>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12575 BUG #12575]: Modify smbspool_krb5_wrapper to just fall through to smbspool if  AUTH_INFO_REQUIRED is not set or is not "negotiate".
 +
*  Stefan Metzmacher <metze@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=11830 BUG #11830]: s3:winbindd: Try a NETLOGON connection with noauth over NCACN_NP against trusted domains.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12262 BUG #12262]: 'net ads testjoin' and smb access fails after winbindd changed the trust password.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12585 BUG #12585]: librpc/rpc: fix regression in NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE error mapping.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12586 BUG #12586]: netlogon_creds_cli_LogonSamLogon doesn't work without netr_LogonSamLogonEx.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12587 BUG #12587]: winbindd child segfaults on connect to an NT4 domain.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12588 BUG #12588]: s3:winbindd: Make sure cm_prepare_connection() only returns OK with a valid tree connect.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12598 BUG #12598]: winbindd (as member) requires kerberos against trusted ad domain, while it shouldn't.
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12598 BUG #12598]: Backport pytalloc_GenericObject_reference() related changes to 4.6.
 +
*  Garming Sam <garming@catalyst.net.nz>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12598 BUG #12598]: dbchecker: Stop ignoring linked cases where both objects are alive.
 +
*  Andreas Schneider <asn@samba.org>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12571 BUG #12571]: s3-vfs: Only walk the directory once in open_and_sort_dir().
 +
*  Martin Schwenke <martin@meltin.net>
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12589 BUG #12589]: CTDB statd-callout does not cause grace period when CTDB_NFS_CALLOUT="".
 +
:* [https://bugzilla.samba.org/show_bug.cgi?id=12595 BUG #12595]: ctdb-build: Fix RPM build.
  
 
=====CHANGES SINCE 4.6.0rc2=====
 
=====CHANGES SINCE 4.6.0rc2=====
 
 
*  Jeremy Allison <jra@samba.org>
 
*  Jeremy Allison <jra@samba.org>
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12499 BUG #12499]: s3: vfs: dirsort doesn't handle opendir of "." correctly.
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12499 BUG #12499]: s3: vfs: dirsort doesn't handle opendir of "." correctly.
Line 168: Line 260:
 
*  Uri Simchoni <uri@samba.org>
 
*  Uri Simchoni <uri@samba.org>
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12529 BUG #12529]: waf: Backport finding of pkg-config.
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12529 BUG #12529]: waf: Backport finding of pkg-config.
 
  
 
=====CHANGES SINCE 4.5.0rc1=====
 
=====CHANGES SINCE 4.5.0rc1=====
 
 
*  Amitay Isaacs <amitay@gmail.com>
 
*  Amitay Isaacs <amitay@gmail.com>
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12469 BUG #12469]: CTDB lock helper getting stuck trying to lock a record.
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12469 BUG #12469]: CTDB lock helper getting stuck trying to lock a record.
Line 193: Line 283:
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12516 BUG #12516]: /etc/iproute2/rt_tables gets populated with multiple 'default' entries.
 
:* [https://bugzilla.samba.org/show_bug.cgi?id=12516 BUG #12516]: /etc/iproute2/rt_tables gets populated with multiple 'default' entries.
  
https://download.samba.org/pub/samba/rc/samba-4.6.0rc3.WHATSNEW.txt
+
* https://www.samba.org/samba/history/samba-4.6.0.html
https://download.samba.org/pub/samba/rc/samba-4.6.0rc2.WHATSNEW.txt
 
https://download.samba.org/pub/samba/rc/samba-4.6.0rc1.WHATSNEW.txt
 
 
 
 
 
 
 
 
 
  
 
----
 
----
 
[[Category:Release Notes]]
 
[[Category:Release Notes]]

Revision as of 19:23, 7 March 2017

Samba 4.6.0

Release Notes for Samba 4.6.0
March 7, 2017

Release Announcements

This is the first stable release of Samba 4.6.

Please read the release notes carefully before upgrading.

UPGRADING

ID Mapping

We discovered that the majority of users have an invalid or incorrect ID mapping configuration. We implemented checks in the 'testparm' tool to validate the ID mapping configuration. You should run it and check if it prints any warnings or errors after upgrading! If it does you should fix them. See the 'IDENTITY MAPPING CONSIDERATIONS' section in the smb.conf manpage. There are some ID mapping backends which are not allowed to be used for the default backend. Winbind will no longer start if an invalid backend is configured as the default backend.

To avoid problems in future we advise all users to run 'testparm' after changing the smb.conf file!

vfs_fruit option "fruit:resource" spelling correction

Due to a spelling error in the vfs_fruit option parsing for the "fruit:resource" option, users who have set this option in their smb.conf were still using the default setting "fruit:resource = file" as the parser was looking for the string "fruit:ressource" (two "s").

After upgrading to this Samba version 4.6, you MUST either remove the option from your smb.conf or set it to the default "fruit:resource = file", otherwise your macOS clients will not be able to access the resource fork data.

This version Samba 4.6 accepts both the correct and incorrect spelling, but the next Samba version 4.7 will not accept the wrong spelling.

Users who were using the wrong spelling "ressource" with two "s" can keep the setting, but are advised to switch to the correct spelling.

vfs_fruit Netatalk metadata xattr name on *BSD

Users on *BSD must rename the metadata xattr used by vfs_fruit when using the default setting "fruit:metadata = netatalk".

Due to a glitch in the Samba xattr API compatibility layer for FreeBSD and a mistake in vfs_fruit, vfs_fruit ended up using the wrong xattr name when configured with "fruit:metadata = netatalk" (default). Instead of the correct

 org.netatalk.Metadata

it used

 netatalk.Metadata

Starting with Samba 4.6 vfs_fruit will use the correct "org.netatalk.Metadata" which means existing installations must rename this xattrs. For this purpose Samba now includes a new tool `mvxattr`. See below for further details.

NEW FEATURES/CHANGES

Kerberos client encryption types

Some parts of Samba (most notably winbindd) perform Kerberos client operations based on a Samba-generated krb5.conf file. A new parameter, "kerberos encryption types" allows configuring the encryption types set in this file, thereby allowing the user to enforce strong or legacy encryption in Kerberos exchanges.

The default value of "all" is compatible with previous behavior, allowing all encryption algorithms to be negotiated. Setting the parameter to "strong" only allows AES-based algorithms to be negotiated. Setting the parameter to "legacy" allows only RC4-HMAC-MD5 - the legacy algorithm for Active Directory. This can solves some corner cases of mixed environments with Server 2003R2 and newer DCs.

Printing

Support for uploading printer drivers from newer Windows clients (Windows 10) has been added until our implementation of [MS-PAR] protocol is ready. Several issues with uploading different printing drivers have been addressed.

The OS Version for the printing server has been increased to announce Windows Server 2003 R2 SP2. If a driver needs a newer version then you should check the smb.conf manpage for details.

New option for owner inheritance

The "inherit owner" smb.conf parameter instructs smbd to set the owner of files to be the same as the parent directory's owner. Up until now, this parameter could be set to "yes" or "no". A new option, "unix only", enables this feature only for the UNIX owner of the file, not affecting the SID owner in the Windows NT ACL of the file. This can be used to emulate something very similar to folder quotas.

Multi-process Netlogon support

The Netlogon server in the Samba AD DC can now run as multiple processes. The Netlogon server is a part of the AD DC that handles NTLM authentication on behalf of domain members, including file servers, NTLM-authenticated web servers and 802.1x gateways. The previous restriction to running as a single process has been removed, and it will now run in the same process model as the rest of the 'samba' binary.

As part of this change, the NETLOGON service will now run on a distinct TCP port, rather than being shared with all other RPC services (LSA, SAMR, DRSUAPI etc).

New options for controlling TCP ports used for RPC services

The new 'rpc server port' option controls the default port used for RPC services other than Netlogon. The Netlogon server honours instead the 'rpc server port:netlogon' option. The default value for both these options is the first available port including or after 1024.

AD LDAP and replication performance improvements

Samba's LDB (the database holding the AD directory tree, as seen via LDAP) and our DRSUAPI replication code continues to improve, particularly in respect to the handling of large numbers of objects or linked attributes.

  • We now respect an 'uptodateness vector' which will dramatically reduce the over-replication of links from new DCs.
  • We have also made the parsing of on-disk linked attributes much more efficient.
  • We rely on ldb 1.1.28. This ldb version has improved memory handling for ldb search results, improving poorly indexed and unindexed search result processing speed by around 20%.

DNS improvements

The samba-tool dns subcommand is now much more robust and can delete records in a number of situations where it was not possible to do so in the past.

On the server side, DNS names are now more strictly validated.

CTDB changes

  • "ctdb event" is a new top-level command for interacting with event scripts
"ctdb event status" replaces "ctdb scriptstatus" - the latter is maintained for backward compatibility but the output format has been cleaned up
"ctdb event run" replaces "ctdb eventscript"
"ctdb event script enable" replaces "ctdb enablescript"
"ctdb event script disable" replaces "ctdb disablescript"

The new command "ctdb event script list" lists event scripts.

  • CTDB's back-end for running event scripts has been replaced by a separate, long-running daemon ctdbd_eventd.
  • Running ctdb interactively will log to stderr
  • CTDB logs now include process id for each process
  • CTDB tags log messages differently. Changes include:
ctdb-recoverd: Messages from CTDB's recovery daemon
ctdb-recovery: Messages from CTDB database recovery
ctdb-eventd: Messages from CTDB's event daemon
ctdb-takeover: Messages from CTDB's public IP takeover subsystem
  • The mapping between symbolic and numeric debug levels has changed
Configurations containing numeric debug levels should be updated. Symbolic debug levels are recommended. See the DEBUG LEVEL section of ctdb(7) for details.
  • Tunable IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs
See ctdb-tunables(7) for details.
  • CTDB's configuration tunables should be consistently set across a cluster
This has always been the cases for most tunables but this fact is now documented.
  • CTDB ships with recovery lock helper call-outs for etcd and Ceph RADOS
To build/install these, use the
"--enable-etcd-reclock" and
"--enable-ceph-reclock" configure options.

winbind changes

winbind contains code that tries to emulate the group membership calculation that domain controllers do when a user logs in. This group membership calculation is a very complex process, in particular for domain trust relationship situations. Also, in many scenarios it is impossible for winbind to correctly do this calculation due to access restrictions in the domains: winbind using its machine account simply does not have the rights to ask for an arbitrary user's group memberships.

When a user logs in to a Samba server, the domain controller correctly calculates the user's group memberships authoritatively and makes the information available to the Samba server. This is the only reliable way Samba can get informed about the groups a user is member of.

Because of its flakiness, the fallback group membership code is unwished, and our code pathes try hard to only use of the group memberships calculated by the domain controller.

However, a lot of admins rely on the fallback behavior in order to support access for nfs access, ssh public key authentication and passwordless sudo.

That's the reason for changing this back between 4.6.0rc4 and 4.6.0 (See BUG #12612).

The winbind change to simplify the calculation of supplementary groups to make it more reliable and predictable has been deferred to 4.7 or later.

This means that "id <username>" without the user having logged in previously stops showing any supplementary groups. Also, it will show "DOMAIN\Domain Users" as the primary group. Once the user has logged in, "id <username>" will correctly show the primary group and supplementary group list.

winbind primary group and nss info

With 4.6, it will be possible to optionally use the primary group as set in the "Unix Attributes" tab for the local unix token of a domain user. Before 4.6, the Windows primary group was always chosen as primary group for the local unix token.

To activate the unix primary group, set

idmap config <DOMAIN> : unix_primary_group = yes

Similarly, set

idmap config <DOMAIN> : unix_nss_info = yes

to retrieve the home directory and login shell from the "Unix Attributes" of the user. This supersedes the "winbind nss info" parameter with a per-domain configuration option.

mvxattr

mvxattr is a simple utility to recursively rename extended attributes of all files and directories in a directory tree.

 Usage: mvxattr -s STRING -d STRING PATH [PATH ...]
   -s, --from=STRING         xattr source name
   -d, --to=STRING           xattr destination name
   -l, --follow-symlinks     follow symlinks, the default is to ignore them
   -p, --print               print files where the xattr got renamed
   -v, --verbose             print files as they are checked
   -f, --force               force overwriting of destination xattr
 Help options:
   -?, --help                Show this help message
   --usage                   Display brief usage message

idmap_hash

The idmap_hash module is marked as deprecated with this release and will be removed in a future version. See the manpage of the module for details.

smb.conf changes

 Parameter Name                Description             Default
 --------------                -----------             -------
 kerberos encryption types     New                     all
 inherit owner                 New option
 fruit:resource                Spelling correction
 lsa over netlogon             New (deprecated)        no
 rpc server port               New                     0


KNOWN ISSUES

https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.6#Release_blocking_bugs
CHANGES SINCE 4.6.0rc4
  • Jeremy Allison <jra@samba.org>
  • BUG #12592: Fix several issues found by covscan.
  • BUG #12608: s3: smbd: Restart reading the incoming SMB2 fd when the send queue is drained.
  • Ralph Boehme <slow@samba.org>
  • BUG #12427: vfs_fruit doesn't work with fruit:metadata=stream.
  • BUG #12526: vfs_fruit: Only veto AppleDouble files if "fruit:resource" is set to "file".
  • BUG #12604: vfs_fruit: Enabling AAPL extensions must be a global switch.
  • Volker Lendecke <vl@samba.org>
  • BUG 12612: Re-enable token groups fallback.
  • Stefan Metzmacher <metze@samba.org>
  • BUG #9048: Samba4 ldap error codes.
  • BUG #12557: gensec:spnego: Add debug message for the failed principal.
  • BUG #12605: s3:winbindd: Fix endless forest trust scan.
  • BUG #12612: winbindd: Find the domain based on the sid within wb_lookupusergroups_send().
  • Andreas Schneider <asn@samba.org>
  • BUG #12557: s3:librpc: Handle gss_min in gse_get_client_auth_token() correctly.
  • BUG #12582: idmap_hash: Add a deprecation message, improve the idmap_hash manpage.
  • BUG #12592: Fix several issues found by covscan.
  • Martin Schwenke <martin@meltin.net>
  • BUG #12592: ctdb-logging: CID 1396883 Dereference null return value (NULL_RETURNS).
CHANGES SINCE 4.6.0rc3
  • Jeremy Allison <jra@samba.org>
  • BUG #12545: s3: rpc_server/mdssvc: Add attribute "kMDItemContentType".
  • BUG #12572: s3: smbd: Don't loop infinitely on bad-symlink resolution.
  • Ralph Boehme <slow@samba.org>
  • BUG #12490: vfs_fruit: Correct Netatalk metadata xattr on FreeBSD.
  • BUG #12536: s3/smbd: Check for invalid access_mask smbd_calculate_access_mask().
  • BUG #12591: vfs_streams_xattr: use fsp, not base_fsp.
  • Amitay Isaacs <amitay@gmail.com>
  • BUG #12580: ctdb-common: Fix use-after-free error in comm_fd_handler().
  • BUG #12595: build: Fix generation of CTDB manpages while creating tarball.
  • Bryan Mason <bmason@redhat.com>
  • BUG #12575: Modify smbspool_krb5_wrapper to just fall through to smbspool if AUTH_INFO_REQUIRED is not set or is not "negotiate".
  • Stefan Metzmacher <metze@samba.org>
  • BUG #11830: s3:winbindd: Try a NETLOGON connection with noauth over NCACN_NP against trusted domains.
  • BUG #12262: 'net ads testjoin' and smb access fails after winbindd changed the trust password.
  • BUG #12585: librpc/rpc: fix regression in NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE error mapping.
  • BUG #12586: netlogon_creds_cli_LogonSamLogon doesn't work without netr_LogonSamLogonEx.
  • BUG #12587: winbindd child segfaults on connect to an NT4 domain.
  • BUG #12588: s3:winbindd: Make sure cm_prepare_connection() only returns OK with a valid tree connect.
  • BUG #12598: winbindd (as member) requires kerberos against trusted ad domain, while it shouldn't.
  • BUG #12598: Backport pytalloc_GenericObject_reference() related changes to 4.6.
  • Garming Sam <garming@catalyst.net.nz>
  • BUG #12598: dbchecker: Stop ignoring linked cases where both objects are alive.
  • Andreas Schneider <asn@samba.org>
  • BUG #12571: s3-vfs: Only walk the directory once in open_and_sort_dir().
  • Martin Schwenke <martin@meltin.net>
  • BUG #12589: CTDB statd-callout does not cause grace period when CTDB_NFS_CALLOUT="".
  • BUG #12595: ctdb-build: Fix RPM build.
CHANGES SINCE 4.6.0rc2
  • Jeremy Allison <jra@samba.org>
  • BUG #12499: s3: vfs: dirsort doesn't handle opendir of "." correctly.
  • BUG #12546: s3: VFS: vfs_streams_xattr.c: Make streams_xattr_open() store the same path as streams_xattr_recheck().
  • BUG #12531: Make vfs_shadow_copy2 cope with server changing directories.
  • Andrew Bartlett <abartlet@samba.org>
  • BUG #12543: samba-tool: Correct handling of default value for use_ntvfs and use_xattrs.
  • BUG #12573: Samba < 4.7 does not know about compatibleFeatures and requiredFeatures.
  • BUG #12577: 'samba-tool dbcheck' gives errors on one-way links after a rename.
  • Ralph Boehme <slow@samba.org>
  • BUG #12184: s3/rpc_server: Shared rpc modules loading.
  • BUG #12520: Ensure global "smb encrypt = off" is effective.
  • BUG #12524: s3/rpc_server: Move rpc_modules.c to its own subsystem.
  • BUG #12541: vfs_fruit: checks wrong AAPL config state and so always uses readdirattr.
  • Volker Lendecke <vl@samba.org>
  • Stefan Metzmacher <metze@samba.org>
  • BUG #12398: Replication with DRSUAPI_DRS_CRITICAL_ONLY and DRSUAPI_DRS_GET_ANC results in WERR_DS_DRA_MISSING_PARENT S
  • BUG #12540: s3:smbd: allow "server min protocol = SMB3_00" to go via "SMB 2.???" negprot.
  • John Mulligan <jmulligan@nasuni.com>
  • BUG #12542: docs: Improve description of "unix_primary_group" parameter in idmap_ad manpage.
  • Andreas Schneider <asn@samba.org>
  • BUG #12552: waf: Do not install the unit test binary for krb5samba.
  • Amitay Isaacs <amitay@gmail.com>
  • BUG #12547: ctdb-build: Install CTDB tests correctly from toplevel.
  • BUG #12549: ctdb-common: ioctl(.. FIONREAD ..) returns an int value.
  • Garming Sam <garming@catalyst.net.nz>
  • BUG #12577: 'samba-tool dbcheck' gives errors on one-way links after a rename.
  • Uri Simchoni <uri@samba.org>
CHANGES SINCE 4.5.0rc1
  • Amitay Isaacs <amitay@gmail.com>
  • BUG #12469: CTDB lock helper getting stuck trying to lock a record.
  • BUG #12500: ctdb-common: Fix a bug in packet reading code for generic socket I/O.
  • BUG #12510: sock_daemon_test 4 crashes with SEGV.
  • BUG #12513: ctdb-daemon: Remove stale eventd socket.
  • Björn Jacke <bj@sernet.de>
  • BUG #12535: vfs_default: Unlock the right file in copy chunk.
  • Volker Lendecke <vl@samba.org>
  • BUG #12509: messaging: Fix dead but not cleaned-up-yet destination sockets.
  • BUG #12538: Backport winbind fixes.
  • Stefan Metzmacher <metze@samba.org>
  • BUG #12460: s3:winbindd: talloc_steal the extra_data in winbindd_list_users_recv().
  • Martin Schwenke <martin@meltin.net>
  • BUG #12511: ctdb-takeover: Handle case where there are no RELEASE_IPs to send.
  • BUG #12512: ctdb-scripts: Fix remaining uses of "ctdb gratiousarp".
  • BUG #12516: /etc/iproute2/rt_tables gets populated with multiple 'default' entries.