ACL的使用(摘抄至鸟叔的私房菜)
2016-12-04 22:31
246 查看
一. 什么是ACL与如何支持启动ACL
ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范。
ACL主要可以针对几个项目:
l 使用者(user):可以针对使用者来设定权限;
l 群组(group):针对群组为对象来设定其权限;
l 默认属性(mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;
二. 如何启动ACL
因为近年以来Linux系统对权限细部设定的热切需求,ACL几乎已经预加入在所有常见的Linux文件系统的挂载参数中,所以你无须进行任何动作。如果你不确认,你可以使用命令dmesg | grep –i acl来查看
[lianghua@study ~]$ dmesg |grep -i acl
[ 2.094025]systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA-APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4-SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 3.159480]SGI XFS with ACLs, security attributes, no debug enabled
三. ACL的设定技巧:getfacl, setfacl
l getfacl:取得某个文件/目录的ACL设定项目;
l setfacl:设定某个目录/文件的ACL规范;
特定的单一用户的权限设定:【u:使用者:权限】,设定前加-m选项
[root@study ~]# touch acl_test1
[root@study ~]# setfacl -m u:lianghua1:rx acl_test1
[root@study ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 12月 4 21:18 acl_test1
如果一个文件设定了ACL参数后,它的权限部分就会多出一个”+”号。
使用getfacl查看
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x
group::r--
mask::r-x
other::r—
特定的单一群组的权限设定:【g:群组名:权限】
[root@study ~]# setfacl -m g:lianghua1:rx acl_test1
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x
group::r--
group:lianghua1:r-x
mask::r-x
other::r—
针对有效权限设定:【m:权限】
[root@study ~]# setfacl -m m:r acl_test1
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x #effective:r--
group::r--
group:lianghua1:r-x #effective:r--
mask::r--
other::r—
mask表示有效权限,它的意义是:使用者或群组所设定的权限必须要存在于mask的权限范围内才会生效。
使用默认权限设定目录未来文件的ACL权限继承【d:[u|g]:[user|group]:权限】,可以使设置了ACL权限的目录下的新目录或文件可以继承父目录的ACL权限。
setfacl –b 目录/文件:去除ACL属性
ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范。
ACL主要可以针对几个项目:
l 使用者(user):可以针对使用者来设定权限;
l 群组(group):针对群组为对象来设定其权限;
l 默认属性(mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;
二. 如何启动ACL
因为近年以来Linux系统对权限细部设定的热切需求,ACL几乎已经预加入在所有常见的Linux文件系统的挂载参数中,所以你无须进行任何动作。如果你不确认,你可以使用命令dmesg | grep –i acl来查看
[lianghua@study ~]$ dmesg |grep -i acl
[ 2.094025]systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA-APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4-SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 3.159480]SGI XFS with ACLs, security attributes, no debug enabled
三. ACL的设定技巧:getfacl, setfacl
l getfacl:取得某个文件/目录的ACL设定项目;
l setfacl:设定某个目录/文件的ACL规范;
特定的单一用户的权限设定:【u:使用者:权限】,设定前加-m选项
[root@study ~]# touch acl_test1
[root@study ~]# setfacl -m u:lianghua1:rx acl_test1
[root@study ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 12月 4 21:18 acl_test1
如果一个文件设定了ACL参数后,它的权限部分就会多出一个”+”号。
使用getfacl查看
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x
group::r--
mask::r-x
other::r—
特定的单一群组的权限设定:【g:群组名:权限】
[root@study ~]# setfacl -m g:lianghua1:rx acl_test1
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x
group::r--
group:lianghua1:r-x
mask::r-x
other::r—
针对有效权限设定:【m:权限】
[root@study ~]# setfacl -m m:r acl_test1
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rw-
user:lianghua1:r-x #effective:r--
group::r--
group:lianghua1:r-x #effective:r--
mask::r--
other::r—
mask表示有效权限,它的意义是:使用者或群组所设定的权限必须要存在于mask的权限范围内才会生效。
使用默认权限设定目录未来文件的ACL权限继承【d:[u|g]:[user|group]:权限】,可以使设置了ACL权限的目录下的新目录或文件可以继承父目录的ACL权限。
setfacl –b 目录/文件:去除ACL属性
相关文章推荐
- 关于cxgrid的系列(摘抄与使用时候的见解)
- vc6使用技巧(摘抄)
- EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
- 操作必须使用一个可更新的查询;HTTP 500 - 内部服务器错误; 您未被授权查看该页;您不具备使用所提供的凭据查看该目录或页的权限;HTTP 错误 401.3 - 访问被资源 ACL 拒绝
- 使用ACL在cisco路由器,防止Spoofing Mitigation 推荐
- 用.NET的File控件上传文件的解决方案(被动解决方案)(本文章来自于互联网,感谢原作者的辛勤劳动,摘抄在此仅作为学习使用!)
- EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
- EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
- 怎么使用ACL的established? 推荐
- 决定不使用AcegiSecruity的ACL做实例级权限控制
- ASP.NET基础知识(本文章来自于互联网,感谢原作者的辛勤劳动,摘抄在此仅作为学习使用!)
- C++--CListCtrl使用技巧的摘抄
- EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
- 懒人摘抄(内容转自CSDN资源中教程)-数据查询04-使用聚合函数
- SQL中Case的使用方法==摘抄自http://ronin.cnblogs.com/archive/2006/07/20/455388.html
- (摘抄)禁止搜索引擎收录的方法(robots.txt文件的使用)
- 使用cakephp 1.2中新增的访问控制组件(acl)
- EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
- ACL,NAT和DHCP的使用和配置
- 使用ACL 阻止 TCP SYN Attack