Global Parameters
The following parameters are in the [global] section of the configuration file.
access_based_share_enumeration
Enables or disables access-based share enumeration.
Value Type: boolean
Value Format: true|false
true: Enables access based share enumeration for the server.false: Disables access based share enumeration for the server.
Default Value: false
apple_extensions
Controls Apple Extensions for SMB.
Value Type: boolean
Value Format: true|false
true: Enables Apple Extensions for SMB.false: Disables Apple Extensions for SMB.
Default Value: true
apple_server_side_copy
Controls the behavior of server side copy for macOS clients.
server_side_copyValue Type: boolean
Value Format: true|false
true: Enables server-side copy macOS clients (has no effect ifserver_side_copyisfalse).false: Disables server-side copy for macOS clients.
Default Value: false
audit_enable
Enables or disables audit logging globally. Used in conjunction with audit_params.
Value Type: boolean
Value Format: true|false
true: Enables audit logging.false: Disables audit logging.
Default Value: false
audit_params
Controls the output parameters for audit logging. Used in conjunction with audit_enable.
Value Type: string
Value Format: path=<path>[,days=<days>][,uid=<uid>][,gid=<gid>][,cn=<cn>][,sensitive_data=<sensitive_data>]
path=<path>: (required) Specifies the directory where audit log files are stored. Each audit log file ends with a suffix with the date it pertains to.days=<days>: (optional) Specifies how many days audit log files are retained. Default value:1.uid=<uid>: (optional) Specifies whether log messages include the POSIX user ID of the authenticated user whose actions are being logged. Possible values:true: Include the POSIX user ID in log messages.false: Do not include the POSIX user ID in log messages. Default value:true.
gid=<gid>: (optional) Whether log messages include the POSIX group ID of the authenticated user whose action is being logged. Possible values:true: Include the POSIX group ID in log messages.false: Do not include the POSIX group ID in log messages Default value:true.
cn=<cn>: (optional) Specifies whether log messages include the common name of the authenticated user whose action is being logged. Possible values:true: Include the common name in log messages.false: Do not include the common name in log messages Default value:true.
sensitive_data=<sensitive_data>: (optional) Defines how sensitive data is handled in log messages. Sensitive data includes domain names, IP addresses, user names and IDs, and file paths. Possible values:allow: All data is displayed as-is.strip: Sensitive data is stripped, and replaced with***.hash: Sensitive data is hashed, allowing for differentiation between different sensitive data appearances (e.g., distinguishing one IP address from another), without revealing the original values.
Default value:allow.
Default Value: none
Examples:
path=/var/log/tsmb-audit,days=1,uid=truesets the path to/var/log/tsmb-audit, retains the audit log files for 1 day, and includes the POSIX user ID in log messages.
authz_require_posix
Requires all users to have a valid POSIX ID mapping.
Value Type: boolean
Value Format: true|false
true: Requires all users to have a valid POSIX ID mapping.false: Allows all SMB users to connect, regardless of POSIX ID mapping.
Default Value: false
ca
Enables or disables the persistent file handle database globally. Used in conjunction with ca_path.
caValue Type: boolean
Value Format: true|false
true: Enables the persistent file handle database globally.false: Disables the persistent file handle database globally.
Default Value: false
ca_path
Controls the path for the persistent file handle database. Used in conjuction with ca.
Value Type: string
ca_paramsValue Format: <path>
<path>specifies the path on a shared storage where Fusion SMB stores its persistent file handle database. This path must be accessible by all nodes in the Fusion SMB cluster to support continuous or high availability. If not overridden on a per-share basis using the optional<path>portion of the share'sca_paramsparameter, the path of the the persistent file handle database for each share with continuous availability enabled defaults to<path>/<netname>(where<netname>is the share'snetnameparameter).
Default Value: none
Examples:
/mnt/shared/castores the persistent file handle database in/mnt/shared/ca/<share_name>for each share where continuous availability is enabled.
case_insensitive
Controls default case-sensitivity for all shares.
case_insensitiveValue Type: boolean
Value Format: true|false
true: Makes file operations case-insensitive by default.false: Leaves file operations case-sensitive by default.
Default Value: false
change_notify
Controls the method used to generate change notifications.
Value Type: string
Value Format: smb|kernel|none
smb: Generates change notifications based on file operations performed by SMB clients against Fusion SMB. This option does not detect changes made by other means, such as direct access to the storage, or changes made by other protocols (e.g., NFS shares enabled for the same data). Use this setting for custom VFS modules that don't trigger inotify events.kernel: Generates change notifications for clients based on notifications Fusion SMB receives from the kernel's inotify interface. This includes changes made via any method, including direct access to storage, or changes made by other protocols.none: Disables change notifications.
Default Value: kernel
compression_algorithms
Controls the compression algorithms used by the server.
Value Type: string
Value Format: <algorithm>[,<algorithm>,...]
<algorithm>: The compression algorithm to use for SMB compression. The supported algorithms are:LZ77
Default Value: none (SMB compression is disabled)
Examples:
LZ77: Enables SMB compression using the LZ77 algorithm.
compression_threads
Controls the number of threads used for compression.
Value Type: integer
Value Format: <threads>
<threads>: A positive integer representing the number of threads to use for compression.
Default Value: 1
Examples:
10starts 10 threads for compression.
compression_threshold
Controls the minimum message size for compression.
Value Type: integer
Value Format: <bytes>
<bytes>: A non-negative integer, representing the threshold size in bytes for SMB compression. Messages exceeding this threshold will be compressed if SMB compression is enabled.
Default Value: 4096
Examples:
8192: Only messages larger than 8KB will be compressed.0: Compress all messages, regardless of size.
connections_max
Controls the maximum number of connections.
Value Type: integer
Value Format: <connections>
<connections> specifies the maximum number of concurrent client connections allowed to the server. Once the limit is reached, new connections will be rejected. A value of 0 allows for an unlimited number of connections, constrained only by the available system resources.
Default Value: 1024
The connections_max parameter in conjunction with the open_files_max parameter, controls the maximum number of open file descriptors Fusion SMB can consume. It is critical to keep the combined total of these two parameters within the system's limit. Misconfiguration may result in the server process crashing.
crypto_threads
Controls the number of threads allocated for cryptographic operations, including encryption, decryption, signing, and signature verification.
Value Type: integer
Value Format: <threads>
<threads>is a positive integer representing the number of threads available for all cryptographic functions, including encryption, decryption, signing, and signature verification.
Recommended configuration value should match the number of logical cores available on the host.
Default Value: 1
Examples:
10allocates 10 threads for cryptographic functions.
dfs
Enables/disables the Distributed File System (DFS) namespace.
Value Type: boolean
Value Format: true|false
true: Enables inclusion in DFS.false: Disables inclusion in DFS.
Default Value: false
dialect_max
Controls the maximum SMB dialect version exposed by the server.
dialectsValue Type: string
Value Format: <dialect>
- Only one
<dialect>value can be specified. - The specified value will enable all SMB dialects up to and including the specified version.
<dialect>is one of:SMB1: Enable SMB 1 (or CIFS).SMB2.002: Enable SMB 2.002. Required minimum for Direct TCP.SMB2.1: Enable SMB 2.1.SMB3.0: Enable SMB 3.0. Required minimum for Multichannel, SMB Direct (RDMA), and encryption.SMB3.02: Enable SMB 3.02.SMB3.1.1: Enable SMB 3.11. Required minimum for compression.
Default Value: SMB3.1.1
Examples:
SMB3.1.1: Enables all supported SMB dialects.SMB2.1: Enables only dialectsSMB1throughSMB2.1.SMB1: Enables only SMB1 (CIFS).
dialects
Controls which SMB dialects are exposed by the server.
dialect_maxValue Type: string
Value Format: <dialect> [<dialect> ...]
- Multiple
<dialect>values can be specified, separated by spaces. <dialect>is one of:SMB1: Enable SMB 1 (or CIFS).SMB2.002: Enable SMB 2.002.SMB2.1: Enable SMB 2.1.SMB3.0: Enable SMB 3.0. Required minimum for Multichannel, SMB Direct (RDMA), and encryption.SMB3.02: Enable SMB 3.02.SMB3.1.1: Enable SMB 3.11. Required minimum for compression.
Default Value: SMB2.002 SMB2.1 SMB3.0 SMB3.02 SMB3.1.1
Examples:
SMB1 SMB2.002 SMB2.1 SMB3.0 SMB3.02 SMB3.1.1: Enables all supported SMB dialects.SMB2.002 SMB2.1 SMB3.0 SMB3.02 SMB3.1.1: Enables all supported SMB dialects, except for SMB1 (CIFS).
domain
Controls the domain or workgroup name for Active Directory or Apple Open Directory, or the NetBIOS workgroup name for standalone servers or when part of a NetBIOS workgroup.
- When part of an Active Directory domain:
Value Type: string
Value Format:
<domain>
<domain>: specifies the name of the Active Directory domain (or in rare cases, Apple Open Directory domain). It should be a fully-qualified domain name (e.g.,acme.local).Default Value: none
Examples:
acme.localspecifies the Active Directory domainacme.local.
- When part of a NetBIOS workgroup:
Value Type: string
Value Format:
<workgroup>
<workgroup>: specifies the name of the workgroup. Should be a NetBIOS name (e.g.,ACME).Default Value: none
Examples:
ACMEspecifies the NetBIOS workgroupACME.
domain_servers
Overrides the domain controller server names for Active Directory.
Value Type: string
Value Format: [<server>[,<server>,...]]
If specified, the value should be in square brackets ([...]), containing comma-separated values <server>, where each <server> is a domain controller server name.
Default Value: none. Fusion SMB will automatically discover domain controller server names by querying the DNS for the _ldap._tcp SRV records.
Examples:
[dc1.acme.local, dc2.acme.local]will use the domain controller server namesdc1.acme.localanddc2.acme.localto authenticate SMB users.
domain_sid
Applicable only to Fusion SMB instances acting as domain members in Apple Open Directory. By default, Fusion SMB attempts to retrieve the SID from the configuration object with common name CIFSServer configured in the LDAP server hosted on Apple Open Directory. In cases where SID is not available on the LDAP server, this option provides a way to explicitly configure the domain SID.
Value Type: string
Value Format: <sid>
Where <sid> is the domain SID.
Default Value: none
Examples:
domain_sid = S-1-5-21-3646377160-2951818606-1606422254
durable_v1_timeout
Controls the timeout for durable handles V1.
Value Type: integer
Value Format: <duration>
<duration>is a positive integer representing the number of seconds for the timeout of durable handles V1.
Default Value: 960
Examples:
960seconds (16 minutes) is the default timeout for durable handles V1.
durable_v2_timeout
Controls the timeout for durable handles V2.
Value Type: integer
Value Format: <duration>
<duration>is a positive integer representing the number of seconds for the timeout of durable handles V2.
Default Value: 180
Examples:
180seconds (3 minutes) is the default timeout for durable handles V2.
enable_ipc
Enables/disables IPC$ shares.
Value Type: boolean
Value Format: true|false
true: Enables the IPC$ share.false: Disables the IPC$ share.
Default Value: true
enable_oplock
Enables/disables opportunistic locks (oplocks).
This parameter is deprecated. Use oplock instead.
enable_oplockValue Type: boolean
Value Format: true|false
true: Allows the user to acquire opportunistic locks (oplocks) on files.false: Disables the acquisition of oplocks on files.
Default Value: true
encrypt_data
Enables/disables encryption in transit.
encrypt_dataValue Type: boolean
Value Format: true|false
true: enable encryption in transit for all shares.false: disable encryption in transit for all shares.
Default Value: false
group_member_db
Value Type: string
Value Format: <path>
Where <path> is the path of group members database for the file-backed user database. The file needs to exist before the starting Fusion SMB.
Examples:
/etc/tsmb-groupwould configure Fusion SMB to use /etc/tsmb-group as the group members database file.
ignore_unresolved_share_deny_permission
Controls whether to deny access to shares with unresolved permission grantees when their access level is no, or to ignore handling them altogether.
Value Type: boolean
Value Format: true|false
true: Ignores handling of unresolved permission grantees when their access level isno.false: Denies access to shares with unresolved permission grantees when their access level isno.
Default value: false