我是靠谱客的博主 傻傻柠檬,最近开发中收集的这篇文章主要介绍GlusterFS 之 POSIX ACLs,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 传统上,

权限三组:拥有者 (file owner),群组 (group),及 其它 (other)

属性三种:读取 (read),写入 (write),及 执行(executable)

chmod [who] [opt] [mode] 文件/目录名

其中who表示对象,是以下字母中的一个或组合:

opt则是代表操作,可以为:

 

而mode则代表权限:

 

u:表示文件所有者

g:表示同组用户

o:表示其它用户

a:表示所有用户

+:添加某个权限

-:取消某个权限

=:赋予给定的权限,并取消原有的权限

r:可读

w:可写

x:可执行

 

我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为: 111 101 100 再将其每三位转换成为一个十进制数,就是754。

存取控制清单 (Access Control List,简称 ACL)

ACL 实为现有权限机制的延伸,在三个基本设定 (拥有者,群组及其它)外,允许我们加入对某指定使用者或群组的存取权限设定。

大家常用的文件系统,如:ext3、xfs、jfs和 ReiserFS,都能使用ACL。

要查看一个文件或目录的 ACL,需要使用 “getfacl” 指令:getfaclreport.doc

如果需要更改一个档案或目录的 ACL,可以使用setfacl 指令,其用法如下:

setfacloption rules files

Glusterfs之POSIX ACL文件权限管理

在服务端启用POSIXAccess Control Lists (ACLs)

如果需要使用POSIX Access Control Lists (ACLs) ,那么在服务器端挂接逻辑卷时就需要指定acl选项,如下所示:

#mount -o acl /dev/sda1 /export1

在/etc/fstab文件中可以这样配置:

LABEL=/work/export1 ext3 rw, acl 14

在客户端启用POSIXAccess Control Lists (ACLs)

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

设置POSIX ACLs

一般地,你可以设置两种类型的POSIX ACLs,access ACLs和default ACLs。前者用于对一个指定的目录或文件设置访问策略,而后者则为目录及目录中的文件提供一种默认的访问控制策略。你可以基于每个用户、用户组以至于不在文件属组内的其它用户,来设置ACLs。

设置access ACLs命令格式:# setfacl -m file

下表为可以设置的权限项目和格式要求,其中<permission>必须是r (read), w (write),and x (execute)的组合形式。

ACLEntry

Description

u:uid:<permission>

Setsthe access ACLs for a user. You can specify user name or UID

g:gid:<permission>

Setsthe access ACLs for a group. You can specify group name or GID.

m:<permission>

Setsthe effective rights mask. The mask is the combination of all accesspermissions of the owning group and all of the user and group entries.

o:<permission>

Setsthe access ACLs for users other than the ones in the group for the file.

 授权对象可以是文件,也可以是目录。例如,为用户antony授权testfile的读写权限。

[root@pc3test-disperse]# setfacl -m u:antony:rw /mnt/gluster/data/testfile

设置defaultACLs的命令格式:# setfacl -d -m

例如,设置/data目录的默认ACLs为向不在文件所属用户组内的其它所有用户,开放只读的权限:

[root@pc3test-disperse]# setfacl -d -m o::r /mnt/test-disperse

注:如果同时设置了default acls和access acls,则access acls优先级更高。

查看已经设置的POSIXACLs

查看文件的access acls:[root@pc3 test-disperse]# getfacl targetfile

查看目录的default acls:

[root@pc3test-disperse]# getfacl /mnt/test-disperse

getfacl:Removing leading '/' from absolute path names

#file: mnt/test-disperse

#owner: root

#group: root

user::rwx

group::r-x

other::r--

移除POSIX ACLs

例如,移除用户antony对test-file的所有访问权限:

[root@pc3test-disperse]# setfacl -x u:antony /mnt/gluster/data/test-file

Samba and ACLs

如果你使用Samba访问GlusterFS FUSE挂接的存储卷,那么POSIX ACLs会默认被启用。

最后

以上就是傻傻柠檬为你收集整理的GlusterFS 之 POSIX ACLs的全部内容,希望文章能够帮你解决GlusterFS 之 POSIX ACLs所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(25)

评论列表共有 0 条评论

立即
投稿
返回
顶部