access control list,主要是针对提供传统的owner , group , others 的read, write ,execute权限之外的具体权限设置。
可以针对单一用户, 单一文件或者目录进行r, w, x的权限设置
设置技巧:
setfacl 和getfacl
格式:
setfacl -m u:vbrid : rx filename
之后ll filename
就会发现权限部分呢多了一个+
getfacl filename;
之后测试其他类型的setfacl 的设置。
setfacl -m g:mygroup1:rx filename
针对用户组列表 进行设置权限喂rx
基本上用户组和用户的设置并没有什么太大的区别。下面介绍mask的简单功能。这个是最大允许权限范围。
setfacl -m m:r filename
getfacl filename
会得到如下的样例:
#file :filename
#owner: root
#group : root
user:: rwx
user:vbrid1: r-x #effective :r-- 因为vbrid1+mask均存在的只有r而已
group::r--
group:mygroup1:r-x #effective : r--
mask::r--
other:: r--
下面进行的是例子:
让myuser1可以进入/srv/projecta 目录,查看,但是不能修改的权限
可以这么做:
setfacl -m u:myuser1:rx /srv/projecta
这样一行就设置成功了第一步,下面是查询结果
getfacl /srv/projecta
还没有实现的是如果用root 或者pro1的身份去增加/srv/projecta目录或者文件时,能不能让其具有acl的设置。
setfacl -m d:u:myuser1:rx /srv/projecta
同时,把setfacl的参数列出来如下:
setfacl 2.2.51 -- 设定文件访问控制列表
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m, --modify=acl 更改文件的访问控制列表
-M, --modify-file=file 从文件读取访问控制列表条目更改
-x, --remove=acl 根据文件中访问控制列表移除条目
-X, --remove-file=file 从文件读取访问控制列表条目并删除
-b, --remove-all 删除所有扩展访问控制列表条目
-k, --remove-default 移除默认访问控制列表
--set=acl 设定替换当前的文件访问控制列表
--set-file=file 从文件中读取访问控制列表条目设定
--mask 重新计算有效权限掩码
-n, --no-mask 不重新计算有效权限掩码
-d, --default 应用到默认访问控制列表的操作
-R, --recursive 递归操作子目录
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不跟随符号链接
--restore=file 恢复访问控制列表,和“getfacl -R”作用相反
--test 测试模式,并不真正修改访问控制列表属性
-v, --version 显示版本并退出
-h, --help 显示本帮助信息