JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris ZFS 管理指南     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris ZFS 文件系统(介绍)

2.  Oracle Solaris ZFS 入门

3.  Oracle Solaris ZFS 与传统文件系统之间的差别

4.  管理 Oracle Solaris ZFS 存储池

5.  安装和引导 Oracle Solaris ZFS 根文件系统

6.  管理 Oracle Solaris ZFS 文件系统

7.  使用 Oracle Solaris ZFS 快照和克隆

8.  使用 ACL 和属性保护 Oracle Solaris ZFS 文件

9.  Oracle Solaris ZFS 委托管理

ZFS 委托管理概述

禁用 ZFS 委托权限

授予 ZFS 权限

授予·ZFS 权限 (zfs allow)

删除 ZFS 委托权限 (zfs unallow)

授予 ZFS 权限(示例)

显示 ZFS 委托权限(示例)

删除 ZFS 委托权限(示例)

10.  Oracle Solaris ZFS 高级主题

11.  Oracle Solaris ZFS 故障排除和池恢复

A.  Oracle Solaris ZFS 版本说明

索引

授予 ZFS 权限(示例)

示例 9-1 向单个用户授予权限

在向单个用户授予 createmount 权限时,必须确保该用户对底层挂载点有权限。

例如,要向用户 mark 授予对 tank 文件系统的 createmount 权限,需要先设置权限:

# chmod A+user:mark:add_subdirectory:fd:allow /tank/home

然后,使用 zfs allow 命令授予 createdestroymount 权限。例如:

# zfs allow mark create,destroy,mount tank/home

现在,用户 mark 可以在 tank 文件系统中创建自己的文件系统。例如:

# su mark
mark$ zfs create tank/home/mark
mark$ ^D
# su lp
$ zfs create tank/lp
cannot create 'tank/lp': permission denied

示例 9-2 向组授予 createdestroy 权限

以下示例说明如何设置文件系统,以使 staff 组中的每个人都可以在 tank 文件系统中创建和挂载文件系统,还可以销毁其自己的文件系统。但是,staff 组成员不能销毁其他任何人的文件系统。

# zfs allow staff create,mount tank/home
# zfs allow -c create,destroy tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Local+Descendent permissions:
        group staff create,mount
# su cindy
cindy% zfs create tank/home/cindy
cindy% exit
# su mark
mark% zfs create tank/home/mark/data
mark% exit
cindy% zfs destroy tank/home/mark/data
cannot destroy 'tank/home/mark/data': permission denied

示例 9-3 在正确的文件系统级别授予权限

确保在正确的文件系统级别授予用户权限。例如,向用户 mark 授予了对本地和后代文件系统的 createdestroymount 权限。向用户 mark 授予了对 tank/home 文件系统创建快照的本地权限,但不允许该用户对自己的文件系统创建快照。因此,未在正确的文件系统级别为他授予 snapshot 权限。

# zfs allow -l mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Local permissions:
        user mark snapshot
Local+Descendent permissions:
        group staff create,mount
# su mark
mark$ zfs snapshot tank/home@snap1
mark$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

要在后代文件系统级别向用户 mark 授予权限,请使用 zfs allow -d 选项。例如:

# zfs unallow -l mark snapshot tank/home
# zfs allow -d mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Descendent permissions:
        user mark snapshot
Local+Descendent permissions:
        group staff create,mount
# su mark
$ zfs snapshot tank/home@snap2
cannot create snapshot 'tank/home@snap2': permission denied
$ zfs snapshot tank/home/mark@snappy

现在,用户 mark 只能在 tank/home 文件系统级别之下创建快照。

示例 9-4 定义和使用复杂委托权限

可向用户或组授予特定权限。例如,以下 zfs allow 命令将向 staff 组授予特定权限。此外,还会在创建 tank/home 文件系统后授予 destroysnapshot 权限。

# zfs allow staff create,mount tank/home
# zfs allow -c destroy,snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy,snapshot
Local+Descendent permissions:
        group staff create,mount

由于用户 markstaff 组的成员,因此他可以在 tank/home 中创建文件系统。此外,用户 mark 可以创建 tank/home/mark2 的快照,因为他具有执行此操作的特定权限。例如:

# su mark
$ zfs create tank/home/mark2
$ zfs allow tank/home/mark2
---- Permissions on tank/home/mark2 ----------------------------------
Local permissions:
        user mark create,destroy,snapshot
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy,snapshot
Local+Descendent permissions:
        group staff create,mount

但是,用户 mark 不能在 tank/home/mark 中创建快照,因为他不具有执行此操作的特定权限。例如:

$ zfs snapshot tank/home/mark2@snap1
$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

在此示例中,用户 mark 在其起始目录中具有 create 权限,这意味着他可以创建快照。当文件系统通过 NFS 挂载时,此方案很有用。

示例 9-5 定义和使用 ZFS 委托权限集

以下示例说明如何创建权限集 @myset 并针对 tank 文件系统向组 staff 授予该权限集和 rename 权限。用户 cindystaff 组成员,他具有在 tank 中创建文件系统的权限。但是,用户 lp 没有在 tank 中创建文件系统的权限。

# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
# zfs allow staff @myset,rename tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
        group staff @myset,rename
# chmod A+group:staff:add_subdirectory:fd:allow tank
# su cindy
cindy% zfs create tank/data
cindy% zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
        group staff @myset,rename
cindy% ls -l /tank
total 15
drwxr-xr-x   2 cindy   staff          2 Jun 24 10:55 data
cindy% exit
# su lp
$ zfs create tank/lp
cannot create 'tank/lp': permission denied