James Dickens wrote:
On 7/17/06, Mark Shellenbaum <[EMAIL PROTECTED]> wrote:
The following is the delegated admin model that Matt and I have been
working on. At this point we are ready for your feedback on the
proposed model.
-Mark
PERMISSION GRANTING
zfs allow [-l] [-d] <"everyone"|user|group>
<ability>[,<ability>...] \
<dataset>
zfs allow [-l] [-d] -u <user> <ability>[,<ability>...] <dataset>
zfs allow [-l] [-d] -g <group> <ability>[,<ability>...] <dataset>
zfs allow [-l] [-d] -e <ability>[,<ability>...] <dataset>
zfs allow -c <ability>[,<ability>...] <dataset>
If no flags are used, the ability will be allowed for the specified
dataset and all of its descendents.
-l "Local" means that the permission will be allowed for the
specified dataset, and not its descendents (unless -d is also
specified).
-d "Descendents" means that the permission will be allowed for
descendent datasets, and not for this dataset (unless -l is also
specified). (needed for 'zfs allow -d ahrens quota tank/home/ahrens')
When using the first form (without -u, -g, or -e), the
<"everyone"|user|group> argument will be interpreted as the keyword
"everyone" if possible, then as a user if possible, then as a group as
possible. The "-u <user>", "-g <group>", and "-e (everyone)" forms
allow one to specify a user named "everyone", or a group whose name
conflicts with a user (or "everyone"). (note: the -e form is not
necessary since "zfs allow everyone" will always mean the keyword
everyone not the user everyone.)
As a possible extension, multiple <who>'s could be allowed in one
command (eg. 'zfs allow -u ahrens,marks create tank/project')
-c "Create" means that the permission will be granted (Locally) to the
creator on any newly-created descendant filesystems.
Abilities are mostly self explanatory, the ability to run
'zfs [set] <ability> <ds>'. Note, this implicitly collapses the
subcommand and property namespaces into one. (I think that the 'set' is
superfluous anyway, it would be more convenient to say
'zfs <property>=<value>' anyway.)
create create descendent datasets
destroy
snapshot
rollback
clone create clone of any of the ds's snaps
(must also have 'create' ability in clone's
parent)
promote (must also have 'promote' ability in origin fs)
rename (must also have 'create' ability in new parent)
mount mount and unmount the ds
share share and unshare this ds
send send any of the ds's snapshots
receive create a descendent with 'zfs receive'
(must also have 'create' ability)
quota
reservation
volsize
recordsize
mountpoint
sharenfs
checksum
compression
atime
devices
exec
setuid
readonly
zoned
snapdir
aclmode
aclinherit
Hi
just one addition, "all" or "full" attributes, for the case you want
to get full permissions to the user or group
zfs create p1/john
zfs allow p1/john john full
so we don't have to type out every attribute.
I think you wanted
zfs allow john full p1/john
We could have either a "full" or "all" to represent all permissions, but
the problem with that is that you will then end up granting more
permissions than are necessary to achieve the desired goal.
If enough people think its useful then we can do it.
James Dickens
uadmin.blogspot.com
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss