| .\" |
| .\" 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 (c) 2009 Sun Microsystems, Inc. All Rights Reserved. |
| .\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org> |
| .\" Copyright (c) 2011, 2019 by Delphix. All rights reserved. |
| .\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd@FreeBSD.org> |
| .\" Copyright (c) 2012, Glen Barber <gjb@FreeBSD.org> |
| .\" Copyright (c) 2012, Bryan Drewery <bdrewery@FreeBSD.org> |
| .\" Copyright (c) 2013, Steven Hartland <smh@FreeBSD.org> |
| .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. |
| .\" Copyright (c) 2014, Joyent, Inc. All rights reserved. |
| .\" Copyright (c) 2014 by Adam Stevko. All rights reserved. |
| .\" Copyright (c) 2014 Integros [integros.com] |
| .\" Copyright (c) 2014, Xin LI <delphij@FreeBSD.org> |
| .\" Copyright (c) 2014-2015, The FreeBSD Foundation, All Rights Reserved. |
| .\" Copyright (c) 2016 Nexenta Systems, Inc. All Rights Reserved. |
| .\" Copyright 2019 Richard Laager. All rights reserved. |
| .\" Copyright 2018 Nexenta Systems, Inc. |
| .\" Copyright 2019 Joyent, Inc. |
| .\" |
| .Dd June 30, 2019 |
| .Dt ZFS 8 |
| .Os |
| . |
| .Sh NAME |
| .Nm zfs |
| .Nd configure ZFS datasets |
| .Sh SYNOPSIS |
| .Nm |
| .Fl ?V |
| .Nm |
| .Cm version |
| .Nm |
| .Cm subcommand |
| .Op Ar arguments |
| . |
| .Sh DESCRIPTION |
| The |
| .Nm |
| command configures ZFS datasets within a ZFS storage pool, as described in |
| .Xr zpool 8 . |
| A dataset is identified by a unique path within the ZFS namespace. |
| For example: |
| .Dl pool/{filesystem,volume,snapshot} |
| .Pp |
| where the maximum length of a dataset name is |
| .Sy MAXNAMELEN Pq 256B |
| and the maximum amount of nesting allowed in a path is 50 levels deep. |
| .Pp |
| A dataset can be one of the following: |
| .Bl -tag -offset Ds -width "file system" |
| .It Sy file system |
| Can be mounted within the standard system namespace and behaves like other file |
| systems. |
| While ZFS file systems are designed to be POSIX-compliant, known issues exist |
| that prevent compliance in some cases. |
| Applications that depend on standards conformance might fail due to non-standard |
| behavior when checking file system free space. |
| .It Sy volume |
| A logical volume exported as a raw or block device. |
| This type of dataset should only be used when a block device is required. |
| File systems are typically used in most environments. |
| .It Sy snapshot |
| A read-only version of a file system or volume at a given point in time. |
| It is specified as |
| .Ar filesystem Ns @ Ns Ar name |
| or |
| .Ar volume Ns @ Ns Ar name . |
| .It Sy bookmark |
| Much like a |
| .Sy snapshot , |
| but without the hold on on-disk data. |
| It can be used as the source of a send (but not for a receive). |
| It is specified as |
| .Ar filesystem Ns # Ns Ar name |
| or |
| .Ar volume Ns # Ns Ar name . |
| .El |
| .Pp |
| See |
| .Xr zfsconcepts 7 |
| for details. |
| . |
| .Ss Properties |
| Properties are divided into two types: native properties and user-defined |
| .Pq or Qq user |
| properties. |
| Native properties either export internal statistics or control ZFS behavior. |
| In addition, native properties are either editable or read-only. |
| User properties have no effect on ZFS behavior, but you can use them to annotate |
| datasets in a way that is meaningful in your environment. |
| For more information about properties, see |
| .Xr zfsprops 7 . |
| . |
| .Ss Encryption |
| Enabling the |
| .Sy encryption |
| feature allows for the creation of encrypted filesystems and volumes. |
| ZFS will encrypt file and zvol data, file attributes, ACLs, permission bits, |
| directory listings, FUID mappings, and |
| .Sy userused Ns / Ns Sy groupused Ns / Ns Sy projectused |
| data. |
| For an overview of encryption, see |
| .Xr zfs-load-key 8 . |
| . |
| .Sh SUBCOMMANDS |
| All subcommands that modify state are logged persistently to the pool in their |
| original form. |
| .Bl -tag -width "" |
| .It Nm Fl ? |
| Displays a help message. |
| .It Xo |
| .Nm |
| .Fl V , -version |
| .Xc |
| .It Xo |
| .Nm |
| .Cm version |
| .Xc |
| Displays the software version of the |
| .Nm |
| userland utility and the zfs kernel module. |
| .El |
| . |
| .Ss Dataset Management |
| .Bl -tag -width "" |
| .It Xr zfs-list 8 |
| Lists the property information for the given datasets in tabular form. |
| .It Xr zfs-create 8 |
| Creates a new ZFS file system or volume. |
| .It Xr zfs-destroy 8 |
| Destroys the given dataset(s), snapshot(s), or bookmark. |
| .It Xr zfs-rename 8 |
| Renames the given dataset (filesystem or snapshot). |
| .It Xr zfs-upgrade 8 |
| Manage upgrading the on-disk version of filesystems. |
| .El |
| . |
| .Ss Snapshots |
| .Bl -tag -width "" |
| .It Xr zfs-snapshot 8 |
| Creates snapshots with the given names. |
| .It Xr zfs-rollback 8 |
| Roll back the given dataset to a previous snapshot. |
| .It Xr zfs-hold 8 Ns / Ns Xr zfs-release 8 |
| Add or remove a hold reference to the specified snapshot or snapshots. |
| If a hold exists on a snapshot, attempts to destroy that snapshot by using the |
| .Nm zfs Cm destroy |
| command return |
| .Sy EBUSY . |
| .It Xr zfs-diff 8 |
| Display the difference between a snapshot of a given filesystem and another |
| snapshot of that filesystem from a later time or the current contents of the |
| filesystem. |
| .El |
| . |
| .Ss Clones |
| .Bl -tag -width "" |
| .It Xr zfs-clone 8 |
| Creates a clone of the given snapshot. |
| .It Xr zfs-promote 8 |
| Promotes a clone file system to no longer be dependent on its |
| .Qq origin |
| snapshot. |
| .El |
| . |
| .Ss Send & Receive |
| .Bl -tag -width "" |
| .It Xr zfs-send 8 |
| Generate a send stream, which may be of a filesystem, and may be incremental |
| from a bookmark. |
| .It Xr zfs-receive 8 |
| Creates a snapshot whose contents are as specified in the stream provided on |
| standard input. |
| If a full stream is received, then a new file system is created as well. |
| Streams are created using the |
| .Xr zfs-send 8 |
| subcommand, which by default creates a full stream. |
| .It Xr zfs-bookmark 8 |
| Creates a new bookmark of the given snapshot or bookmark. |
| Bookmarks mark the point in time when the snapshot was created, and can be used |
| as the incremental source for a |
| .Nm zfs Cm send |
| command. |
| .It Xr zfs-redact 8 |
| Generate a new redaction bookmark. |
| This feature can be used to allow clones of a filesystem to be made available on |
| a remote system, in the case where their parent need not (or needs to not) be |
| usable. |
| .El |
| . |
| .Ss Properties |
| .Bl -tag -width "" |
| .It Xr zfs-get 8 |
| Displays properties for the given datasets. |
| .It Xr zfs-set 8 |
| Sets the property or list of properties to the given value(s) for each dataset. |
| .It Xr zfs-inherit 8 |
| Clears the specified property, causing it to be inherited from an ancestor, |
| restored to default if no ancestor has the property set, or with the |
| .Fl S |
| option reverted to the received value if one exists. |
| .El |
| . |
| .Ss Quotas |
| .Bl -tag -width "" |
| .It Xr zfs-userspace 8 Ns / Ns Xr zfs-groupspace 8 Ns / Ns Xr zfs-projectspace 8 |
| Displays space consumed by, and quotas on, each user, group, or project |
| in the specified filesystem or snapshot. |
| .It Xr zfs-project 8 |
| List, set, or clear project ID and/or inherit flag on the file(s) or directories. |
| .El |
| . |
| .Ss Mountpoints |
| .Bl -tag -width "" |
| .It Xr zfs-mount 8 |
| Displays all ZFS file systems currently mounted, or mount ZFS filesystem |
| on a path described by its |
| .Sy mountpoint |
| property. |
| .It Xr zfs-unmount 8 |
| Unmounts currently mounted ZFS file systems. |
| .El |
| . |
| .Ss Shares |
| .Bl -tag -width "" |
| .It Xr zfs-share 8 |
| Shares available ZFS file systems. |
| .It Xr zfs-unshare 8 |
| Unshares currently shared ZFS file systems. |
| .El |
| . |
| .Ss Delegated Administration |
| .Bl -tag -width "" |
| .It Xr zfs-allow 8 |
| Delegate permissions on the specified filesystem or volume. |
| .It Xr zfs-unallow 8 |
| Remove delegated permissions on the specified filesystem or volume. |
| .El |
| . |
| .Ss Encryption |
| .Bl -tag -width "" |
| .It Xr zfs-change-key 8 |
| Add or change an encryption key on the specified dataset. |
| .It Xr zfs-load-key 8 |
| Load the key for the specified encrypted dataset, enabling access. |
| .It Xr zfs-unload-key 8 |
| Unload a key for the specified dataset, removing the ability to access the dataset. |
| .El |
| . |
| .Ss Channel Programs |
| .Bl -tag -width "" |
| .It Xr zfs-program 8 |
| Execute ZFS administrative operations |
| programmatically via a Lua script-language channel program. |
| .El |
| . |
| .Ss Jails |
| .Bl -tag -width "" |
| .It Xr zfs-jail 8 |
| Attaches a filesystem to a jail. |
| .It Xr zfs-unjail 8 |
| Detaches a filesystem from a jail. |
| .El |
| . |
| .Ss Waiting |
| .Bl -tag -width "" |
| .It Xr zfs-wait 8 |
| Wait for background activity in a filesystem to complete. |
| .El |
| . |
| .Sh EXIT STATUS |
| The |
| .Nm |
| utility exits |
| .Sy 0 |
| on success, |
| .Sy 1 |
| if an error occurs, and |
| .Sy 2 |
| if invalid command line options were specified. |
| . |
| .Sh EXAMPLES |
| .Bl -tag -width "" |
| . |
| .It Sy Example 1 : No Creating a ZFS File System Hierarchy |
| The following commands create a file system named |
| .Ar pool/home |
| and a file system named |
| .Ar pool/home/bob . |
| The mount point |
| .Pa /export/home |
| is set for the parent file system, and is automatically inherited by the child |
| file system. |
| .Dl # Nm zfs Cm create Ar pool/home |
| .Dl # Nm zfs Cm set Sy mountpoint Ns = Ns Ar /export/home pool/home |
| .Dl # Nm zfs Cm create Ar pool/home/bob |
| . |
| .It Sy Example 2 : No Creating a ZFS Snapshot |
| The following command creates a snapshot named |
| .Ar yesterday . |
| This snapshot is mounted on demand in the |
| .Pa .zfs/snapshot |
| directory at the root of the |
| .Ar pool/home/bob |
| file system. |
| .Dl # Nm zfs Cm snapshot Ar pool/home/bob Ns @ Ns Ar yesterday |
| . |
| .It Sy Example 3 : No Creating and Destroying Multiple Snapshots |
| The following command creates snapshots named |
| .Ar yesterday No of Ar pool/home |
| and all of its descendent file systems. |
| Each snapshot is mounted on demand in the |
| .Pa .zfs/snapshot |
| directory at the root of its file system. |
| The second command destroys the newly created snapshots. |
| .Dl # Nm zfs Cm snapshot Fl r Ar pool/home Ns @ Ns Ar yesterday |
| .Dl # Nm zfs Cm destroy Fl r Ar pool/home Ns @ Ns Ar yesterday |
| . |
| .It Sy Example 4 : No Disabling and Enabling File System Compression |
| The following command disables the |
| .Sy compression |
| property for all file systems under |
| .Ar pool/home . |
| The next command explicitly enables |
| .Sy compression |
| for |
| .Ar pool/home/anne . |
| .Dl # Nm zfs Cm set Sy compression Ns = Ns Sy off Ar pool/home |
| .Dl # Nm zfs Cm set Sy compression Ns = Ns Sy on Ar pool/home/anne |
| . |
| .It Sy Example 5 : No Listing ZFS Datasets |
| The following command lists all active file systems and volumes in the system. |
| Snapshots are displayed if |
| .Sy listsnaps Ns = Ns Sy on . |
| The default is |
| .Sy off . |
| See |
| .Xr zpoolprops 7 |
| for more information on pool properties. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm list |
| NAME USED AVAIL REFER MOUNTPOINT |
| pool 450K 457G 18K /pool |
| pool/home 315K 457G 21K /export/home |
| pool/home/anne 18K 457G 18K /export/home/anne |
| pool/home/bob 276K 457G 276K /export/home/bob |
| .Ed |
| . |
| .It Sy Example 6 : No Setting a Quota on a ZFS File System |
| The following command sets a quota of 50 Gbytes for |
| .Ar pool/home/bob : |
| .Dl # Nm zfs Cm set Sy quota Ns = Ns Ar 50G pool/home/bob |
| . |
| .It Sy Example 7 : No Listing ZFS Properties |
| The following command lists all properties for |
| .Ar pool/home/bob : |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm get Sy all Ar pool/home/bob |
| NAME PROPERTY VALUE SOURCE |
| pool/home/bob type filesystem - |
| pool/home/bob creation Tue Jul 21 15:53 2009 - |
| pool/home/bob used 21K - |
| pool/home/bob available 20.0G - |
| pool/home/bob referenced 21K - |
| pool/home/bob compressratio 1.00x - |
| pool/home/bob mounted yes - |
| pool/home/bob quota 20G local |
| pool/home/bob reservation none default |
| pool/home/bob recordsize 128K default |
| pool/home/bob mountpoint /pool/home/bob default |
| pool/home/bob sharenfs off default |
| pool/home/bob checksum on default |
| pool/home/bob compression on local |
| pool/home/bob atime on default |
| pool/home/bob devices on default |
| pool/home/bob exec on default |
| pool/home/bob setuid on default |
| pool/home/bob readonly off default |
| pool/home/bob zoned off default |
| pool/home/bob snapdir hidden default |
| pool/home/bob acltype off default |
| pool/home/bob aclmode discard default |
| pool/home/bob aclinherit restricted default |
| pool/home/bob canmount on default |
| pool/home/bob xattr on default |
| pool/home/bob copies 1 default |
| pool/home/bob version 4 - |
| pool/home/bob utf8only off - |
| pool/home/bob normalization none - |
| pool/home/bob casesensitivity sensitive - |
| pool/home/bob vscan off default |
| pool/home/bob nbmand off default |
| pool/home/bob sharesmb off default |
| pool/home/bob refquota none default |
| pool/home/bob refreservation none default |
| pool/home/bob primarycache all default |
| pool/home/bob secondarycache all default |
| pool/home/bob usedbysnapshots 0 - |
| pool/home/bob usedbydataset 21K - |
| pool/home/bob usedbychildren 0 - |
| pool/home/bob usedbyrefreservation 0 - |
| .Ed |
| .Pp |
| The following command gets a single property value: |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm get Fl H o Sy value compression Ar pool/home/bob |
| on |
| .Ed |
| .Pp |
| The following command lists all properties with local settings for |
| .Ar pool/home/bob : |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm get Fl r s Sy local Fl o Sy name , Ns Sy property , Ns Sy value all Ar pool/home/bob |
| NAME PROPERTY VALUE |
| pool/home/bob quota 20G |
| pool/home/bob compression on |
| .Ed |
| . |
| .It Sy Example 8 : No Rolling Back a ZFS File System |
| The following command reverts the contents of |
| .Ar pool/home/anne |
| to the snapshot named |
| .Ar yesterday , |
| deleting all intermediate snapshots: |
| .Dl # Nm zfs Cm rollback Fl r Ar pool/home/anne Ns @ Ns Ar yesterday |
| . |
| .It Sy Example 9 : No Creating a ZFS Clone |
| The following command creates a writable file system whose initial contents are |
| the same as |
| .Ar pool/home/bob@yesterday . |
| .Dl # Nm zfs Cm clone Ar pool/home/bob@yesterday pool/clone |
| . |
| .It Sy Example 10 : No Promoting a ZFS Clone |
| The following commands illustrate how to test out changes to a file system, and |
| then replace the original file system with the changed one, using clones, clone |
| promotion, and renaming: |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm create Ar pool/project/production |
| populate /pool/project/production with data |
| .No # Nm zfs Cm snapshot Ar pool/project/production Ns @ Ns Ar today |
| .No # Nm zfs Cm clone Ar pool/project/production@today pool/project/beta |
| make changes to /pool/project/beta and test them |
| .No # Nm zfs Cm promote Ar pool/project/beta |
| .No # Nm zfs Cm rename Ar pool/project/production pool/project/legacy |
| .No # Nm zfs Cm rename Ar pool/project/beta pool/project/production |
| once the legacy version is no longer needed, it can be destroyed |
| .No # Nm zfs Cm destroy Ar pool/project/legacy |
| .Ed |
| . |
| .It Sy Example 11 : No Inheriting ZFS Properties |
| The following command causes |
| .Ar pool/home/bob No and Ar pool/home/anne |
| to inherit the |
| .Sy checksum |
| property from their parent. |
| .Dl # Nm zfs Cm inherit Sy checksum Ar pool/home/bob pool/home/anne |
| . |
| .It Sy Example 12 : No Remotely Replicating ZFS Data |
| The following commands send a full stream and then an incremental stream to a |
| remote machine, restoring them into |
| .Em poolB/received/fs@a |
| and |
| .Em poolB/received/fs@b , |
| respectively. |
| .Em poolB |
| must contain the file system |
| .Em poolB/received , |
| and must not initially contain |
| .Em poolB/received/fs . |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm send Ar pool/fs@a | |
| .No " " Nm ssh Ar host Nm zfs Cm receive Ar poolB/received/fs Ns @ Ns Ar a |
| .No # Nm zfs Cm send Fl i Ar a pool/fs@b | |
| .No " " Nm ssh Ar host Nm zfs Cm receive Ar poolB/received/fs |
| .Ed |
| . |
| .It Sy Example 13 : No Using the Nm zfs Cm receive Fl d No Option |
| The following command sends a full stream of |
| .Ar poolA/fsA/fsB@snap |
| to a remote machine, receiving it into |
| .Ar poolB/received/fsA/fsB@snap . |
| The |
| .Ar fsA/fsB@snap |
| portion of the received snapshot's name is determined from the name of the sent |
| snapshot. |
| .Ar poolB |
| must contain the file system |
| .Ar poolB/received . |
| If |
| .Ar poolB/received/fsA |
| does not exist, it is created as an empty file system. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm send Ar poolA/fsA/fsB@snap | |
| .No " " Nm ssh Ar host Nm zfs Cm receive Fl d Ar poolB/received |
| .Ed |
| . |
| .It Sy Example 14 : No Setting User Properties |
| The following example sets the user-defined |
| .Ar com.example : Ns Ar department |
| property for a dataset: |
| .Dl # Nm zfs Cm set Ar com.example : Ns Ar department Ns = Ns Ar 12345 tank/accounting |
| . |
| .It Sy Example 15 : No Performing a Rolling Snapshot |
| The following example shows how to maintain a history of snapshots with a |
| consistent naming scheme. |
| To keep a week's worth of snapshots, the user destroys the oldest snapshot, |
| renames the remaining snapshots, and then creates a new snapshot, as follows: |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm destroy Fl r Ar pool/users@7daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@6daysago No @ Ns Ar 7daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@5daysago No @ Ns Ar 6daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@4daysago No @ Ns Ar 5daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@3daysago No @ Ns Ar 4daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@2daysago No @ Ns Ar 3daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@yesterday No @ Ns Ar 2daysago |
| .No # Nm zfs Cm rename Fl r Ar pool/users@today No @ Ns Ar yesterday |
| .No # Nm zfs Cm snapshot Fl r Ar pool/users Ns @ Ns Ar today |
| .Ed |
| . |
| .It Sy Example 16 : No Setting sharenfs Property Options on a ZFS File System |
| The following commands show how to set |
| .Sy sharenfs |
| property options to enable read-write |
| access for a set of IP addresses and to enable root access for system |
| .Qq neo |
| on the |
| .Ar tank/home |
| file system: |
| .Dl # Nm zfs Cm set Sy sharenfs Ns = Ns ' Ns Ar rw Ns =@123.123.0.0/16,root= Ns Ar neo Ns ' tank/home |
| .Pp |
| If you are using DNS for host name resolution, |
| specify the fully-qualified hostname. |
| . |
| .It Sy Example 17 : No Delegating ZFS Administration Permissions on a ZFS Dataset |
| The following example shows how to set permissions so that user |
| .Ar cindys |
| can create, destroy, mount, and take snapshots on |
| .Ar tank/cindys . |
| The permissions on |
| .Ar tank/cindys |
| are also displayed. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm allow Sy cindys create , Ns Sy destroy , Ns Sy mount , Ns Sy snapshot Ar tank/cindys |
| .No # Nm zfs Cm allow Ar tank/cindys |
| ---- Permissions on tank/cindys -------------------------------------- |
| Local+Descendent permissions: |
| user cindys create,destroy,mount,snapshot |
| .Ed |
| .Pp |
| Because the |
| .Ar tank/cindys |
| mount point permission is set to 755 by default, user |
| .Ar cindys |
| will be unable to mount file systems under |
| .Ar tank/cindys . |
| Add an ACE similar to the following syntax to provide mount point access: |
| .Dl # Cm chmod No A+user: Ns Ar cindys Ns :add_subdirectory:allow Ar /tank/cindys |
| . |
| .It Sy Example 18 : No Delegating Create Time Permissions on a ZFS Dataset |
| The following example shows how to grant anyone in the group |
| .Ar staff |
| to create file systems in |
| .Ar tank/users . |
| This syntax also allows staff members to destroy their own file systems, but not |
| destroy anyone else's file system. |
| The permissions on |
| .Ar tank/users |
| are also displayed. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm allow Ar staff Sy create , Ns Sy mount Ar tank/users |
| .No # Nm zfs Cm allow Fl c Sy destroy Ar tank/users |
| .No # Nm zfs Cm allow Ar tank/users |
| ---- Permissions on tank/users --------------------------------------- |
| Permission sets: |
| destroy |
| Local+Descendent permissions: |
| group staff create,mount |
| .Ed |
| . |
| .It Sy Example 19 : No Defining and Granting a Permission Set on a ZFS Dataset |
| The following example shows how to define and grant a permission set on the |
| .Ar tank/users |
| file system. |
| The permissions on |
| .Ar tank/users |
| are also displayed. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm allow Fl s No @ Ns Ar pset Sy create , Ns Sy destroy , Ns Sy snapshot , Ns Sy mount Ar tank/users |
| .No # Nm zfs Cm allow staff No @ Ns Ar pset tank/users |
| .No # Nm zfs Cm allow Ar tank/users |
| ---- Permissions on tank/users --------------------------------------- |
| Permission sets: |
| @pset create,destroy,mount,snapshot |
| Local+Descendent permissions: |
| group staff @pset |
| .Ed |
| . |
| .It Sy Example 20 : No Delegating Property Permissions on a ZFS Dataset |
| The following example shows to grant the ability to set quotas and reservations |
| on the |
| .Ar users/home |
| file system. |
| The permissions on |
| .Ar users/home |
| are also displayed. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm allow Ar cindys Sy quota , Ns Sy reservation Ar users/home |
| .No # Nm zfs Cm allow Ar users/home |
| ---- Permissions on users/home --------------------------------------- |
| Local+Descendent permissions: |
| user cindys quota,reservation |
| cindys% zfs set quota=10G users/home/marks |
| cindys% zfs get quota users/home/marks |
| NAME PROPERTY VALUE SOURCE |
| users/home/marks quota 10G local |
| .Ed |
| . |
| .It Sy Example 21 : No Removing ZFS Delegated Permissions on a ZFS Dataset |
| The following example shows how to remove the snapshot permission from the |
| .Ar staff |
| group on the |
| .Sy tank/users |
| file system. |
| The permissions on |
| .Sy tank/users |
| are also displayed. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm unallow Ar staff Sy snapshot Ar tank/users |
| .No # Nm zfs Cm allow Ar tank/users |
| ---- Permissions on tank/users --------------------------------------- |
| Permission sets: |
| @pset create,destroy,mount,snapshot |
| Local+Descendent permissions: |
| group staff @pset |
| .Ed |
| . |
| .It Sy Example 22 : No Showing the differences between a snapshot and a ZFS Dataset |
| The following example shows how to see what has changed between a prior |
| snapshot of a ZFS dataset and its current state. |
| The |
| .Fl F |
| option is used to indicate type information for the files affected. |
| .Bd -literal -compact -offset Ds |
| .No # Nm zfs Cm diff Fl F Ar tank/test@before tank/test |
| M / /tank/test/ |
| M F /tank/test/linked (+1) |
| R F /tank/test/oldname -> /tank/test/newname |
| - F /tank/test/deleted |
| + F /tank/test/created |
| M F /tank/test/modified |
| .Ed |
| . |
| .It Sy Example 23 : No Creating a bookmark |
| The following example create a bookmark to a snapshot. |
| This bookmark can then be used instead of snapshot in send streams. |
| .Dl # Nm zfs Cm bookmark Ar rpool Ns @ Ns Ar snapshot rpool Ns # Ns Ar bookmark |
| . |
| .It Sy Example 24 : No Setting Sy sharesmb No Property Options on a ZFS File System |
| The following example show how to share SMB filesystem through ZFS. |
| Note that a user and their password must be given. |
| .Dl # Nm smbmount Ar //127.0.0.1/share_tmp /mnt/tmp Fl o No user=workgroup/turbo,password=obrut,uid=1000 |
| .Pp |
| Minimal |
| .Pa /etc/samba/smb.conf |
| configuration is required, as follows. |
| .Pp |
| Samba will need to bind to the loopback interface for the ZFS utilities to |
| communicate with Samba. |
| This is the default behavior for most Linux distributions. |
| .Pp |
| Samba must be able to authenticate a user. |
| This can be done in a number of ways |
| .Pq Xr passwd 5 , LDAP , Xr smbpasswd 5 , &c.\& . |
| How to do this is outside the scope of this document – refer to |
| .Xr smb.conf 5 |
| for more information. |
| .Pp |
| See the |
| .Sx USERSHARES |
| section for all configuration options, |
| in case you need to modify any options of the share afterwards. |
| Do note that any changes done with the |
| .Xr net 8 |
| command will be undone if the share is ever unshared (like via a reboot). |
| .El |
| . |
| .Sh ENVIRONMENT VARIABLES |
| .Bl -tag -width "ZFS_COLOR" |
| .It Sy ZFS_COLOR |
| Use ANSI color in |
| .Nm zfs Cm diff |
| and |
| .Nm zfs Cm list |
| output. |
| .El |
| .Bl -tag -width "ZFS_MOUNT_HELPER" |
| .It Sy ZFS_MOUNT_HELPER |
| Cause |
| .Nm zfs Cm mount |
| to use |
| .Xr mount 8 |
| to mount ZFS datasets. |
| This option is provided for backwards compatibility with older ZFS versions. |
| .El |
| .Bl -tag -width "ZFS_SET_PIPE_MAX" |
| .It Sy ZFS_SET_PIPE_MAX |
| Tells |
| .Nm zfs |
| to set the maximum pipe size for sends/recieves. |
| Disabled by default on Linux |
| due to an unfixed deadlock in Linux's pipe size handling code. |
| .El |
| . |
| .Sh INTERFACE STABILITY |
| .Sy Committed . |
| . |
| .Sh SEE ALSO |
| .Xr attr 1 , |
| .Xr gzip 1 , |
| .Xr ssh 1 , |
| .Xr chmod 2 , |
| .Xr fsync 2 , |
| .Xr stat 2 , |
| .Xr write 2 , |
| .Xr acl 5 , |
| .Xr attributes 5 , |
| .Xr exports 5 , |
| .Xr zfsconcepts 7 , |
| .Xr zfsprops 7 , |
| .Xr exportfs 8 , |
| .Xr mount 8 , |
| .Xr net 8 , |
| .Xr selinux 8 , |
| .Xr zfs-allow 8 , |
| .Xr zfs-bookmark 8 , |
| .Xr zfs-change-key 8 , |
| .Xr zfs-clone 8 , |
| .Xr zfs-create 8 , |
| .Xr zfs-destroy 8 , |
| .Xr zfs-diff 8 , |
| .Xr zfs-get 8 , |
| .Xr zfs-groupspace 8 , |
| .Xr zfs-hold 8 , |
| .Xr zfs-inherit 8 , |
| .Xr zfs-jail 8 , |
| .Xr zfs-list 8 , |
| .Xr zfs-load-key 8 , |
| .Xr zfs-mount 8 , |
| .Xr zfs-program 8 , |
| .Xr zfs-project 8 , |
| .Xr zfs-projectspace 8 , |
| .Xr zfs-promote 8 , |
| .Xr zfs-receive 8 , |
| .Xr zfs-redact 8 , |
| .Xr zfs-release 8 , |
| .Xr zfs-rename 8 , |
| .Xr zfs-rollback 8 , |
| .Xr zfs-send 8 , |
| .Xr zfs-set 8 , |
| .Xr zfs-share 8 , |
| .Xr zfs-snapshot 8 , |
| .Xr zfs-unallow 8 , |
| .Xr zfs-unjail 8 , |
| .Xr zfs-unload-key 8 , |
| .Xr zfs-unmount 8 , |
| .Xr zfs-unshare 8 , |
| .Xr zfs-upgrade 8 , |
| .Xr zfs-userspace 8 , |
| .Xr zfs-wait 8 , |
| .Xr zpool 8 |