主机的具体权限规划:ACL的使用

主机的具体权限规划:ACL的使用

什么ACL 

ACL Access Control List 缩写,主要是在提供传统owner,group,others  

read,write,execute 权限的细部权限定。ACL 可以针对单一使用者,单一档案录来进行 r,w,x 权限范,对需要特殊权限使用状况非常有帮助

ACL 主要可以针对哪些方面权限呢?他主要可以针对几个项目: 

   · 使用者 (user) :可以针对使用者来设定权限; 

   · 群组 (group) :针对群组为对象来设定其权限; 

   · 默讣属性 (mask) :还可以针对在该目下在建立新档案时,规范新数据权限;

好了,再看看如何文件系统可以支持ACL 吧! 

如何启动ACL 

ACL 是传统 Unix-like 操作系统权限额外支持项目,因此要使用ACL 必须要有文件系统支 持才行。目前绛大部分文件系统都有支持ACL 功能,包括 ReiserFS, EXT2/EXT3, JFS, XFS 等等。 在我们 CentOS 5.x 中,预使用 Ext3 启动ACL 支持!至察看你文件系统是否支持ACL 

可以这样看: 

[root@localhost ~]# mount

如果看不到acl再用一下命令

[root@localhost ~]# dumpe2fs -h /dev/sda1

----------------------------------

Default mount options:    user_xattr acl

----------------------------------

mount 单纯去查阅不见得可以看到实际的项目,由与目前新的distributions 常常会主动加入某些默认功能,如上表所示,其实CentOS 5.x 在预设的情况下 (Default mount options:) 就帮你加入acl 的 支持了!那如果你的系统默认不会帮你加上acl 癿支持, 你可以这样做:

 [root@localhost /]# vi /etc/fstab default后加,acl

主机的具体权限规划:ACL的使用

[root@localhost /]# umount /dev/sda3

[root@localhost /]# mount -a

主机的具体权限规划:ACL的使用

ACL 的设定技巧:getfacl, setfacl 

好了,让你的filesystem 启动ACL 支持后,接下来该如何设定与观察ACL 呢?

利用一下两个就可以了: 

   · getfacl :取得某个档案目录的ACL 设定项目; 

   · setfacl :设定某个目录/档案的ACL 规范。 

setfacl 指令用法 

 [root@www ~]# setfacl [-bkRd] [{-m|-x} acl 参数目标文件名 

 选项与参数: 

 -m :设定后续的acl 参数给档案使用,不可与 -x 合用; 

 -x :初除后续的acl 参数,不可与 -m 合用; 

 -b :移除所有的ACL 设定参数; 

 -k :移除预设的ACL 参数; 

 -R :递归设定acl    ,亦即包括次目录都会被设定起来; 

 -d :设定『预训acl 参数』的意思!叧对目路有效,在该目路新建的数据会引用 

 此默认值 

1. 针对特定使用者的方式: 

 设定规范:『 u:[使用者账号列表]:[rwx] 』,例如针对wsm的权限规范 

  rx : 

主机的具体权限规划:ACL的使用

[root@localhost ~]# setfacl -m u:wsm:rx acl_test

主机的具体权限规划:ACL的使用

如果一个档案设定了ACL 参数后,他的权限部分就会多出一个 号了!但是此时你看到的权限不 实际权限可能就会有点误差!那要如何观察呢?就透过getfacl 吧!

getfacl 指令用法 

 [root@www ~]# getfacl filename 

 选项与参数: 

getfacl 的选项几乎与setfacl 相同!所以这里就免去了选项的说明啊! 

列出我们设定acl_test的权限内容

[root@localhost ~]# getfacl acl_test 

# file: acl_test

# owner: root

# group: root

user::rw-

user:wsm:r-x

group::r--

mask::r-x

other::r--

以上面的结果来看,我们刚刚训定的wsm 对与这个档案具有 的权限啦!

group类型的 setfacl 设定!

[root@localhost ~]# setfacl -m g:mygroup:rx acl_test 

主机的具体权限规划:ACL的使用

3. 针对有效权限 mask 的设定方式: 

 # 设定规范:『 m:[rwx] 』,例如针对刚刚癿档案规范为仅有

[root@localhost ~]# setfacl -m m:r acl_test

主机的具体权限规划:ACL的使用

Wsm和组mygroup仅具有r的权限,,不存在有x权限了

任务 在/srv/acl 这个目录,让 wsm 可以进入查阅,但 myuser1 不具有修改的权力。 由与wsm 是独立的使用者不群组,而/srv 是附属与之下的,因此/srv 已经具有acl 功能。

若没有可以用[root@localhost home]# mount -o remount  / 命令

透过如下的设定即可搞定

1. 先测试看看,使用 wsm 能否进入该目录?

 

主机的具体权限规划:ACL的使用

2. 开始用 root 的身份来设定一下该目录的权限吧! 

[root@localhost ~]# setfacl -m u:wsm:rx /srv/acl

主机的具体权限规划:ACL的使用

3. 再使用wsm去测试看看结果

主机的具体权限规划:ACL的使用

可以查看,但不能写入

ACL 的权限设定是否能够被次目录所『继承?』先试看看:

[root@localhost ~]# cd /srv/acl/

主机的具体权限规划:ACL的使用

你可以明显的发现,权限后面都没有 +  ,代表这个acl 属性并没有继承喔!如果你想要让acl 在目路底 下的数据都有继承的功能,那就得如下这样做了!

让 wsm /s rv/acl 底下一直具有 rx 的预设权限! 

[root@localhost acl]# setfacl -m d:u:wsm:rx /srv/acl/

主机的具体权限规划:ACL的使用

主机的具体权限规划:ACL的使用

看吧!确实有继承喔!然后我们使用getfacl 再次确认看看! 

主机的具体权限规划:ACL的使用

那如果想要让ACL 的属性全部消失又要如何处理?透过『setfacl -b 檔名 』就可 

啦!太简单了



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1003669


上一篇:疑难杂症——EF+Automapper引发的查询效率问题解析


下一篇:fmri数据分析图像格式及转换问题——基于spm讨论