2024年4月30日发(作者:)

在文件系统中使用 NFSv4 ACL

管理 NFSv4 ACL

级别: 中级

Samyak Jain, 高级软件工程师, IBM

2009 年 7 月 15 日

在不同的文件系统上使用不同的命令管理 NFSv4 ACL 可能很困难。本文讨论并

对比的命令可能你在对不同的文件系统操作时会用到。

使用 NFSv4 ACL 的文件系统

NFSv4 (Network File System – Version 4) 协议引入了一种新的 ACL(访问

控制列表)格式,这种格式扩展了现有的其他 ACL 格式。NFSv4 ACL 很容易使

用,还引入了更详细的文件安全属性,因此 NFSv4 ACL 更安全。IBM® AIX®、

Sun Solaris 和 Linux® 等操作系统已经在文件系统中实现了 NFSv4 ACL。

当前,IBM AIX 5L version 5.3 和更高版本中支持 NFSv4 ACL 的文件系统是

NFSv4、JFS2 with EAv2 (Extended Journaled Filesystem with Extended

Attributes format version 2) 和 General Parallel Filesystem (GPFS)。

在 Sun Solaris 中,ZFS 支持这种 ACL 模型。在 RedHat Linux 中,NFSv4 支

持 NFSv4 ACL。

什么是 ACL?

访问控制列表 (ACL) 用来指定文件系统对象(比如文件和目录)的访问权限。

它是由许多访问控制项 (ACE) 组成的列表,每个访问控制项定义一个用户或组

及其权限。

关于 ZFS ACL

Sun 通过 Solaris 10 操作系统补丁包引入了 ZFS 文件系统。

ZFS 支持 NFSv4 ACL 模型,并通过现有的 ls 和 chmod 命令的新选项实现了

相关命令。可以使用 chmod 和 ls 命令设置和显示 ACL;没有引入新的命令。

因此,在 ZFS 中使用 ACL 非常容易。

ZFS ACL 格式

ZFS ACL 采用一种定义良好的格式。这种格式和其中涉及的实体如下:

语法 A

ACL_entry_type:Access_permissions/„/[:Inheritance_flags]:deny or

allow

ACL_entry_type 包括 “owner@”、“group@” 或 “everyone@”。

例如:

group@:write_data/append_data/execute:deny

语法 B

ACL_entry_type:

ACL_entry_ID:Access_permissions/„/[:Inheritance_flags]:deny or allow

ACL_entry_type 包括 “user” 或 “group”。

ACL_entry_ID 包括 “user_name” 或 “group_name”。

例如:

user:samy:list_directory/read_data/execute:allow