ACL 是 Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的 read,write,execute 权限之外的细部权限设定。ACL 可以针对单一使用者,单一档案或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助。
acl不是所有文件系统都支持,若要知道支持情况,可以dumpe2fs来查看
如果你的系统默认不加上 acl 的支持,可以用一下指令来添加:
[root@www ~]# mount -o remount,acl /
[root@www ~]# mount
/dev/hda2 on / type ext3 (rw,acl)
# 这样就加入了!但是如果想要每次开机都生效,那就这样做:
[root@www ~]# vi /etc/fstab LABEL=/1 / ext3 defaults,acl 1 1
acl的操作有setfacl 和 geflcal
设定acl方法 setfacl
[root@www ~]# setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件名 选项与参数:
-m :设定后续的 acl 参数给档案使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 设定参数;
-k :移除预设的 ACL 参数,关于所谓的『预设』参数于后续范例中介绍;
-R :递归设定 acl ,亦即包括次目录都会被设定起来;
-d :设定『预设 acl 参数』的意思!只对目录有效,在该目录新建的数据会引用 此默认值
示例:
[root@www ~]# setfacl -m u:vbird1:rx acl_test1 /*对于acl_test1文件来说,是其用户vbird1权限设定为r_x */
查看acl方法 getfacl
[root@www ~]# getfacl acl_test1
# file: acl_test1 <==说明档名而已!
# owner: root <==说明此档案的拥有者,亦即 ll 看到的第三使用者字段
# group: root <==此档案的所属群组,亦即 ll 看到的第四群组字段
user::rwx <==使用者列表栏是空的,代表档案拥有者的权限
user:vbird1:r-x <==针对 vbird1 的权限设定为 rx ,与拥有者并不同!
group::r-- <==针对档案群组的权限设定仅有 r
mask::r-x <==此档案预设的有效权限 (mask) /*起限制权限作用,规定使用者或群组所设定的权限必须要存在于 mask 的权限设定范围内才会生效 */
other::r-- <==其他人拥有的权限啰!
setfacl还能对group做限制,例如:
[root@www ~]# setfacl -m g:mygroup1:rx acl_test1
acl设置权限如果要对文档下所有新生成文件都生效时,需要带 -d 参数
如果要删除acl所做的限制,用参数 -b
本文出自 “101010...010101” 博客,请务必保留此出处http://legendland.blog.51cto.com/2043145/1973803
原文地址:http://legendland.blog.51cto.com/2043145/1973803