POSIX 访问控制列表

POSIX 访问控制列表 (Acl) 允许您将分配不同 为不同的用户或组即使他们不这样做的权限 对应于原始所有者或所属的组。

例如︰ 用户约翰会创建文件,但不是想让任何人 要用此文件中,除非另一个用户,安东尼 (即使做任何事 有其他用户属于组约翰)。

这意味着,除了文件所有者、 文件组和其他人, 其他用户和组可以被授予或拒绝访问通过使用 POSIX Acl。

Activating POSIX Acl 支持

使用 POSIX Acl 的文件或目录,文件的分区或 目录必须安装与 POSIX Acl 支持。

# #Activating POSIX Acl 支持服务器

若要装载 POSIX Acl 支持后端出口目录,请使用 下面的命令︰

# mount -o acl

例如︰

# mount -o acl /dev/sda1 /export1

或者,如果在 /etc/fstab 文件中列出了该分区,则添加 要包括 POSIX Acl 选项的分区以下条目︰

LABEL=/work /export1 ext3 rw, acl 14

# #Activating POSIX Acl 支持在客户端上

要装入 POSIX Acl 支持 glusterfs 卷,请使用以下 命令︰

# mount –t glusterfs -o acl

例如︰

# mount -t glusterfs -o acl 198.192.198.234:glustervolume /mnt/gluster

Setting POSIX Acl

你可以设置两种类型的 POSIX Acl,那就是,访问 Acl 和默认 Acl。您可以使用 Acl 访问授予对特定文件的权限或

目录。您可以使用默认 Acl 只上目录,但如果文件

内部目录没有 Acl,它将继承的权限 目录的默认 Acl。

您可以为用户不在用户中每个用户,每个组,设置 Acl 组的文件,并通过有效正确的面具。

Setting 访问 Acl

您可以应用访问权限 Acl 来为这两个文件授予权限和 目录。

    • 到设置或修改访问权限 Acl * *

您可以设置或修改访问权限 Acl 使用下面的命令︰

# setfacl –m file

ACL 条目类型具有所有者的 POSIX Acl 表示、 群体、 和其他。

Permissions must be a combination of the characters r (read), w (write), and x (execute). You must specify the ACL entry in the 以下格式,并且可以指定多个条目类型隔开 逗号。

ACL 条目 |描述

--- |---

u:uid: \ <permission> |为用户设置的访问权限 Acl。您可以指定用户名或 UID

g:gid: \ <permission> |设置组的 Acl 访问。您可以指定组的名称或 GID。

m:\ <permission> |设置有效权限掩码。面具是所属组的所有访问权限和所有的用户和组项的组合。

o:\ <permission> |对于不使用的文件组中的用户设置的访问权限 Acl。

如果一个文件或目录已 POSIX Acl 和 setfacl 使用命令,额外的权限添加到现有的 修改 POSIX Acl 或现有规则。

例如,要给读取和写入权限用户安东尼︰

# setfacl -m u:antony:rw /mnt/gluster/data/testfile

Setting 默认 Acl

你可以默认 Acl 只适用于目录。他们确定

文件系统对象,从其父网站继承权限 当它创建的目录。

要设置默认 Acl

您可以设置默认 Acl 的文件和目录使用下面的代码 命令︰

# setfacl –m –-set

必须将权限组合字符 r (阅读)、 w (写入) 和 x (执行)。指定 ACL entry_type,如下所述,用逗号分隔多个条目类型。

u: * user_name:permissons* 为用户设置的访问权限 Acl。指定的用户名或 UID。

g: * group_name:permissions* 设置组的 Acl 访问。指定的组的名称或 GID。

m: * 权限 * 设置有效权限掩码。面具是所属的组,和所有的用户和组条目的所有访问权限的组合。

o: * 权限 * 对于不使用的文件组中的用户设置的访问权限 Acl。

例如,若要设置/数据目录的默认 Acl,以便阅读 不在用户组中的用户︰

# setfacl –m --set o::r /mnt/gluster/data

    • 注意 * *

访问 Acl 设置为单个文件可以覆盖默认值 Acl 权限。

    • 的默认 Acl * * 的影响

以下为在其中的方法目录的权限 默认 Acl 传递到的文件和子目录中︰

-一个子目录继承父目录的默认 Acl 无论是作为其默认 Acl 和 Acl 访问。 -文件作为其访问 Acl 继承的默认 Acl。

Retrieving POSIX Acl

您可以查看现有的 POSIX Acl 的文件或目录。

    • 到查看现有 POSIX Acl * *

-查看现有访问 Acl 的文件,使用下面的命令︰

`# getfacl `

例如,若要查看现有的 POSIX Acl 为 sample.jpg

getfacl /mnt/gluster/data/test/sample.jpg

所有者︰ 安东尼

组︰ 安东尼

user::rw- group::rw- other::r — —

-查看默认 Acl 的目录,使用以下命令︰

`# getfacl `

例如,若要查看现有 Acl/数据/doc

getfacl /mnt/gluster/data/doc

所有者︰ 安东尼

组︰ 安东尼

user::rw- 用户︰ 约翰︰ r- group::r — — mask::r — — other::r — — 默认︰ 用户︰ 可 默认︰ 用户︰ 安东尼︰ 可 默认︰ 组:: r-x 默认︰ 面膜︰ 可 默认︰ 其他:: r-x

Removing POSIX Acl

要删除所有用户、 组或其他人的权限,请使用 下面的命令︰

# setfacl -x

# #setfaclentry_type 选项

ACL entry_type 转换的 POSIX ACL 的所有者、 组和其他表示形式。

必须将权限组合字符 r (阅读)、 w (写入) 和 x (执行)。指定 ACL entry_type,如下所述,用逗号分隔多个条目类型。

u: * 用户名 * 为用户设置的访问权限 Acl。指定的用户名或 UID。

g: * 组名 * 设置组的 Acl 访问。指定的组的名称或 GID。

m: * 权限 * 设置有效权限掩码。面具是所属的组,和所有的用户和组条目的所有访问权限的组合。

o: * 权限 * 对于不使用的文件组中的用户设置的访问权限 Acl。

例如,若要删除用户安东尼的所有权限︰

# setfacl -x u:antony /mnt/gluster/data/test-file

Samba 和 Acl

如果你正在使用 Samba 访问 GlusterFS 熔断器的装载,然后 POSIX Acl 默认情况下启用。与已编译 samba

--with-acl-support option, so no special flags are required when 访问或安装一个桑巴舞共享。

NFS 和 Acl

目前 GlusterFS 支持 POSIX ACL 配置通过 NFS 挂载 即 setfacl 和 getfacl 命令工作通过 NFS 挂载。