Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783680
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-14 08:15:35

主机的具体权限规划:ACL使用(getfacl,setfacl)
  传统的linux也可以针对某个个人设置专属属性,这就是ACL。他可以针对某一个用户或某一个组来设置特定的权限需求。
  ACL可以针对单一用户、单一文件或目录来进行 rwx的权限设置。
  用mount查看有没有开启ACL,若没有,则用:
    #mount -o remount,acl /
  
  例子:
#mount
  #dumpe2fs -h /dev/sda1 ==>若没有开启,则用下面的命令
#mount -o remount,acl /
  也可以直接将acl填进 /etc/fstab 里面,免得经常去启动。


ACL的设置:getfacl,setfacl
getfacl:取得某个文件/目录的ACL设置项目
setfacl:设置某个文件/目录的ACL

setfacl命令用法
#setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件
  -m:设置后续的acl参数给文件使用,不可与 -x 合用
  -x:删除后续的acl参数,不可与 -m 合用
  -b:删除所有的ACL设置参数
  -k:删除默认的ACL参数
  -R:递归设置ACL,亦即包括子目录都会被设置起来
  -d:设置默认ACL参数,只对目录有效,在该目录新建的数据会引用此默认值


getfacl命令用法
#getfacl filename
  getfacl的参数与setfacl的参数基本相同


一、针对特定用户设置ACL
方式:    u:[用户账号列表]:[rwx]
#touch acl_test1
#ll acl_test1
#setfacl -m u:vbird1:rx acl_test1 ==>此文件对账号vbird1设置权限

  假如不设置,vbird1可能就进不去某个目录:

$cd /srv/projecta              ==>进不去,因为这个目录属于设置了ACL的根目录,属于root.

#setfacl –m u:myuser1:rx /srv/projecta

#getfacl /srv/projecta

$cd /srv/projecta              ==>能进去了


#setfacl -m u::rwx acl_test1              ==>不写时代表文件所有者
#getfacl acl_test1
user:tianqi:rw-     ==>针对tianqi用户的权限设置,与所有者并不同。
mask:     ==>此文件默认的有效权限


二、针对特定用户组设置ACL
方式:      g:[用户列表]:[rwx]
#setfacl -m g:mygroup1:rx acl_test1
#getfacl acl_test1

三、针对有效权限mask的设置
方式:     m:[rwx]
#setfacl -m m:r acl_test1
  一般设置成rwx,因为设置的实际权限不能超出mask的范围。


四、针对默认权限的设置方式(继承性)
方式:     d:[ug]:用户列表:[rwx]
  只对目录有效,在该目录下所有新建的数据都会引用此默认值,即有继承性。
  让myuser1在/srv/projecta下面一直具有rx的默认权限:
#setfacl -m d:u:myuser1:rx /srv/projecta

  此时,myuser1可以进入该目录,原先是不能进入的。并且在该目录下面新建的文件,所有新建的文件(包括文件所有者和刚才加入的一般用户创建的文件)都会继承目录的ACL属性。

  


取消ACL的属性:
  #setfacl -b 文件名

阅读(631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~