Linux中的权限安排

四. ACLs 存取控制清单 ( Access Control Lists )

假设有一个文件 abc ,只有users群组的用户才能读写,那么它的权限应该为类似 rw- rw- — ,有一个不在users群组中的用户B,它想查看(r) abc 文件,而文件拥有者允许他这么做,但是他没有写(w)的权限,那可怎么办?使用存取控制清单即可:

[user@linux ~]# ll abc

-rw-rw—- 1 user users 0 05-12 17:21 abc

[user@linux ~]# setfacl -m u:B:r abc

[user@linux ~]# getfacl abc

# file: abc

# owner: user

# group: users

user::rw-

user:B:r–

group::rw-

mask::rw-

other::—

ACLs一共也只有两个命令: getfacl:取得某个档案/目录的 ACL 设定项目;setfacl:设定某个目录/档案的 ACL 规范。

[root@linux ~]# setfacl [-mxdb] 设定值参数:

-m :设定一个 ACL 规范;

-x :取消一个 ACL 规范;

-b :全部的 ACL 规范都移除;

-d :设定预设的 ACL 规范,仅能针对目录使用。
群组与预设权限设定方法有点不同,不过,基本上有底下这三种简易的设定方法:

1. 针对使用者 设定值的规范为: u:[使用者帐号列表]:[rwx]

例如针对 joey 这个使用者来规范其权限为 rx ,则:

[root@linux ~]# setfacl -m u:joey:rx somefilename

2. 针对群组来设定设定值的规范为: g:[群组名]:[rwx]

例如针对 users 这个群组来规范其权限为 rw ,则:

[root@linux ~]# setfacl -m g:users:rw somefilename

3. 针对预设权限来规范,类似 mask的功能设定值的规范为: m:[rwx]

例如假设预设权限为 rwx,则:

[root@linux ~]# setfacl -m m:rwx somefilename

mask 需要与使用者的权限进行逻辑运算 (AND) 后, 才是有效的权限吶(effective permission)

最后补充一点: attr属性acl属性 这两个特殊属性最开始是为ext文件系统设计的,如果其他文件系统使用的话,需要加mount参数: acl,user_xattr,attrs ; user_xattr似乎可以增加特殊属性的有效性。


文章标识
如果你是第一次来这儿,欢迎 订阅 这个博客。 第一时间看到更多精彩内容,谢谢你的访问!
本文固定链接: http://mifunny.info/access-control-lists-37.html
转载请注明出处及链接,非常感谢!
LD on 05月 13th, 2008 | File Under 我佛之本 | -