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 文件

新 Solaris ACL 模型

ACL 设置语法的说明

ACL 继承

ACL 属性 (aclinherit)

设置 ZFS 文件的 ACL

以详细格式设置和显示 ZFS 文件的 ACL

以详细格式设置 ZFS 文件的 ACL 继承

以缩写格式设置和显示 ZFS 文件的 ACL

9.  Oracle Solaris ZFS 委托管理

10.  Oracle Solaris ZFS 高级主题

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

A.  Oracle Solaris ZFS 版本说明

索引

新 Solaris ACL 模型

Solaris 的旧版本支持的 ACL 实现主要基于 POSIX 草案 ACL 规范。基于 POSIX 草案 ACL 用来保护 UFS 文件,并通过 NFSv4 之前的 NFS 版本进行转换。

引入 NFSv4 后,新 ACL 模型完全支持 NFSv4 在 UNIX 和非 UNIX 客户机之间提供的互操作性。如 NFSv4 规范中所定义,这一新的 ACL 实现提供了更丰富的基于 NT 样式 ACL 的语义。

与旧模型相比,新 ACL 模型的主要变化如下:

两种 ACL 模型均可比标准文件权限提供更精细的访问控制。与 POSIX 式 ACL 非常相似,新 ACL 也由多个访问控制项 (Access Control Entry, ACE) 构成。

POSIX 样式的 ACL 使用单个项来定义允许和拒绝的权限。而新 ACL 模型包含两种类型的 ACE,用于进行访问检查: ALLOWDENY。因此,不能根据任何定义一组权限的单个 ACE 来推断是否允许或拒绝该 ACE 中未定义的权限。

NFSv4 样式的 ACL 与 POSIX 式 ACL 之间的转换如下:

有关对 ACL 和备份产品的其他限制信息,请参见使用其他备份产品保存 ZFS 数据

ACL 设置语法的说明

提供以下两种基本的 ACL 格式:

用于设置普通 ACL 的语法

chmod [options] A[index]{+|=}owner@ |group@ |everyone@: access-permissions/...[:inheritance-flags]: deny | allow file

chmod [options] A-owner@, group@, everyone@:access-permissions /...[:inheritance-flags]:deny | allow file ...

chmod [options] A[index]- file

用于设置非普通 ACL 的语法

chmod [options] A[index]{+|=}user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file

chmod [options] A-user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file ...

chmod [options] A[index]- file

owner@, group@, everyone@

标识用于普通 ACL 语法的 ACL-entry-type。有关 ACL-entry-type 的说明,请参见表 8-1

user|group:ACL-entry-ID(username 或 groupname)

标识用于显式 ACL 语法的 ACL-entry-type。用户和组的 ACL-entry-type 还必须包含 ACL-entry-IDusernamegroupname。有关 ACL-entry-type 的说明,请参见表 8-1

access-permissions/.../

标识授予或拒绝的访问权限。有关 ACL 访问特权的说明,请参见表 8-2

inheritance-flags

标识一组可选的 ACL 继承标志。有关 ACL 继承标志的说明,请参见表 8-3

deny | allow

标识授予还是拒绝访问权限。

在以下示例中,owner@、group@ 或 everyone@ 没有 ACL-entry-ID 值。

group@:write_data/append_data/execute:deny

由于 ACL 中包括特定用户 (ACL-entry-type),因此以下示例中包括 ACL-entry-ID

0:user:gozer:list_directory/read_data/execute:allow

显示的 ACL 项与以下内容类似:

2:group@:write_data/append_data/execute:deny

本示例中指定的2索引 ID 用于标识较大 ACL 中的 ACL 项,较大的 ACL 中可能包含对应于所有者、特定 UID、组和各用户的多个项。可以使用 chmod 命令指定索引 ID,以标识 ACL 要修改的部分。例如,可将索引 ID 3 标识为 chmod 命令中的 A3,与以下内容类似:

chmod A3=user:venkman:read_acl:allow filename

下表介绍了 ACL 项类型,即所有者、组和其他对象的 ACL 表示形式。

表 8-1 ACL 项类型

ACL 项类型
说明
owner@
指定授予对象所有者的访问权限。
group@
指定授予对象所属组的访问权限。
everyone@
指定向不与其他任何 ACL 项匹配的任何用户或组授予的访问权限。
user
通过用户名指定向对象的其他用户授予的访问权限。必须包括 ACL-entry-ID,其中包含 usernameuserID。如果该值不是有效的数字 UID 或 username,则该 ACL 项的类型无效。
group
通过组名指定向对象的其他组授予的访问权限。必须包括 ACL-entry-ID,其中包含 groupnamegroupID。如果该值不是有效的数字 UID 或 groupname,则该 ACL 项的类型无效。

下表介绍了 ACL 访问特权。

表 8-2 ACL 访问特权

访问特权
缩写访问特权
说明
add_file
w
向目录中添加新文件的权限。
add_subdirectory
p
在目录中创建子目录的权限。
append_data
p
占位符。当前未实现。
delete
d
删除文件的权限。
delete_child
D
删除目录中的文件或目录的权限。
execute
x
执行文件或搜索目录内容的权限。
list_directory
r
列出目录内容的权限。
read_acl
c
读取 ACL 的权限 (ls)。
read_attributes
a
读取文件的基本属性(非 ACL)的权限。将基本属性视为状态级别属性。允许此访问掩码位意味着该实体可以执行 ls(1) 和 stat(2)。
read_data
r
读取文件内容的权限。
read_xattr
R
读取文件的扩展属性或在文件的扩展属性目录中执行查找的权限。
synchronize
s
占位符。当前未实现。
write_xattr
W
创建扩展属性或向扩展属性目录进行写入的权限。

向用户授予此权限意味着用户可为文件创建扩展属性目录。属性文件的权限可以控制用户对属性的访问。

write_data
w
修改或替换文件内容的权限。
write_attributes
A
将与文件或目录关联的时间更改为任意值的权限。
write_acl
C
编写 ACL 的权限或使用 chmod 命令修改 ACL 的能力。
write_owner
o
更改文件的所有者或组的权限,或者对文件执行 chownchgrp 命令的能力。

获取文件所有权的权限或将文件的组所有权更改为由用户所属组的权限。如果要将文件或组的所有权更改为任意用户或组,则需要 PRIV_FILE_CHOWN 特权。

ACL 继承

使用 ACL 继承的目的是使新创建的文件或目录可以继承其本来要继承的 ACL,但不忽略父目录的现有权限位。

缺省情况下,不会传播 ACL。如果在某个目录上设置了非普通 ACL,则任何后续目录都不会继承该 ACL。必须对文件或目录指定 ACL 的继承。

下表介绍了可选的继承标志。

表 8-3 ACL 继承标志

继承标志
缩写继承标志
说明
file_inherit
f
仅将 ACL 从父目录继承到该目录中的文件。
dir_inherit
d
仅将 ACL 从父目录继承到该目录的子目录。
inherit_only
i
从父目录继承 ACL,但仅适用于新创建的文件或子目录,而不适用于该目录自身。该标志要求使用 file_inherit 标志或 dir_inherit 标志,或同时使用两者来表示要继承的内容。
no_propagate
n
仅将 ACL 从父目录继承到该目录的第一级内容,而不是第二级或后续内容。该标志要求使用 file_inherit 标志或 dir_inherit 标志,或同时使用两者来表示要继承的内容。
-
N/A
未授予权限。

此外,还可以使用 aclinherit 文件系统属性对文件系统设置更为严格或更为宽松的缺省 ACL 继承策略。有关更多信息,请参见下一节。

ACL 属性 (aclinherit)

ZFS 文件系统包含决定 ACL 继承行为的 aclinherit 属性。该属性的值包括:

aclinherit 的缺省模式为 restricted