主机的具体权限规划: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 文件名
阅读(630) | 评论(0) | 转发(0) |