1.\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved 2.\" Copyright 2016 Nexenta Systems, Inc. All rights reserved. 3.\" Copyright 2022 Jason King 4.\" 5.\" The contents of this file are subject to the terms of the 6.\" Common Development and Distribution License (the "License"). 7.\" You may not use this file except in compliance with the License. 8.\" 9.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10.\" or http://www.opensolaris.org/os/licensing. 11.\" See the License for the specific language governing permissions 12.\" and limitations under the License. 13.\" 14.\" When distributing Covered Code, include this CDDL HEADER in each 15.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16.\" If applicable, add the following below this CDDL HEADER, with the 17.\" fields enclosed by brackets "[]" replaced with your own identifying 18.\" information: Portions Copyright [yyyy] [name of copyright owner] 19.\" 20.Dd October 10, 2022 21.Dt SHAREMGR 8 22.Os 23.Sh NAME 24.Nm sharemgr 25.Nd configure and manage file sharing 26.Sh SYNOPSIS 27.Nm Cm subcommand Op options 28.Nm Cm add-share \ 29 Oo Fl nth Oc \ 30 Oo Fl r Ar resource-name Oc \ 31 Oo Fl d Ar \(dqdescription\0text\(dq Oc 32.Nm Cm create \ 33 Oo Fl nvh Oc \ 34 Oo Fl P Ar proto \ 35 Oo Fl p Ar property Ns = Ns Ar value Oc \ 36 Oc \ 37 Ar group 38.Nm Cm delete \ 39 Oo Fl nvh Oc \ 40 Oo Fl P Ar proto Oc \ 41 Oo Fl f Oc \ 42 Ar group 43.Nm Cm disable \ 44 Oo Fl nvh Oc \ 45 Oo Fl a | Ar group Ns ... Oc 46.Nm Cm enable \ 47 Oo Fl nvh Oc \ 48 Oo Fl a | Ar group Ns ... Oc 49.Nm Cm list \ 50 Oo Fl vh Oc \ 51 Oo Fl P Ar proto Oc 52.Nm Cm move-share \ 53 Oo Fl nv Oc \ 54 Fl s Ar sharepath Ar destination-group 55.Nm Cm remove-share \ 56 Oo Fl fnvh Oc \ 57 Fl s Ar sharepath Ar group 58.Nm Cm set \ 59 Oo Fl nvh Oc \ 60 Fl P Ar proto \ 61 Oo Fl p Ar property Ns = Ns Ar Value Oc Ns ... \ 62 Oo Fl S Ar optionset Oc \ 63 Oo Fl s Ar sharepath Oc \ 64 Ar group 65.Nm Cm set-share \ 66 Oo Fl nh Oc \ 67 Oo Fl r Ar resource Oc \ 68 Oo Fl d Ar \(dqdescription\0text\(dq Oc \ 69 Fl s Ar sharepath \ 70 Ar group 71.Nm Cm show \ 72 Oo Fl pvxh Oc \ 73 Oo Fl P Ar proto Oc \ 74 Oo Ar group Ns ... Oc 75.Nm Cm unset \ 76 Oo Fl nvh Oc \ 77 Fl P Ar proto \ 78 Oo Fl S Ar optionset Oc \ 79 Oo Fl p Ar property Oc Ns ... \ 80 Ar group 81.Nm Cm share \ 82 Oo Fl F Ar fstype Oc \ 83 Oo Fl p Oc \ 84 Oo Fl o Ar optionlist Oc \ 85 Oo Fl d Ar description Oc \ 86 Oo Ar pathname Oo Ar resourcename Oc Oc 87.Nm Cm unshare \ 88 Oo Fl F Ar fstype Oc \ 89 Oo Fl p Oc \ 90 Oo Fl o Ar optionlist Oc \ 91 Ar sharepath 92.Sh DESCRIPTION 93The 94.Nm 95command configures share groups and the shares contained within them. 96.Pp 97A group name must conform to service management facility (SMF) 98.Po 99see 100.Xr smf 7 101.Pc 102service-naming conventions, thus is limited to starting with an 103alphabetic character, with the rest of the name consisting only of alphanumeric 104characters plus 105.Ql \(hy 106(hyphen) and 107.Ql \(ru 108(underbar). 109.Pp 110Subcommands that result in a configuration change support a dry-run option. 111When dry-run 112.Pq Fl n 113is specified, the syntax and validity of the command is 114tested but the configuration is not actually updated. 115.Pp 116For all subcommands, the 117.Fl h 118option lists usage and help information. 119.Pp 120For subcommands with the verbose 121.Pq Fl v 122option, additional information will be provided. 123For example, in conjunction with the 124.Fl n 125option, verbose mode will also indicate whether the current user has 126sufficient permissions to accomplish the operation. 127.Pp 128There are two groups that are created automatically. 129The 130.Sy default 131group always exists and covers legacy NFS shares only. 132The 133.Sy zfs 134group will be created when ZFS shares are enabled. 135.Pp 136The options shown in the 137.Sx SYNOPSIS 138section are described in the context of each subcommand. 139All subcommands except 140.Cm list 141and 142.Cm show 143require root privileges or that you assume the Primary Administrator role. 144.Ss "Subcommands" 145With no subcommand entered, a 146.Nm 147command with the 148.Fl h 149option displays a usage message for all subcommands. 150.Pp 151The following subcommands follow 152.Nm 153on a command line. 154Commands take the form: 155.Bd -literal -offset 2n 156% \fBsharemgr \fI<subcommand>\fR [\fIoptions\fR]\fR 157.Ed 158.Bl -tag -width "1" 159.It Cm create \ 160 Oo Fl nvh Oc \ 161 Oo Fl P Ar proto Oo \ 162 Fl p Ar property Ns = Ns Ar value \ 163 Oc Oc \ 164 Ar group 165.Pp 166Create a new group with specified name. 167.Pp 168If 169.Fl n 170is specified, the command checks only the validity of the command 171and that the group does not already exist. 172.Pp 173If no protocol is specified, all known protocols are enabled for the specified 174group. 175If a protocol is specified, only that protocol is enabled. 176You can specify properties for a specified protocol. 177.Pp 178If 179.Ar group 180exists, use of 181.Fl P 182adds the specified protocol to that group. 183.Pp 184As an example of the 185.Cm create 186subcommand, the following command creates a new group with the name 187.Ar mygroup . 188.Bd -literal -offset 2n 189# \fBsharemgr create mygroup\fR 190.Ed 191.Pp 192Because no protocol was specified in the preceding command, all defined 193protocols will be enabled on the group. 194.It Cm delete \ 195 Oo Fl nvh Oc \ 196 Oo Fl P Ar proto Oc \ 197 Oo Fl f Oc \ 198 Ar group 199.Pp 200Delete the specified group. 201If the group is not empty, you can use the 202.Fl f 203option to force the deletion, which unshares and removes all shares from the 204group before removing the group itself. 205.Pp 206If you specify a protocol, rather than deleting the whole group, this 207subcommand deletes the protocol from the group. 208.Pp 209The 210.Fl n 211option can be used to test the syntax of the command. 212.Pp 213As an example, the following command removes the group 214.Ar mygroup 215from the configuration if it is empty. 216.Bd -literal -offset 2n 217# \fBsharemgr delete mygroup\fR 218.Ed 219.Pp 220The following command removes any existing shares prior to removing the group. 221.Bd -literal -offset 2n 222# \fBsharemgr delete -f mygroup\fR 223.Ed 224.Pp 225Note the use of the force 226.Pq Fl f 227option, above. 228.It Cm list \ 229 Oo Fl vh Oc \ 230 Oo Fl P Ar proto Oc 231.Pp 232List the defined groups. 233.Pp 234If a protocol is specified, list only those groups that have the specified 235protocol defined. 236.Pp 237If the verbose option is specified, the current state of the group and all 238protocols enabled on the group are listed as well. 239For example: 240.Bd -literal -offset 2n 241# \fBsharemgr list -v\fR 242mygroup enabled nfs 243rdonlygrp disabled nfs 244.Ed 245.It Cm show \ 246 Oo Fl pvxh Oc \ 247 Oo Fl P Ar proto Oc \ 248 Oo Ar group Ns ... Oc 249.Pp 250Shows the contents of the specified group(s). 251.Pp 252If the verbose option is specified, the resource name and description of each 253share is displayed if they are defined. 254Otherwise, only the share paths are 255displayed. 256Also, when temporary shares are listed, they are prefixed with an asterisk 257.Pq Ql * . 258.Pp 259If the 260.Fl p 261option is specified, all options defined for the protocols of 262the group are displayed, in addition to the display without options. 263If the 264.Fl P 265option is used, the output is limited to those groups that have the 266specified protocol enabled. 267If the 268.Fl x 269option is specified, output is in XML format and the 270.Fl p 271and 272.Fl v 273options are ignored, because all information is included in the XML. 274.Pp 275The following example illustrates the use of the 276.Fl p 277option. 278.Bd -literal -offset 2n 279# \fBsharemgr show -p mygroup\fR 280default nfs=() 281 * /data/backup 282mygroup nfs=(nosuid=true) 283 /export/home/home0 284 /export/home/home1 285.Ed 286.Pp 287The following example illustrates the use of the 288.Fl v 289option. 290.Bd -literal -offset 2n 291# \fBsharemgr show -v mygroup\fR 292mygroup 293 HOME0=/export/home/home0 "Home directory set 0" 294 HOME1=/export/home/home1 "Home directory set 1" 295.Ed 296.Pp 297ZFS managed shares are handled in a way similar to the way NFS shares are 298handled. 299These shares appear as subgroups within the parent group 300.Sy zfs . 301The subgroups are always prefixed with 302.Sy zfs/ 303and use the ZFS dataset name for the rest of the name. 304The mount point and any sub-mounts that inherit 305sharing are shown as the shares of the subgroup. 306For example: 307.Bd -literal -offset 2n 308# \fBsharemgr show -vp zfs\fR 309zfs nfs=() 310 zfs/ztest 311 /ztest 312 /ztest/backups 313.Ed 314.It Cm set \ 315 Oo Fl nvh Oc \ 316 Fl P Ar proto \ 317 Oo Fl S Ar optionset Oc \ 318 Oo Fl p Ar property Ns = Ar value Oc Ns ... \ 319 Oo Fl s Ar sharepath Oc \ 320 Ar group 321.Pp 322Set protocol-specific properties on the specified group. 323.Pp 324The 325.Fl P 326option is required and must specify a valid protocol. 327.Pp 328Optionsets are protocol-specific sets of properties that can be negotiated by 329the protocol client. 330For NFS, optionsets are equivalent to security modes as defined in 331.Xr nfssec 7 . 332If 333.Fl S Ar optionset 334is specified, the properties are applied to the selected optionset. 335Otherwise they are applied to the general optionset. 336.Pp 337Together, 338.Fl P 339and 340.Fl S 341select a specific view of the group's options on which to work. 342.Pp 343Property values are strings. 344A specified property is set to a new value if the 345property already exists or is added to the protocol if it does not already 346exist. 347.Pp 348In the general case, at least one property must be set. 349If 350.Fl S 351is specified, properties can be omitted and the specified optionset is enabled 352for the protocol. 353.Pp 354The 355.Fl s 356option allows setting properties on a per-share basis. 357While this is supported, it should be limited to managing legacy shares and to 358the occasional need for an override of a group-level property or placing an 359additional property on one share within a group. 360.Pp 361An example of this subcommand: 362.Bd -literal -offset 2n 363# \fBsharemgr set -P nfs -p anon=1234 mygroup\fR 364.Ed 365.Pp 366The preceding command adds the property 367.Sy anon=1234 368to the 369.Sy nfs 370view of group 371.Ar mygroup . 372If 373.Ar mygroup 374has existing shares, they will all be reshared with the new property value(s). 375.It Cm unset \ 376 Oo Fl nvh Oc \ 377 Fl P Ar proto \ 378 Oo Fl S Ar optionset Oc \ 379 Oo Fl p Ar property Oc Ns ... \ 380 Oo Fl s Ar sharepath Oc \ 381 Ar group 382.Pp 383Unset the specified properties for the protocol or for the specified 384.Ar optionset 385of the protocol. 386.Pp 387In the general case, at least one property must be set. 388If 389.Fl S 390is specified, properties can be omitted and the specified optionset is removed 391from the protocol. 392.Pp 393The 394.Fl s 395option allows removing a share-specific property. 396.Pp 397An example of this subcommand: 398.Bd -literal -offset 2n 399# \fBsharemgr unset -P nfs -p anon mygroup\fR 400.Ed 401.Pp 402The preceding command removes the 403.Ar anon= 404property from the 405.Sy nfs 406view of group 407.Ar mygroup . 408If 409.Ar mygroup 410has existing shares, they will all be reshared with the new property value(s). 411.It Cm add-share \ 412 Oo Fl nth Oc \ 413 Oo Fl r Ar resource-name Oc \ 414 Oo Fl d Ar \(dqdescription text\(dq Oc \ 415 Fl s Ar sharepath \ 416 Ar group 417.Pp 418Add a new share to the specified group. 419.Pp 420The 421.Fl s 422option is mandatory and takes a full directory path. 423.Pp 424If either or both of 425.Fl d 426and 427.Fl r 428are specified, they specify values associated with the share. 429.Fl d 430provides a description string to document the share and 431.Fl r 432provides a protocol-independent resource name. 433Resource names are not used by NFS at this time but can be specified. 434These names currently follow the same naming rules as group names. 435.Pp 436The temporary option 437.Pq Fl t 438results in the share being shared but not 439stored in the configuration repository. 440This option is intended for shares that 441should not survive a reboot or server restart, or for testing purposes. 442Temporary shares are indicated in the 443.Cm show 444subcommand output with an asterisk 445.Pq Ql * 446preceding the share. 447.Pp 448If 449.Ar sharepath 450is a ZFS path and that path is added to the 451.Ar zfs 452group, 453.Nm 454creates a new ZFS subgroup; the new share is added to that subgroup. 455Any ZFS sub-filesystems under the ZFS filesystem designated by 456.Ar sharepath 457will inherit the shared status of 458.Ar sharepath . 459.Pp 460The effect of the 461.Cm add-share 462subcommand on a ZFS dataset is determined by the values of the 463.Sy sharesmb 464and 465.Sy sharenfs 466properties of that dataset. 467.Pp 468See 469.Xr zfs 8 470for a description of the 471.Sy sharesmb 472and 473.Sy sharenfs 474properties. 475.Pp 476The following are examples of the 477.Cm add-share 478subcommand. 479.Bd -literal -offset 2n 480# \fBsharemgr add-share -s /export/home/home0 -d "home \e 481directory set 0" -r HOME0 mygroup\fR 482 483# \fBsharemgr add-share -s /export/home/home1 -d "home \e 484directory set 1" -r HOME1 mygroup\fR 485.Ed 486.Pp 487The preceding commands add 488.Pa /export/home/home0 489and 490.Pa /export/home/home1 491to the group 492.Ar mygroup . 493A descriptive comment and a resource name are included. 494.It Cm move-share \ 495 Oo Fl nvh Oc \ 496 Fl s Ar sharepath \ 497 Ar destination-group 498.Pp 499Move the specified share from the group it is currently in to the specified 500destination group. 501The 502.Cm move-share 503subcommand does not create a group. 504A specified group must exist for the command to succeed. 505.Pp 506The following is an example of this subcommand. 507.Bd -literal -offset 2n 508# \fBsharemgr move-share -s /export/home/home1 newgroup\fR 509.Ed 510.Pp 511Assuming 512.Pa /export/home/home1 513is in the group 514.Ar mygroup , 515the preceding command moves 516.Pa /export/home/home1 517to the group 518.Ar newgroup 519and unshares and then reshares the directory with the properties associated with 520.Ar newgroup . 521.It Cm remove-share \ 522 Oo Fl fnvh Oc \ 523 Fl s Ar sharepath \ 524 Ar group 525.Pp 526Remove the specified share from the specified group. 527The force 528.Pq Fl f 529option forces the share to be removed even if it is busy. 530.Pp 531You must specify the full path for 532.Ar sharepath . 533For group, use the subgroup as displayed in the output of the 534.Nm Cm show 535command. 536Note that if 537there are subshares that were created by inheritance, these will be removed, 538along with the parent shares. 539.It Cm set-share \ 540 Oo Fl nvh Oc \ 541 Oo Fl r resource Oc \ 542 Oo Fl d Ar \(dqdescription text\(dq Oc \ 543 Fl s Ar sharepath \ 544 Ar group 545.Pp 546Set or change the specified share's description and resource values. 547One use of 548.Cm set-share 549is to rename a resource. 550The syntax for this use of the subcommand is: 551.Bd -literal -offset 2n 552# \fBsharemgr set-share -r \fIcurrent_name\fR=\fInew_name\fR -s \fIsharepath\fR \fIgroup\fR\fR 553.Ed 554.It Cm enable \ 555 Oo Fl nvh Oc \ 556 Oo Ar group Ns ... | Fl a Oc 557.Pp 558Enable the specified group(s), or 559.Po 560with 561.Fl a 562.Pc 563all groups, and start sharing the contained shares. 564This state persists across reboots. 565.Pp 566An enabled group will be shared whenever the corresponding SMF service instance 567is enabled. 568.Nm 569will start the SMF service instance if it is not currently online. 570.It Cm disable \ 571 Oo Fl nvh Oc \ 572 Oo Ar group Ns ... | Fl a Oc 573.Pp 574Disable the specified group(s), or 575.Po 576with 577.Fl a 578.Pc 579all groups, and unshare the shares that they contain. 580This state persists across reboots. 581.Pp 582A disabled group will not be shared even if the corresponding SMF service 583instance is online. 584This feature is useful when you do not want a group of 585shares to be started at boot time. 586.It Cm start \ 587 Oo Fl vh Oc \ 588 Oo Fl P Ar proto Oc \ 589 Oo Ar group Ns ... | Fl a Oc 590.Pp 591Start the specified group, or 592.Po 593with 594.Fl a 595.Pc 596all groups. 597The 598.Cm start 599subcommand is similar to 600.Cm enable 601in that all shares are started, but 602.Cm start 603works only on groups that are enabled. 604.Cm start 605is used by the SMF to start sharing at system boot. 606.Pp 607A group will not start sharing if it is in the 608.Nm sharemgr Em disabled 609state. 610However, the corresponding SMF service instance will be started. 611.Pp 612Note that the 613.Cm start 614subcommand is similar to the 615.Xr shareall 8 616command in that it starts up only the configured shares. 617That is, the enabled 618shares will start being shared, but the configuration state is left the same. 619The command: 620.Bd -literal -offset 2n 621# \fBsharemgr start -a\fR 622.Ed 623.Pp 624\&...is equivalent to: 625.Bd -literal -offset 2n 626# \fBshareall\fR 627.Ed 628.It Cm stop \ 629 Oo Fl vh Oc \ 630 Oo Fl P Ar proto Oc \ 631 Oo Ar group Ns ... | Fl a Oc 632.Pp 633Stop the specified group, or 634.Po 635with 636.Fl a 637.Pc 638all groups. 639The 640.Cm stop 641subcommand is similar to 642.Cm disable 643in that all shares are no longer shared, 644but it works only on groups that are enabled. 645.Cm stop 646is used by the SMF to stop sharing at system shutdown. 647.Pp 648Note that the 649.Cm stop 650subcommand is similar to the 651.Xr unshareall 8 652command in that all active shares are unshared, but the configuration is left 653the same. 654That is, the shares are stopped but the service instances are left enabled. 655The command: 656.Bd -literal -offset 2n 657# \fBsharemgr stop -a\fR 658.Ed 659.Pp 660\&...is equivalent to: 661.Bd -literal -offset 2n 662# \fBunshareall\fR 663.Ed 664.It Cm share \ 665 Oo Fl F Ar fstype Oc \ 666 Oo Fl p Oc \ 667 Oo Fl o Ar optionlist Oc \ 668 Oo Fl d Ar descriptoion Oc \ 669 Oo Ar pathname Oo Ar resoucename Oc Oc 670.Pp 671Shares the specified path in the 672.Ar default 673share group. 674This subcommand implements the 675.Xr share 8 676functionality. 677Shares that are shared in this manner will be transient shares. 678Use of the 679.Fl p 680option causes the shares to be persistent. 681.It Cm unshare \ 682 Oo Fl F Ar fstype Oc \ 683 Oo Fl p Oc \ 684 Oo Fl o Ar optionlist Oc \ 685 Ar sharepath 686.Pp 687Unshares the specified share. 688This subcommand implements the 689.Xr unshare 8 690functionality. 691By default, the 692.Cm unshare 693is temporary. 694The 695.Fl p 696option 697is provided to remove the share from the configuration in a way that persists 698across reboots. 699.El 700.Ss "Supported Properties" 701Properties are protocol-specific. 702Currently, only the NFS and SMB protocols are supported. 703Properties have the following characteristics: 704.Bl -bullet -offset indent 705.It 706Values of type 707.Sy boolean 708take either 709.Sy true 710or 711.Sy false . 712.It 713Values of type 714.Sy value 715take a numeric value. 716.It 717Values of type 718.Sy file 719take a file name and not a file path. 720.It 721Values of type 722.Sy access-list 723are described in detail following the descriptions of the NFS properties. 724.El 725.Pp 726The general properties supported for NFS are: 727.Bl -tag -width 1 728.It Cm abe Ns = Ns Ar boolean 729.Pp 730Set the access-based enumeration (ABE) policy for a share. 731When set to 732.Ql true , 733ABE filtering is enabled on this share and directory entries to 734which the requesting user has no access will be omitted from directory listings 735returned to the client. 736When set to 737.Ql false 738or not defined, ABE filtering will not be performed on this share. 739This property is not defined by default. 740.Bl -tag -width disabled 741.It false 742Disable ABE for this share. 743.It true 744Enable ABE for this share. 745.El 746.It Cm aclok Ns = Ns Ar boolean 747.Pp 748Allows the NFS server to do access control for NFS Version 2 clients (running 749SunOS 2.4 or earlier). 750When 751.Cm aclok 752is set on the server, maximum access is given to all clients. 753For example, with 754.Cm aclok 755set, if anyone has read permissions, then everyone does. 756If 757.Cm aclok 758is not set, minimum access is given to all clients. 759.It Cm ad-container 760.Pp 761Specifies the AD container in which to publish shares. 762.Pp 763The AD container is specified as a comma-separated list of attribute name-value 764pairs using the LDAP distinguished name (DN) or relative distinguished name 765(RDN) format. 766The DN or RDN must be specified in LDAP format using the 767.Ar cn= , 768.Ar ou= , 769and 770.Ar dc= 771prefixes: 772.Bl -bullet -offset indent 773.It 774.Cm cn 775represents the common name 776.It 777.Cm ou 778represents the organizational unit 779.It 780.Cm dc 781represents the domain component 782.El 783.Pp 784.Cm cn= , 785.Cm ou= , 786and 787.Cm dc= 788are attribute types. 789The attribute type used 790to describe an object's RDN is called the naming attribute, which, for ADS, 791includes the following object classes: 792.Bl -bullet -offset indent 793.It 794.Cm cn 795for the 796.Sy user 797object class 798.It 799.Cm ou 800for the organizational unit 801.Pq Cm OU 802object class 803.It 804.Cm dc 805for the 806.Cm domainDns 807object class 808.El 809.It Cm anon Ns = Ns Ar uid 810.Pp 811Set 812.Ar uid 813to be the effective user ID of unknown users. 814By default, unknown users are given the effective user ID 815.Dv UID_NOBODY . 816If uid is set to 817.Sy -1 , 818access is denied. 819.It Cm catia Ns = Ns Ar boolean 820.Pp 821CATIA V4 uses characters in file names that are considered to be invalid by 822Windows. 823CATIA V5 is available on Windows. 824A CATIA V4 file could be 825inaccessible to Windows clients if the file name contains any of the characters 826that are considered illegal in Windows. 827By default, CATIA character substitution is not performed. 828If the 829.Cm catia 830property is set to true, the following character 831substitution is applied to file names. 832.Bd -literal -offset 2n 833CATIA CATIA 834V4 UNIX V5 Windows 835 " \e250 0x00a8 Dieresis 836 * \e244 0x00a4 Currency Sign 837 / \e370 0x00f8 Latin Small Letter O with Stroke 838 : \e367 0x00f7 Division Sign 839 < \e253 0x00ab Left-Pointing Double Angle Quotation Mark 840 > \e273 0x00bb Right-Pointing Double Angle Quotation Mark 841 ? \e277 0x00bf Inverted Question Mark 842 \e \e377 0x00ff Latin Small Letter Y with Dieresis 843 | \e246 0x00a6 Broken Bar 844.Ed 845.It Cm cksum Ns = Ns Ar cksumlist 846.Pp 847Set the share to attempt to use end-to-end checksums. 848The value 849.Ar cksumlist 850specifies the checksum algorithms that should be used. 851.It Cm csc Ns = Ns Ar value 852.Pp 853Set the client-side caching policy for a share. 854Client-side caching is a client 855feature and offline files are managed entirely by the clients. 856.Pp 857The following are valid values for the 858.Cm csc 859property: 860.Bl -tag -width disabled -offset indent 861.It Sy manual 862Clients are permitted to cache files from the specified 863share for offline use as requested by users. 864However, automatic file-by-file reintegration is not permitted. 865.Sy manual 866is the default value. 867.It Sy auto 868Clients are permitted to automatically cache files from the 869specified share for offline use and file-by-file reintegration is permitted. 870.It Sy vdo 871Clients are permitted to automatically cache files from the 872specified share for offline use, file-by-file reintegration is permitted, and 873clients are permitted to work from their local cache even while offline. 874.It Sy disabled 875Client-side caching is not permitted for this share. 876.El 877.It Cm guestok Ns = Ns Ar boolean 878.Pp 879Set the guest access policy for the share. 880When set to 881.Sy true 882guest access is allowed on this share. 883When set to 884.Sy false 885or not defined guest access is not allowed on this share. 886This property is not defined by default. 887.Pp 888An 889.Xr idmap 8 890name-based rule can be used to map 891.Sy guest 892to any local username, such as 893.Sy guest 894or 895.Sy nobody . 896If the local account has a password in 897.Pa /var/smb/smbpasswd 898the guest connection will be authenticated against that password. 899Any connection made using an account that maps to the 900local guest account will be treated as a guest connection. 901.Pp 902Example name-based rule: 903.Bd -literal -offset 2n 904# \fBidmap add winname:Guest unixuser:guest\fR 905.Ed 906.It Cm index Ns = Ns Ar file 907.Pp 908Load 909.Ar file 910rather than a listing of the directory containing this file 911when the directory is referenced by an NFS URL. 912.It Cm log Ns = Ns Ar tag 913.Pp 914Enables NFS server logging for the specified system. 915The optional tag determines the location of the related log files. 916The tag is defined in 917.Pa /etc/nfs/nfslog.conf . 918If no tag is specified, the default values 919associated with the global tag in 920.Pa /etc/nfs/nfslog.conf 921is used. 922Support of 923NFS server logging is available only for NFS Version 2 and Version 3 requests. 924.It Cm nosub Ns = Ns Ar boolean 925.Pp 926Prevents clients from mounting subdirectories of shared directories. 927For example, if 928.Pa /export 929is shared with the 930.Cm nosub 931option on server 932.Ql wool 933then an NFS client cannot do: 934.Bd -literal -offset 2n 935# \fBmount -F nfs wool:/export/home/mnt\fR 936.Ed 937.Pp 938NFS Version 4 does not use the MOUNT protocol. 939The 940.Cm nosub 941option applies only to NFS Version 2 and Version 3 requests. 942.It Cm nosuid Ns = Ns Ar boolean 943.Pp 944By default, clients are allowed to create files on a shared file system with 945the 946.Sy setuid 947or 948.Sy setgid 949mode enabled. 950Specifying 951.Sy nosuid 952causes the server file system to silently ignore any attempt to enable the 953.Sy setuid 954or 955.Sy setgid 956mode bits. 957.It Cm public Ns = Ns Ar boolean 958.Pp 959Moves the location of the public file handle from root 960.Pq / 961to the exported directory for WebNFS-enabled browsers and clients. 962This option does not enable WebNFS service; WebNFS is always on. 963Only one file system per server can have the 964.Sy public 965property. 966You can apply the 967.Sy public 968property only to a share and not to a group. 969.El 970.Pp 971NFS also supports negotiated optionsets for supported security modes. 972The security modes are documented in 973.Xr nfssec 7 . 974The properties supported for these optionsets are: 975.Bl -tag -width 1 976.It Cm charset Ns = Ns Ar access-list 977.Pp 978Where 979.Cm charset 980is one of: 981.Sy euc-cn , 982.Sy euc-jp , 983.Sy euc-jpms , 984.Sy euc-kr , 985.Sy euc-tw , 986.Sy iso8859-1 , 987.Sy iso8859-2 , 988.Sy iso8859-5 , 989.Sy iso8859-6 , 990.Sy iso8859-7 , 991.Sy iso8859-8 , 992.Sy iso8859-9 , 993.Sy iso8859-13 , 994.Sy iso8859-15 , 995.Sy koi8-r . 996.Pp 997Clients that match the 998.Ar access-list 999for one of these properties will be 1000assumed to be using that character set and file and path names will be 1001converted to UTF-8 for the server. 1002.It Cm ro Ns = Ns Ar access-list 1003.Pp 1004Sharing is read-only to the clients listed in 1005.Ar access-list ; 1006overrides the 1007.Cm rw 1008suboption for the clients specified. 1009See the description of 1010.Ar access-list 1011below. 1012.It Cm rw Ns = Ns Ar access-list 1013.Pp 1014Sharing is read-write to the clients listed in 1015.Ar access-list ; 1016overrides the 1017.Cm ro 1018suboption for the clients specified. 1019See the description of 1020.Ar access-list 1021below. 1022.It Cm none Ns = Ns Ar access-list 1023.Pp 1024Access is not allowed to any client that matches the access list. 1025The exception 1026is when the access list is an asterisk 1027.Pq Ql * , 1028in which case 1029.Cm ro 1030or 1031.Cm rw 1032can override 1033.Cm none . 1034.It Cm root Ns = Ns Ar access-list 1035.Pp 1036Only root users from the hosts specified in 1037.Ar access-list 1038have root access. 1039See details on 1040.Ar access-list 1041below. 1042By default, no host has root access, so 1043root users are mapped to an anonymous user ID (see the 1044.Cm anon Ns = Ns Ar uid 1045option described above). 1046Netgroups can be used if the file system shared is using UNIX 1047authentication 1048.Pq Dv AUTH_SYS . 1049.It Cm root_mapping Ns = Ns Ar uid 1050.Pp 1051For a client that is allowed root access, map the root UID to the specified 1052user id. 1053.It Cm window Ns = Ns Ar value 1054.Pp 1055When sharing with 1056.Cm sec Ns = Ns Sy dh 1057.Po 1058see 1059.Xr nfssec 7 1060.Pc , 1061set the maximum lifetime (in seconds) of the RPC request's credential 1062(in the authentication header) that the NFS server allows. 1063If a credential arrives with a lifetime larger than 1064what is allowed, the NFS server rejects the request. 1065The default value is 30000 seconds (8.3 hours). 1066This property is ignored for security modes other than 1067.Sy dh . 1068.El 1069.Pp 1070The general properties supported for SMB are: 1071.Bl -tag -width 1 1072.It Cm encrypt Ns = Ns Ar string 1073.Pp 1074Controls SMB3 per-share encryption. 1075This is similar to the global smbd/encrypt option. 1076For requests on a particular share, the server's behavior is controlled 1077by the stricter of this option and smbd/encrypt. 1078.Pp 1079When set to 1080.Sy disabled , 1081the server will not ask clients to encrypt requests. 1082When set to 1083.Sy enabled , 1084the server will ask clients to encrypt requests, 1085but will not require that they do so. 1086Any message than can be encrypted will be encrypted. 1087When set to 1088.Sy required , 1089the server will deny access to or disconnect 1090any client that does not support encryption or fails to encrypt requests 1091that they should. 1092.Pp 1093In other words, the 1094.Sy enabled 1095behavior is that any message that CAN 1096be encrypted SHOULD be encrypted, while the 1097.Sy required 1098behavior is that any message that CAN be encrypted MUST be encrypted. 1099.Pp 1100This property is not defined by default. 1101.It Cm ro Ns = Ns Ar access-list 1102.Pp 1103Sharing is read-only to the clients listed in 1104.Ar access-list ; 1105overrides the 1106.Cm rw 1107suboption for the clients specified. 1108See the description of 1109.Ar access-list 1110below. 1111.It Cm rw Ns = Ns Ar access-list 1112.Pp 1113Sharing is read-write to the clients listed in 1114.Ar access-list ; 1115overrides the 1116.Cm ro 1117suboption for the clients specified. 1118See the description of 1119.Ar access-list 1120below. 1121.It Cm none Ns = Ns access-list 1122.Pp 1123Access is not allowed to any client that matches the access list. 1124The exception is when the access list is an asterisk 1125.Pq Ql * , 1126in which case 1127.Cm ro 1128or 1129.Cm rw 1130can override 1131.Cm none . 1132.El 1133.Ss "Access List Argument" 1134The 1135.Ar access-list 1136argument is either the string 1137.Ql * 1138to represent all hosts or a colon-separated list whose components can be any 1139number of the following: 1140.Bl -tag -width 1 1141.It Ar hostname 1142.Pp 1143The name of a host. 1144With a server configured for DNS or LDAP naming in the 1145.Xr nsswitch.conf 5 1146.Ql hosts 1147entry, a hostname must be represented as a fully qualified DNS or LDAP name. 1148.It Ar netgroup 1149.Pp 1150A 1151.Ar netgroup 1152contains a number of hostnames. 1153With a server configured for DNS or LDAP naming in the 1154.Xr nsswitch.conf 5 1155.Ql hosts 1156entry, any 1157hostname in a netgroup must be represented as a fully qualified DNS or LDAP 1158name. 1159.It Ar domainname . Ns Ar suffix 1160.Pp 1161To use domain membership the server must use DNS or LDAP, rather than, for 1162example, NIS, to resolve hostnames to IP addresses. 1163That is, the 1164.Sy hosts 1165entry in the 1166.Xr nsswitch.conf 5 1167must specify 1168.Ql dns 1169or 1170.Ql ldap 1171ahead of 1172.Ql nis , 1173because only DNS and LDAP return the full domain name of the host. 1174Other name services, such as NIS, 1175cannot be used to resolve hostnames on the server because, when mapping 1176an IP address to a hostname, they do not return domain information. 1177For example, for the IP address 172.16.45.9: 1178.Bl -tag -width "DNS OR LDAP" 1179.It Sy NIS 1180Returns: 1181.Sy myhost 1182.It Sy DNS or LDAP 1183Returns: 1184.Sy myhost.mydomain.example.com 1185.El 1186.Pp 1187The domain name suffix is distinguished from hostnames and netgroups by a 1188prefixed dot. 1189For example: 1190.Bd -literal -offset 2n 1191rw=.mydomain.example.com 1192.Ed 1193.Pp 1194A single dot can be used to match a hostname with no suffix. 1195For example, the 1196specification: 1197.Bd -literal -offset 2n 1198rw=. 1199.Ed 1200.Pp 1201\&...matches 1202.Ql mydomain 1203but not 1204.Ql mydomain.example.com . 1205This feature can be used to match hosts resolved through NIS rather than DNS and 1206LDAP. 1207.It Ar network 1208.Pp 1209The network or subnet component is preceded by an at-sign 1210.Pq Ql @ . 1211It can be either a name or a dotted address. 1212If a name, it is converted to a dotted address by 1213.Xr getnetbyname 3SOCKET . 1214For example: 1215.Bd -literal -offset 2n 1216=@mynet 1217.Ed 1218.Pp 1219\&...is equivalent to: 1220.Bd -literal -offset 2n 1221=@172.16 or =@172.16.0.0 1222.Ed 1223.Pp 1224The network prefix assumes an octet-aligned netmask determined from the zeroth 1225octet in the low-order part of the address up to and including the high-order 1226octet, if you want to specify a single IP address. 1227In the case where network 1228prefixes are not byte-aligned, the syntax allows a mask length to be specified 1229explicitly following a slash 1230.Pq Ql / 1231delimiter. 1232For example: 1233.Bd -literal -offset 2n 1234=@theothernet/17 or =@172.16.132/22 1235.Ed 1236.Pp 1237\&...where the mask is the number of leftmost contiguous significant bits in 1238the corresponding IP address. 1239.El 1240.Pp 1241A prefixed minus sign 1242.Pq Ql - 1243denies access to a component of 1244.Ar access-list . 1245The list is searched sequentially until a match is found 1246that either grants or denies access, or until the end of the list is reached. 1247For example, if host 1248.Ql terra 1249is in the netgroup 1250.Ql engineering , 1251then: 1252.Bd -literal -offset 2n 1253rw=-terra:engineering 1254.Ed 1255.Pp 1256\&...denies access to 1257.Ql terra , 1258but: 1259.Bd -literal -offset 2n 1260rw=engineering:-terra 1261.Ed 1262.Pp 1263\&...grants access to 1264.Ql terra . 1265.Sh FILES 1266.Bl -tag -width Pa 1267.It Pa /usr/include/libshare.h 1268Error codes used for exit status. 1269.El 1270.Sh EXIT STATUS 1271.Bl -tag -offset indent -width "other non-zero" -compact 1272.It Er 0 1273Successful completion. 1274.It Er 98 1275Service is offline and cannot be enabled (start only). 1276.It Er other non-zero 1277Command failed. 1278.El 1279.Sh INTERFACE STABILITY 1280Committed 1281.Sh SEE ALSO 1282.Xr attributes 7 , 1283.Xr nfssec 7 , 1284.Xr smf 7 , 1285.Xr standards 7 , 1286.Xr idmap 8 , 1287.Xr sharectl 8 , 1288.Xr zfs 8 1289