概述
传统上,
权限三组:拥有者 (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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复