From 66cff9fd00b4800a75aeda1985ab1a26f4dfd540 Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Wed, 7 Dec 2022 12:05:38 +0200 Subject: 15237 smbsrv-tests: document smb server share setup Reviewed by: Gordon Ross Approved by: Dan McDonald --- usr/src/test/smbsrv-tests/doc/README | 48 ++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/usr/src/test/smbsrv-tests/doc/README b/usr/src/test/smbsrv-tests/doc/README index e83affbb9b..2a6b667c5f 100644 --- a/usr/src/test/smbsrv-tests/doc/README +++ b/usr/src/test/smbsrv-tests/doc/README @@ -38,7 +38,51 @@ To install the full suite, run: -------------------------------------------------------------------------------- -2. Running the SMB Server Test Suite +2. Preparing the SMB Server Share + +When workgroup mode is used, make sure the pam_smb_passwd module is +configured in /etc/pam.conf or in /etc/pam.d: + +other password required pam_smb_passwd.so.1 nowarn + +Add test user: +# useradd test +# smbadm enable-user test +# passwd test + +If needed, add admin user as shown above, and add it to smb group: +# smbadm add-member -m admin@ administrators + +Set smb default settings: + +# sharectl set -p signing_required=false smb +# sharectl set -p signing_enabled=true smb +# svcadm restart network/smb/server + +Create dataset(s): + +Some smbtorture tests do rely on recordsize 4k. + +# zfs create -o recordsize=4k -o casesensitivity=mixed -o nbmand=on \ + /test + +Set permissions: + +# chmod A=everyone@:full_set:fd:allow //test + +Create required snapshots (WPTS needs exactly 3 snapshots): + +# zfs snapshot /test@a +# zfs snapshot /test@b +# zfs snapshot /test@c + +Activate smb share: + +# zfs set sharesmb=name=test /test + +-------------------------------------------------------------------------------- + +3. Running the SMB Server Test Suite The default configuration: /opt/smbsrv-tests/include/default.cfg @@ -68,7 +112,7 @@ as additional arguments to the individual test, eg -------------------------------------------------------------------------------- -3. Test Results +4. Test Results While the SMB Server Test Suite is running, one informational line is printed for each test, ending with one of: -- cgit v1.2.3 From 7854c36dbfe16d972e1f09fffa8d9be3c0b86949 Mon Sep 17 00:00:00 2001 From: Jason King Date: Fri, 28 Oct 2022 00:17:52 -0500 Subject: 15192 Convert smb(5) to mandoc Reviewed by: Peter Tribble Reviewed by: Gordon Ross Approved by: Dan McDonald --- usr/src/man/man5/smb.5 | 932 ++++++++++++++++++++----------------------------- 1 file changed, 371 insertions(+), 561 deletions(-) diff --git a/usr/src/man/man5/smb.5 b/usr/src/man/man5/smb.5 index 024327b05b..7da8970f9a 100644 --- a/usr/src/man/man5/smb.5 +++ b/usr/src/man/man5/smb.5 @@ -1,7 +1,7 @@ -'\" te .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved. .\" Copyright 2017, Nexenta Systems, Inc. All Rights Reserved. .\" Copyright 2022, RackTop Systems, Inc. All Rights Reserved. +.\" Copyright 2022 Jason King .\" The contents of this file are subject to the terms of the .\" Common Development and Distribution License (the "License"). .\" You may not use this file except in compliance with the License. @@ -17,618 +17,428 @@ .\" fields enclosed by brackets "[]" replaced with your own identifying .\" information: Portions Copyright [yyyy] [name of copyright owner] .\" -.TH SMB 5 "January 17, 2022" -.SH NAME -smb \- configuration properties for Solaris CIFS server -.SH DESCRIPTION -Behavior of the Solaris CIFS server is defined by property values that are -stored in the Service Management Facility, \fBsmf\fR(7). -.sp -.LP -An authorized user can use the \fBsharectl\fR(8) command to set global values +.Dd October 27, 2022 +.Dt SMB 5 +.Os +.Sh NAME +.Nm smb +.Nd configuration properties for illumos CIFS server +.Sh DESCRIPTION +Behavior of the illumos CIFS server is defined by property values that are +stored in the Service Management Facility, +.Xr smf 7 . +.Pp +An authorized user can use the +.Xr sharectl 8 +command to set global values for these properties in SMF. -.sp -.LP +.Pp The following list describes the properties: -.sp -.ne 2 -.na -\fB\fBads_site\fR\fR -.ad -.sp .6 -.RS 4n +.Bl -tag -width x +.It Sy ads_site +.Pp Specifies the site configured in DNS to look up Active Directory information. Sites provide a mechanism to partition or delegate administration and policy management, which are typically used in large or complex domains. -.sp +.Pp The value should not be set if you do not have a local Active Directory site. By default, no value is set. -.RE - -.sp -.ne 2 -.na -\fB\fBautohome_map\fR\fR -.ad -.sp .6 -.RS 4n -Specifies the full path for the SMD autohome map file, \fBsmbautohome\fR. The -default path is \fB/etc\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBbypass_traverse_checking\fR\fR -.ad -.sp .6 -.RS 4n -When set, allows the SMB server to bypass ACL "traverse" checks. -The default value is \fBtrue\fR, for Windows compatibility. -If this parameter is \fBfalse\fR, ACL checks require that -"traverse" (directory execute) is granted on every directory +.It Sy autohome_map +.Pp +Specifies the full path for the SMD autohome map file, +.Pa smbautohome . +The default path is +.Pa /etc . +.It Sy bypass_traverse_checking +.Pp +When set, allows the SMB server to bypass ACL +.Dq traverse +checks. +The default value is +.Ql true , +for Windows compatibility. +If this parameter is +.Ql false , +ACL checks require that +.Dq traverse +.Pq directory execute +is granted on every directory above the directory the SMB client tries to access. Windows shares are normally setup with the higher level directories not specifically granting such access. -.RE - -.sp -.ne 2 -.na -\fB\fBdisposition\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy disposition +.Pp A value that controls whether to disconnect the share or proceed if the map -command fails. The disposition property only has meaning when the map property -has been set. Otherwise it will have no effect. -.sp -.in +2 -.nf +command fails. +The disposition property only has meaning when the map property +has been set. +Otherwise it will have no effect. +.Bd -literal -offset 2n disposition = [ continue | terminate ] -.fi -.in -2 -.sp - -.sp -.ne 2 -.na -\fB\fBcontinue\fR\fR -.ad -.sp .6 -.RS 4n -Proceed with share connection if the map command fails. This is the default in -the event that disposition is not specified. -.RE - -.sp -.ne 2 -.na -\fB\fBterminate\fR\fR -.ad -.sp .6 -.RS 4n +.Ed +.Bl -tag -width terminate +.It Sy continue +Proceed with share connection if the map command fails. +This is the default in the event that disposition is not specified. +.It Sy terminate Disconnect the share if the map command fails. -.RE - -.RE - -.sp -.ne 2 -.na -\fB\fBddns_enable\fR\fR -.ad -.sp .6 -.RS 4n -Enables or disables dynamic DNS updates. A value of \fBtrue\fR enables dynamic -updates, while a value of \fBfalse\fR disables dynamic updates. By default, the -value is \fBfalse\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBencrypt\fR\fR -.ad -.sp .6 -.RS 4n -Controls SMB3 Encryption. For requests on a particular share, the server's +.El +.It Sy ddns_enable +.Pp +Enables or disables dynamic DNS updates. +A value of +.Ql true +enables dynamic updates, while a value of +.Ql false +disables dynamic updates. +By default, the value is +.Ql false . +.It Sy encrypt +.Pp +Controls SMB3 Encryption. +For requests on a particular share, the server's behavior is controlled by the stricter of this option and the per-share -"encrypt" option. -.sp -When set to \fBdisabled\fR, the server will not ask clients to encrypt requests. -When set to \fBenabled\fR, the server will ask clients to encrypt requests, -but will not require that they do so. Any message that can be encrypted -will be encrypted. -When set to \fBrequired\fR, the server will deny access to or disconnect +.Dq encrypt +option. +.Pp +When set to +.Ql disabled , +the server will not ask clients to encrypt requests. +When set to +.Ql enabled , +the server will ask clients to encrypt requests, +but will not require that they do so. +Any message that can be encrypted will be encrypted. +When set to +.Ql required , +the server will deny access to or disconnect any client that does not support encryption or fails to encrypt requests that they should. -.sp -In other words, the \fBenabled\fR behavior is that any message that CAN -be encrypted SHOULD be encrypted, while the \fBrequired\fR behavior is that any -message that CAN be encrypted MUST be encrypted. -.RE - -.sp -.ne 2 -.na -\fB\fBencrypt_cipher\fR\fR -.ad -.sp .6 -.RS 4n -Specifies a list of enabled SMB 3.1.1 encryption ciphers. This property is only -used when encryption is On (see \fBencrypt\fR property) and negotiated SMB -dialect is 3.1.1 or higher (see \fBmax_protocol\fR property). Otherwise it is -ignored. -.sp +.Pp +In other words, the +.Ql enabled +behavior is that any message that +.Em can +be encrypted +.Em should +be encrypted, while the +.Ql required +behavior is that any message that +.Em can +be encrypted +.Em must +be encrypted. +.It Sy encrypt_cipher +.Pp +Specifies a list of enabled SMB 3.1.1 encryption ciphers. +This property is only used when encryption is +.Ql enabled +.Po +see +.Sy encrypt +property +.Pc +and negotiated SMB dialect is 3.1.1 or higher +.Po +see +.Sy max_protocol +property +.Pc . +Otherwise it is ignored. +.Pp When the property is set, a list of comma separated ciphers should be specified, -or the value \fBall\fR should be used instead to enable all supported ciphers. -By default, when the property is empty, it is equivalent to value \fBall\fR - -all available ciphers will be enabled. -.sp +or the value +.Ql all +should be used instead to enable all supported ciphers. +By default, when the property is empty, it is equivalent to value +.Ql all +\(em all available ciphers will be enabled. +.Pp The list of ciphers should contain these values: -.sp -.ne 2 -.na -\fBaes128-ccm\fR -.ad -.RS 13n -AES-128-CCM cipher is enabled. It is the only cipher used for SMB 3.0.2 -dialect. -.RE - -.sp -.ne 2 -.na -\fBaes128-gcm\fR -.ad -.RS 13n +.Bl -tag -width "aes128-ccm" +.It Sy aes128-ccm +AES-128-CCM cipher is enabled. +It is the only cipher used for SMB 3.0.2 dialect. +.It Sy aes128-gcm AES-128-GCM cipher is enabled. -preferred. -.RE - -.sp -.ne 2 -.na -\fBall\fR -.ad -.RS 13n +Preferred. +.It Sy all All ciphers are enabled. -.RE - -.RE - -.sp -.ne 2 -.na -\fB\fBipv6_enable\fR\fR -.ad -.sp .6 -.RS 4n -Enables IPv6 Internet protocol support within the CIFS Service. Valid values -are \fBtrue\fR and \fBfalse\fR. The default value is \fBfalse\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBkeep_alive\fR\fR -.ad -.sp .6 -.RS 4n +.El +.It Sy ipv6_enable +.Pp +Enables IPv6 Internet protocol support within the CIFS Service. +Valid values are +.Ql true +and +.Ql false . +The default value is +.Ql false . +.It Sy keep_alive +.Pp Specifies the number of seconds before an idle SMB connection is dropped by the -Solaris CIFS server. If set to 0, idle connections are not dropped. Valid -values are 0 and from 20 seconds and above. The default value is 0. -.RE - -.sp -.ne 2 -.na -\fB\fBlmauth_level\fR\fR -.ad -.sp .6 -.RS 4n -Specifies the LAN Manager (LM) authentication level. The LM compatibility level +illumos CIFS server. +If set to +.Ql 0 , +idle connections are not dropped. +Valid values are +.Ql 0 +and from +.Ql 20 +seconds and above. +The default value is +.Ql 0 . +.It Sy lmauth_level +Specifies the LAN Manager (LM) authentication level. +The LM compatibility level controls the type of user authentication to use in workgroup mode or domain -mode. The default value is 3. -.sp +mode. +The default value is 3. +.Pp The following describes the behavior at each level. -.sp -.ne 2 -.na -\fB2\fR -.ad -.RS 13n -In Windows workgroup mode, the Solaris CIFS server accepts LM, NTLM, LMv2, and -NTLMv2 requests. In domain mode, the SMB redirector on the Solaris CIFS server +.Bl -tag -width "1" +.It Sy 2 +In Windows workgroup mode, the illumos CIFS server accepts LM, NTLM, LMv2, and +NTLMv2 requests. +In domain mode, the SMB redirector on the illumos CIFS server sends NTLM requests. -.RE - -.sp -.ne 2 -.na -\fB3\fR -.ad -.RS 13n -In Windows workgroup mode, the Solaris CIFS server accepts LM, NTLM, LMv2, and -NTLMv2 requests. In domain mode, the SMB redirector on the Solaris CIFS server +.It Sy 3 +In Windows workgroup mode, the illumos CIFS server accepts LM, NTLM, LMv2, and +NTLMv2 requests. +In domain mode, the SMB redirector on the illumos CIFS server sends LMv2 and NTLMv2 requests. -.RE - -.sp -.ne 2 -.na -\fB4\fR -.ad -.RS 13n -In Windows workgroup mode, the Solaris CIFS server accepts NTLM, LMv2, and -NTLMv2 requests. In domain mode, the SMB redirector on the Solaris CIFS server +.It Sy 4 +In Windows workgroup mode, the illumos CIFS server accepts NTLM, LMv2, and +NTLMv2 requests. +In domain mode, the SMB redirector on the illumos CIFS server sends LMv2 and NTLMv2 requests. -.RE - -.sp -.ne 2 -.na -\fB5\fR -.ad -.RS 13n -In Windows workgroup mode, the Solaris CIFS server accepts LMv2 and NTLMv2 -requests. In domain mode, the SMB redirector on the Solaris CIFS server sends +.It Sy 5 +In Windows workgroup mode, the illumos CIFS server accepts LMv2 and NTLMv2 +requests. +In domain mode, the SMB redirector on the illumos CIFS server sends LMv2 and NTLMv2 requests. -.RE - -.RE - -.sp -.ne 2 -.na -\fB\fBmap\fR\fR -.ad -.sp .6 -.RS 4n -The value is a command to be executed when connecting to the share. The command +.El +.It Sy map +.Pp +The value is a command to be executed when connecting to the share. +The command can take the following arguments, which will be substituted when the command is exec'd as described below: -.sp -.ne 2 -.na -\fB\fB%U\fR\fR -.ad -.sp .6 -.RS 4n +.Bl -tag -width "xx" +.It Sy % Ns Sy U Windows username. -.RE - -.sp -.ne 2 -.na -\fB\fB%D\fR\fR -.ad -.sp .6 -.RS 4n -Name of the domain or workgroup of \fB%U\fR. -.RE - -.sp -.ne 2 -.na -\fB\fB%h\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy % Ns Sy D +Name of the domain or workgroup of +.Sy % Ns Sy U . +.It Sy %h The server hostname. -.RE - -.sp -.ne 2 -.na -\fB\fB%M\fR\fR -.ad -.sp .6 -.RS 4n -The client hostname, or \fB""\fR if not available. -.RE - -.sp -.ne 2 -.na -\fB\fB%L\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy %M +The client hostname, or +.Dq "" +if not available. +.It Sy %L The server NetBIOS name. -.RE - -.sp -.ne 2 -.na -\fB\fB%m\fR\fR -.ad -.sp .6 -.RS 4n -The client NetBIOS name, or \fB""\fR if not available. This option is only -valid for NetBIOS connections (port 139). -.RE - -.sp -.ne 2 -.na -\fB\fB%I\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy %m +The client NetBIOS name, or +.Dq "" +if not available. +This option is only valid for NetBIOS connections (port 139). +.It Sy % Ns Sy I The IP address of the client machine. -.RE - -.sp -.ne 2 -.na -\fB\fB%i\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy %i The local IP address to which the client is connected. -.RE - -.sp -.ne 2 -.na -\fB\fB%S\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy %S The name of the share. -.RE - -.sp -.ne 2 -.na -\fB\fB%P\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy % Ns Sy P The root directory of the share. -.RE - -.sp -.ne 2 -.na -\fB\fB%u\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy %u The UID of the Unix user. -.RE - -.RE - -.sp -.ne 2 -.na -\fB\fBmax_protocol\fR\fR -.ad -.sp .6 -.RS 4n +.El +.It Sy max_protocol +.Pp Specifies the maximum SMB protocol level that the SMB service -should allow clients to negotiate. The default value is \fB3.11\fR. -Valid settings include: \fB1\fR, \fB2.1\fR, \fB3.0\fR, \fB3.02\fR, \fB3.11\fR -.RE - -.sp -.ne 2 -.na -\fB\fBmin_protocol\fR\fR -.ad -.sp .6 -.RS 4n +should allow clients to negotiate. +The default value is +.Ql 3.11 . +Valid settings include: +.Ql 1 , +.Ql 2.1 , +.Ql 3.0 , +.Ql 3.02 , +.Ql 3.11 . +.It Sy min_protocol +.Pp Specifies the minimum SMB protocol level that the SMB service -should allow clients to negotiate. The default value is \fB1\fR. -Valid settings include: \fB1\fR, \fB2.1\fR, \fB3.0\fR -.RE - -.sp -.ne 2 -.na -\fB\fBmax_workers\fR\fR -.ad -.sp .6 -.RS 4n +should allow clients to negotiate. +The default value is +.Ql 1 . +Valid settings include: +.Ql 1 , +.Ql 2.1 , +.Ql 3.0 . +.It Sy max_workers +.Pp Specifies the maximum number of worker threads that will be launched to process -incoming CIFS requests. The SMB \fBmax_mpx\fR value, which indicates to a +incoming CIFS requests. +The SMB +.Sy max_mpx +value, which indicates to a client the maximum number of outstanding SMB requests that it may have pending -on the server, is derived from the \fBmax_workers\fR value. To ensure -compatibility with older versions of Windows the lower 8-bits of \fBmax_mpx\fR -must not be zero. If the lower byte of \fBmax_workers\fR is zero, \fB64\fR is -added to the value. Thus the minimum value is \fB64\fR and the default value, -which appears in \fBsharectl\fR(8) as \fB1024\fR, is \fB1088\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBnetbios_scope\fR\fR -.ad -.sp .6 -.RS 4n +on the server, is derived from the +.Sy max_workers +value. +To ensure compatibility with older versions of Windows the lower 8-bits of +.Sy max_mpx +must not be zero. +If the lower byte of +.Sy max_workers +is zero, +.Ql 64 +is added to the value. +Thus the minimum value is +.Ql 64 +and the default value, which appears in +.Xr sharectl 8 +as +.Ql 1024 , +is +.Ql 1088 . +.It Sy netbios_scope +.Pp Specifies the NetBIOS scope identifier, which identifies logical NetBIOS -networks that are on the same physical network. When you specify a NetBIOS +networks that are on the same physical network. +When you specify a NetBIOS scope identifier, the server filters the number of machines that are listed in -the browser display to make it easier to find other hosts. The value is a text -string that represents a domain name. By default, no value is set. -.RE - -.sp -.ne 2 -.na -\fB\fBoplock_enable\fR\fR -.ad -.sp .6 -.RS 4n -Controls whether "oplocks" may be granted by the SMB server. -The term "oplock" is short for "opportunistic lock", which is -the legacy name for cache delegations in SMB. +the browser display to make it easier to find other hosts. +The value is a text string that represents a domain name. +By default, no value is set. +.It Sy oplock_enable +.Pp +Controls whether +.Dq oplocks +may be granted by the SMB server. +The term +.Dq oplock +is short for +.Dq opportunistic lock , +which is the legacy name for cache delegations in SMB. By default, oplocks are enabled. -Note that if oplocks are disabled, file I/O performance may be -severely reduced. -.RE - -.sp -.ne 2 -.na -\fB\fBpdc\fR\fR -.ad -.sp .6 -.RS 4n -Specifies the preferred IP address for the domain controller. This property is +Note that if oplocks are disabled, file I/O performance may be severely reduced. +.It Sy pdc +.Pp +Specifies the preferred IP address for the domain controller. +This property is sometimes used when there are multiple domain controllers to indicate which one -is preferred. If the specified domain controller responds, it is chosen even if -the other domain controllers are also available. By default, no value is set. -.RE - -.sp -.ne 2 -.na -\fB\fBrestrict_anonymous\fR\fR -.ad -.sp .6 -.RS 4n -Disables anonymous access to IPC$, which requires that the client be -authenticated to get access to MSRPC services through IPC$. A value of -\fBtrue\fR disables anonymous access to IPC$, while a value of \fBfalse\fR +is preferred. +If the specified domain controller responds, it is chosen even if +the other domain controllers are also available. +By default, no value is set. +.It Sy restrict_anonymous +.Pp +Disables anonymous access to +.Sy IPC$ , +which requires that the client be authenticated to get access to MSRPC +services through +.Sy IPC$ . +A value of +.Ql true +disables anonymous access to +.Sy IPC$ , +while a value of +.Ql false enables anonymous access. -.RE - -.sp -.ne 2 -.na -\fB\fBshort_names\fR\fR -.ad -.sp .6 -.RS 4n -Enables use of "short names" by SMB clients. The default value is -\fBfalse\fR because modern SMB clients do not need short names, and +.It Sy short_names +.Pp +Enables the use of +.Dq short names +by SMB clients. +The default value is +.Ql false +because modern SMB clients do not need short names, and using short names has some performance cost while listing directories and opening or renaming files. -.RE - -.sp -.ne 2 -.na -\fB\fBsigning_enabled\fR\fR -.ad -.sp .6 -.RS 4n -Enables SMB signing. When signing is enabled but not required it is possible +.It Sy signing_enabled +.Pp +Enables SMB signing. +When signing is enabled but not required it is possible for clients to connect regardless of whether or not the client supports SMB -signing. If a packet has been signed, the signature will be verified. If a +signing. +If a packet has been signed, the signature will be verified. +If a packet has not been signed it will be accepted without signature verification. -Valid values are \fBtrue\fR and \fBfalse\fR. The default value is \fBfalse\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBsigning_required\fR\fR -.ad -.sp .6 -.RS 4n +Valid values are +.Ql true +and +.Ql false . +The default value is +.Ql false . +.It Sy signing_required +.Pp When SMB signing is required, all packets must be signed or they will be rejected, and clients that do not support signing will be unable to connect to -the server. The \fBsigning_required\fR setting is only taken into account when -\fBsigning_enabled\fR is \fBtrue\fR. Valid values are \fBtrue\fR and -\fBfalse\fR. The default value is \fBfalse\fR. -.RE - -.sp -.ne 2 -.na -\fB\fBsystem_comment\fR\fR -.ad -.sp .6 -.RS 4n -Specifies an optional description for the system, which is a text string. This +the server. +The +.Sy signing_required +setting is only taken into account when +.Sy signing_enabled +is +.Ql true . +Valid values are +.Ql true +and +.Ql false . +The default value is +.Ql false . +.It Sy system_comment +.Pp +Specifies an optional description for the system, which is a text string. +This property value might appear in various places, such as Network Neighborhood or -Network Places on Windows clients. By default, no value is set. -.RE - -.sp -.ne 2 -.na -\fB\fBtraverse_mounts\fR\fR -.ad -.sp .6 -.RS 4n -The \fBtraverse_mounts\fR setting determines how the SMB server -presents sub-mounts underneath an SMB share. When \fBtraverse_mounts\fR -is \fBtrue\fR (the default), sub-mounts are presented to SMB clients -like any other subdirectory. When \fBtraverse_mounts\fR is \fBfalse\fR, +Network Places on Windows clients. +By default, no value is set. +.It Sy traverse_mounts +.Pp +The +.Sy traverse_mounts +setting determines how the SMB server +presents sub-mounts underneath an SMB share. +When +.Sy traverse_mounts +is +.Ql true +(the default), sub-mounts are presented to SMB clients +like any other subdirectory. +When +.Sy traverse_mounts +is +.Ql false , sub-mounts are not shown to SMB clients. -.RE - -.sp -.ne 2 -.na -\fB\fBunmap\fR\fR -.ad -.sp .6 -.RS 4n -The value is a command to be executed when disconnecting the share. The command -can take the same substitutions listed on the \fBmap\fR property. -.RE - -.sp -.ne 2 -.na -\fB\fBwins_exclude\fR\fR -.ad -.sp .6 -.RS 4n +.It Sy unmap +.Pp +The value is a command to be executed when disconnecting the share. +The command can take the same substitutions listed on the +.Sy map +property. +.It Sy wins_exclude +.Pp Specifies a comma-separated list of network interfaces that should not be -registered with WINS. NetBIOS host announcements are made on excluded -interfaces. -.RE - -.sp -.ne 2 -.na -\fB\fBwins_server_1\fR\fR -.ad -.sp .6 -.RS 4n -Specifies the IP address of the primary WINS server. By default, no value is -set. -.RE - -.sp -.ne 2 -.na -\fB\fBwins_server_2\fR\fR -.ad -.sp .6 -.RS 4n -Specifies the IP address of the secondary WINS server. By default, no value is -set. -.RE - -.SH ATTRIBUTES -See the \fBattributes\fR(7) man page for descriptions of the following -attributes: -.sp - -.sp -.TS -box; -c | c -l | l . -ATTRIBUTE TYPE ATTRIBUTE VALUE -_ -Interface Stability Uncommitted -.TE - -.SH SEE ALSO -.BR attributes (7), -.BR smf (7), -.BR sharectl (8), -.BR smbadm (8), -.BR smbd (8), -.BR smbstat (8) +registered with WINS. +NetBIOS host announcements are made on excluded interfaces. +.It Sy wins_server_1 +.Pp +Specifies the IP address of the primary WINS server. +By default, no value is set. +.It Sy wins_server_2 +.Pp +Specifies the IP address of the secondary WINS server. +By default, no value is set. +.El +.Sh INTERFACE STABILITY +Uncommitted +.Sh SEE ALSO +.Xr attributes 7 , +.Xr smf 7 , +.Xr sharectl 8 , +.Xr smbadm 8 , +.Xr smbd 8 , +.Xr smbstat 8 -- cgit v1.2.3 From 46593baa8941a05e8871baac4528bcfbf249570c Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Thu, 8 Dec 2022 20:04:37 +0200 Subject: 15243 test-runner: tell us when there was no tests to run Reviewed by: Andrew Stormont Reviewed by: Andy Fiddaman Approved by: Dan McDonald --- usr/src/test/test-runner/cmd/run | 1 + 1 file changed, 1 insertion(+) diff --git a/usr/src/test/test-runner/cmd/run b/usr/src/test/test-runner/cmd/run index 21da73daff..8399c3203a 100644 --- a/usr/src/test/test-runner/cmd/run +++ b/usr/src/test/test-runner/cmd/run @@ -834,6 +834,7 @@ class TestRun(object): def summary(self): if Result.total == 0: + print('No tests to run') return print('\nResults Summary') -- cgit v1.2.3 From 4e320a8a375380e6f3963134cd6c1001e2bdb7fa Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Fri, 9 Dec 2022 09:53:02 +0200 Subject: 15245 zfs_clone_010_pos: fix python statement Reviewed by: Marcel Telka Reviewed by: Andy Fiddaman Approved by: Dan McDonald --- .../zfs-tests/tests/functional/cli_root/zfs_clone/zfs_clone_010_pos.ksh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_clone/zfs_clone_010_pos.ksh b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_clone/zfs_clone_010_pos.ksh index cd471999e0..cd364bb957 100644 --- a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_clone/zfs_clone_010_pos.ksh +++ b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_clone/zfs_clone_010_pos.ksh @@ -220,7 +220,7 @@ fs=$TESTPOOL/$TESTFS1 log_must zfs create $fs log_must zfs snapshot $fs@snap while((i < 7)); do - log_must zfs clone $fs@snap $fs/$TESTCLONE$(python -c 'print "x" * 200').$i + log_must zfs clone $fs@snap $fs/$TESTCLONE$(printf %0.sx {1..200}).$i ((i=i+1)) ((j=j+200)) done -- cgit v1.2.3 From 9e3aeadeb229d472ee0ae8425dc913dfe7e81ea2 Mon Sep 17 00:00:00 2001 From: Andy Fiddaman Date: Wed, 7 Dec 2022 11:43:06 +0000 Subject: 15238 prom_reboot/panic should be machdep Reviewed by: Igor Kozhukhov Reviewed by: Keith M Wesolowski Reviewed by: Toomas Soome Approved by: Dan McDonald --- usr/src/uts/i86pc/Makefile.files | 2 ++ usr/src/uts/i86pc/Makefile.rules | 5 ++++ usr/src/uts/i86pc/promif/prom_panic.c | 51 ++++++++++++++++++++++++++++++++++ usr/src/uts/i86pc/promif/prom_reboot.c | 45 ++++++++++++++++++++++++++++++ usr/src/uts/i86xpv/Makefile.files | 3 ++ usr/src/uts/i86xpv/Makefile.rules | 4 +++ usr/src/uts/intel/Makefile.files | 2 -- usr/src/uts/intel/promif/prom_panic.c | 51 ---------------------------------- usr/src/uts/intel/promif/prom_reboot.c | 47 ------------------------------- 9 files changed, 110 insertions(+), 100 deletions(-) create mode 100644 usr/src/uts/i86pc/promif/prom_panic.c create mode 100644 usr/src/uts/i86pc/promif/prom_reboot.c delete mode 100644 usr/src/uts/intel/promif/prom_panic.c delete mode 100644 usr/src/uts/intel/promif/prom_reboot.c diff --git a/usr/src/uts/i86pc/Makefile.files b/usr/src/uts/i86pc/Makefile.files index 064cda8548..11f6af52ee 100644 --- a/usr/src/uts/i86pc/Makefile.files +++ b/usr/src/uts/i86pc/Makefile.files @@ -113,6 +113,8 @@ CORE_OBJS += \ pci_orion.o \ pmem.o \ ppage.o \ + prom_panic.o \ + prom_reboot.o \ pwrnow.o \ speedstep.o \ ssp.o \ diff --git a/usr/src/uts/i86pc/Makefile.rules b/usr/src/uts/i86pc/Makefile.rules index 9fe73c00f5..af57055292 100644 --- a/usr/src/uts/i86pc/Makefile.rules +++ b/usr/src/uts/i86pc/Makefile.rules @@ -24,6 +24,7 @@ # Copyright 2015 Igor Kozhukhov # Copyright 2019 Joyent, Inc. # Copyright 2019 OmniOS Community Edition (OmniOSce) Association. +# Copyright 2022 Oxide Computer Company # # This Makefile defines the build rules for the directory uts/i86pc @@ -173,6 +174,10 @@ $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/os/cpupm/%.c $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) +$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/promif/%.c + $(COMPILE.c) -o $@ $< + $(CTFCONVERT_O) + $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/boot/%.c $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) diff --git a/usr/src/uts/i86pc/promif/prom_panic.c b/usr/src/uts/i86pc/promif/prom_panic.c new file mode 100644 index 0000000000..181d13bead --- /dev/null +++ b/usr/src/uts/i86pc/promif/prom_panic.c @@ -0,0 +1,51 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include +#include +#include +#include +#include + +void +prom_panic(char *s) +{ + const char fmt[] = "%s: prom_panic: %s\n"; + + if (s == NULL) + s = "unknown panic"; + +#if defined(_KMDB) + prom_printf(fmt, "kmdb", s); +#elif defined(_KERNEL) + prom_printf(fmt, "kernel", s); + if (boothowto & RB_DEBUG) + kmdb_enter(); +#else +#error "configuration error" +#endif + prom_reboot_prompt(); + prom_reboot(NULL); +} diff --git a/usr/src/uts/i86pc/promif/prom_reboot.c b/usr/src/uts/i86pc/promif/prom_reboot.c new file mode 100644 index 0000000000..be651c2783 --- /dev/null +++ b/usr/src/uts/i86pc/promif/prom_reboot.c @@ -0,0 +1,45 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include +#include +#include +#include + +void +prom_reboot_prompt(void) +{ + prom_printf("Press any key to reboot.\n"); + (void) prom_getchar(); + prom_printf("Resetting...\n"); +} + +/*ARGSUSED*/ +void +prom_reboot(char *bootstr) +{ + reset(); +} diff --git a/usr/src/uts/i86xpv/Makefile.files b/usr/src/uts/i86xpv/Makefile.files index 5c9acfabed..40d22b6029 100644 --- a/usr/src/uts/i86xpv/Makefile.files +++ b/usr/src/uts/i86xpv/Makefile.files @@ -23,6 +23,7 @@ # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. # # Copyright 2019 Joyent, Inc. +# Copyright 2022 Oxide Computer Company # # This Makefile defines file modules in the directory uts/i86xpv @@ -95,6 +96,8 @@ CORE_OBJS += \ pci_orion.o \ pmem.o \ ppage.o \ + prom_reboot.o \ + prom_panic.o \ startup.o \ ssp.o \ xpv_timestamp.o \ diff --git a/usr/src/uts/i86xpv/Makefile.rules b/usr/src/uts/i86xpv/Makefile.rules index dfabbd6897..85d91a3a87 100644 --- a/usr/src/uts/i86xpv/Makefile.rules +++ b/usr/src/uts/i86xpv/Makefile.rules @@ -90,6 +90,10 @@ $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/vm/%.c $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) +$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/promif/%.c + $(COMPILE.c) -o $@ $< + $(CTFCONVERT_O) + $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/boot/%.c $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) diff --git a/usr/src/uts/intel/Makefile.files b/usr/src/uts/intel/Makefile.files index 4336f77a23..20d5e89ec9 100644 --- a/usr/src/uts/intel/Makefile.files +++ b/usr/src/uts/intel/Makefile.files @@ -74,7 +74,6 @@ GENUNIX_OBJS += \ lwp_private.o \ prom_enter.o \ prom_exit.o \ - prom_panic.o \ sendsig.o \ syscall.o @@ -91,7 +90,6 @@ GENUNIX_OBJS += \ prom_printf.o \ prom_prop.o \ prom_putchar.o \ - prom_reboot.o \ prom_version.o # diff --git a/usr/src/uts/intel/promif/prom_panic.c b/usr/src/uts/intel/promif/prom_panic.c deleted file mode 100644 index 181d13bead..0000000000 --- a/usr/src/uts/intel/promif/prom_panic.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#include -#include -#include -#include -#include - -void -prom_panic(char *s) -{ - const char fmt[] = "%s: prom_panic: %s\n"; - - if (s == NULL) - s = "unknown panic"; - -#if defined(_KMDB) - prom_printf(fmt, "kmdb", s); -#elif defined(_KERNEL) - prom_printf(fmt, "kernel", s); - if (boothowto & RB_DEBUG) - kmdb_enter(); -#else -#error "configuration error" -#endif - prom_reboot_prompt(); - prom_reboot(NULL); -} diff --git a/usr/src/uts/intel/promif/prom_reboot.c b/usr/src/uts/intel/promif/prom_reboot.c deleted file mode 100644 index be7de23a23..0000000000 --- a/usr/src/uts/intel/promif/prom_reboot.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include -#include -#include -#include - -void -prom_reboot_prompt(void) -{ - prom_printf("Press any key to reboot.\n"); - (void) prom_getchar(); - prom_printf("Resetting...\n"); -} - -/*ARGSUSED*/ -void -prom_reboot(char *bootstr) -{ - reset(); -} -- cgit v1.2.3 From 8b4261085e0d677be9a3253ff6b4c290e402576d Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Thu, 8 Dec 2022 20:25:58 +0200 Subject: 15244 zfs-tests: zfstest should accept multiple -c options Reviewed by: Andrew Stormont Reviewed by: Andy Fiddaman Approved by: Dan McDonald --- usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh b/usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh index 93325a63c0..3d53ef5fae 100644 --- a/usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh +++ b/usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh @@ -140,8 +140,13 @@ while getopts ac:l:qT: c; do auto_detect=true ;; 'c') - runfiles=$OPTARG - [[ -f $runfiles ]] || fail "Cannot read file: $runfiles" + runfile=$OPTARG + [[ -f $runfile ]] || fail "Cannot read file: $runfile" + if [[ -z $runfiles ]]; then + runfiles=$runfile + else + runfiles+=",$runfile" + fi ;; 'l') logfile=$OPTARG -- cgit v1.2.3